こんにちは。
さて、更新頻度を上げると言いながら既に10日近く経ってしまいましたが、早速Progression4から追加になって、Progression3からのユーザーには意外と知られていないんじゃないかな?という機能の紹介をします。
実はProgression4ではキャストオブジェクトにidを付けると、AddChildコマンドとRemoveChildコマンドにidを指定してあげるだけでaddChildやremoveChildが出来ます。
Progression4の公式サイトにあるサンプルを触った事のある人は知っていると思います。
以下ソースコード例
IndexScene.as
override protected function atSceneLoad():void {
//scene生成
var scene1:Scene1 = new Scene1("scene1");
var scene2:Scene2 = new Scene2("scene2");
var scene3:Scene3 = new Scene3("scene3");
addScene(scene1);
addScene(scene2);
addScene(scene3);
//cast生成
//idのセット
var sprite1:MyCastSprite = new MyCastSprite( { color:0xff0000, id:"redsq" } );
var sprite2:MyCastSprite = new MyCastSprite( { color:0x00ff00, id:"greensq" } );
var sprite3:MyCastSprite = new MyCastSprite( { color:0x0000ff, id:"bluesq" } );
//ボタン
var button1:MyCastButton = new MyCastButton( { color:0xff0000 , sceneId:scene1.sceneId } );
var button2:MyCastButton = new MyCastButton( { color:0x00ff00 , sceneId:scene2.sceneId, x:button1.width } );
var button3:MyCastButton = new MyCastButton( { color:0x0000ff , sceneId:scene3.sceneId, x:button1.width + button2.width } );
addCommand(
new AddChild(container, button1),
new AddChild(container, button2),
new AddChild(container, button3)
);
}
Scene1.as
override protected function atSceneInit():void
{
addCommand(
new AddChild(container, "redsq")
);
}
override protected function atSceneGoto():void
{
addCommand(
new RemoveChild(container, "redsq")
);
}
このように恐ろしくソースコードがすっきりするのですが、多人数開発時には向かないかなあと思うこのごろです。なぜならばどこでこのidを設定したのかをきちんと把握してなければならないし、Progressionを知らない人が見たら謎だらけのソースコードになってしまうからです。
全員がきちんと把握していれば問題無いのですが、なかなか難しいかと。
一人で作る分には便利で良いですよね。
ソースコードはこちら(プロジェクト名がAddChileforIdになっちゃってるのはごめんなさい)
さて次は何を書こうかなあ(早くもネタ切れ疑惑発生)




















最近のコメント