Flashのフレームワーク「Progression3」を始めてみよう!

第2回 サンプルを動作させてProgression3の基本を理解する

この記事を読むのに必要な時間:およそ 4.5 分

シーンを移動させる(2)

もっと見た目に分かりやすくなる様にシーンを作りこみましょう。

そのための準備として,キャストオブジェクトを追加します。

前述の「キャストオブジェクトを登場させる」を参考に,もう一つMyCastSprite2.asという名前でCastSpriteを継承したキャストオブジェクトを作成します。

先ほど作成したMyCastSprite.asをコピーし,名前を変更してください。

描画する円の色を,以下のように記述して青色にしましょう。

graphics.beginFill(0x000000FF);

そしてボタンをもう一つ作成します。

こちらも先ほど作成したMyCastButton.asをコピーし,MyCastButton2.asという名前にします。

描画色は

raphics.beginFill(0x00FF0000);

として赤にし,シーンIDを

sceneId = new SceneId("/index");

としてインデックスシーンに戻るような設定にします。

さて,シーン遷移時の状態変化を書いて行きましょう。

まず,インデックスシーンから移動する際,赤い丸とボタンには消えてもらいましょう。

IndexScene.asの59行目_onGotoメソッドに以下記述をします。

リスト13

protected override function _onGoto():void {
  // 実行したいコマンドを登録します。
  addCommand(
    new RemoveChild(progression.container,_sprite), 
    new RemoveChild(progression.container,_ button) 
  );
}

次に,シーンを移動した際,新しく作ったキャストオブジェクトを出現させます。

MySceneObject.asの17行に以下参照用の変数を定義

リスト14

private var _sprite:MyCastSprite2; 
private var _button:MyCastButton2; 

45行目の_onInitメソッドに以下出現処理を記述

リスト15

protected override function _onInit():void {
  // 実行したいコマンドを登録します。
  addCommand(
    new AddChild(progression.container,_sprite = new MyCastSprite2()),

    new AddChild(progression.container, _button = new MyCastButton2())
  );
}

シーンから移動する際に,追加したキャストオブジェクトを消します。

58行目のonGotoメソッドに以下退出処理を記述

リスト16

protected override function _onGoto():void {
  // 実行したいコマンドを登録します。
  addCommand(
    new RemoveChild(progression.container,_sprite), 
    new RemoveChild(progression.container, _button) 
  );
}

ここまで出来たらムービープレビューをして下さい。

どうでしょう? 四角いボタンを押す毎にシーンを行ったり来たりする様になりましたでしょうか?

図5 シーン1(左図⁠⁠ と シーン2(右図)

図5 シーン1 図6 シーン2

これでProgressionの3つの機能全てを使用したサンプルが出来上がりました。 次回は今回説明が出来なかったProgressionで用意されているコマンド,キャストの種類について説明いたします。

著者プロフィール

楢山哲弘(ならやまのりひろ)

3年前に上京してきた北海道出身のFlasher。

開発スピードを上げるため,Progressionに傾倒中。そのため,ブログではProgressionについての言及が多くなっている。

URLhttp://narayama.heteml.jp/