今回は便利系コマンドシリーズですね。
複数プロパティをいっぺんに指定出来るPropコマンドです。
リファレンスを見れば一発で使い方が分かってしまいますが、あえてエントリ。
私の最初のサンプルの方のソースコードをPropで書き換えてみます。
// ParallelList を作成
var _pList:ParallelList = new ParallelList();
//ボタンの作成
for ( var i:int = 0; i < numScenes; i++ ) {
var _xmlData:XMLList = new XMLList( scenes[i].sceneInfo.data );
var _obj:Object = XMLUtil.xmlToObject( _xmlData );
var imageButton:ThumbnailSprite = new ThumbnailSprite();
imageButton.SetImageUrl = _obj.imageurl;
imageButton.sceneId = scenes[i].sceneId;
imageButton.loadImage();
imageButton.x = ( 110 * i ) + 10;
imageButton.y = 500;
_pList.addCommand(
new AddChild( progression.container, imageButton )
);
}
最初は以上の様にimageButtonに沢山プロパティを設定していました。
これを以下の様に書き換えます。
var _pList:ParallelList = new ParallelList();
//ボタンの作成
for ( var i:int = 0; i < numScenes; i++ ) {
var _xmlData:XMLList = new XMLList( scenes[i].sceneInfo.data );
var _obj:Object = XMLUtil.xmlToObject( _xmlData );
var imageButton:ThumbnailSprite = new ThumbnailSprite();
var _comProp:Prop = new Prop(imageButton, {
SetImageUrl:_obj.imageurl,
x:( 110 * i ) + 10,
y:500
});
_comProp.execute();
imageButton.sceneId = scenes[i].sceneId;
imageButton.loadImage();
_pList.addCommand(
new AddChild( progression.container, imageButton )
);
}
こんな感じになりました。大分すっきりです。
addCommand内で普通に使う場合はnew Prop(~で一発ですみますね。
ここで、ミソなのがボタンのsceneId。
これをPropで設定すると動きませんでした。なので外に出してあります。
何故かはまだ調査していないです。。
initObjectで大量に値を参照したい場合にも使えそうですね。
しかし、このシンタックスハイライター。。アンダーバーが2個目から消えるなあ。。

コメントする