2009/06/22: Progression:addCommandでスコープの受け渡し
カテゴリ: Progression
投稿者: terada
Progressionで自作コマンドを作っていて、ちょっとひっかかったところ。CastButtonなどの中にあるaddCommandの中でスコープを受け渡す方法です。
例えばCastButtonクラスの中で、
こうすると、HogeCommandクラス内のscope変数でCastButtonの参照が取れます。Commandクラスにあらかじめscopeという変数が用意されていました。でも説明ないし、あんまりこの件扱った記事も少ないのは、単に自分のCommandクラスへの理解が足りないのか。デザインパターンちゃんと勉強しよう、というメモ。
トラックバックURL
例えばCastButtonクラスの中で、
protected override function _onCastMouseDown():voidみたいな感じでCastButtonクラスへの参照を渡そうとすると失敗します。
{
addCommand(
HogeCommand( this )
);
}
protected override function _onCastMouseDown():voidも案の定ダメ。さて、正解(?)は・・・
{
var scope = this;
addCommand(
HogeCommand( this )
);
}
protected override function _onCastMouseDown():void
{
var hoge:HogeCommand= new HogeCommand();
hoge.scope = this;
addCommand(
hoge
);
}
こうすると、HogeCommandクラス内のscope変数でCastButtonの参照が取れます。Commandクラスにあらかじめscopeという変数が用意されていました。でも説明ないし、あんまりこの件扱った記事も少ないのは、単に自分のCommandクラスへの理解が足りないのか。デザインパターンちゃんと勉強しよう、というメモ。