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

第3回 Progression3に用意されているコマンドとキャスト

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

キャストオブジェクト

次に,使用頻度が高いと思われるキャストオブジェクトを紹介します。キャストオブジェクトは通常,用意されているキャストオブジェクトクラスを継承して使用します。

キャストオブジェクトのソースコードを全て載せると非常に冗長となってしまうため,ここでは用意されているキャストオブジェクトの紹介のみに留めます。

CastMovieClip,CastSprite

キャストオブジェクトの中でも使用頻度が高くなるのが,CastMovieClip,CastSpriteです。MovieClip,Spriteにそれぞれ対応しており,それぞれAddChildコマンド,RemoveChildコマンドで表示リストに追加,削除した際のイベントの連携を行うことができます。

例えば,呼び出し元が以下コードだとします。

リスト15

var _castSprite = new myCastSprite();
addCommand(
  new AddChild(progression.container, _castSprite),
  new Trace(“myCastSpriteが追加されました”)
)

そして,CastSpriteを継承したmyCastSpriteの_onCastAddedを以下のようにオーバーライドします。

リスト16

protected override function _onCastAdded():void {
  addCommand(
    new Trace(“myCastSpriteが追加されます”)
  );
}

これを実行すると,以下の順番で出力されます。

リスト17

myCastSpriteが追加されます
myCastSpriteが追加されました

呼び出し元のコマンドでキャストオブジェクトを追加→キャストオブジェクトの追加イベント→呼び出し元の次のコマンドという順に実行されるのです。これがキャストオブジェクトの大きなポイントです。

CastBitmap

BitmapDataを表示するためのキャストオブジェクトです。 CastSprite同様に表示リストに追加,削除した際のイベントの連携を行うことができます。

リスト18

new CastBitmap( new BitmapData( 100, 100 ) );

CastImageLoader

画像ファイルのLoaderオブジェクトを表示するためのキャストオブジェクトです。

CastSprite同様に表示リストに追加,削除した際のイベントの連携の他にロードの開始,完了といった際のイベント連携が可能です。

リスト19

var _castImageLoader = new CastImageLoader ();  
_ castImageLoader.load(new URLRequest("画像ファイルのURL”));  

CastButton

CastButtonオブジェクトはボタンの機能に特化したキャストオブジェクトです。ロールオーバー,ロールアウト,ダウン,アップの処理を簡潔に記述でき,クリック時の外部URLへの遷移やツールチップの設定が可能で,シーンIDの設定のみでクリック時にシーンの移動をさせることができます。

シーン間の移動をボタンで行う場合は,このオブジェクトを使用するのが一般的です。以下に,記述例を示します。

リスト20

var _castButton = new CastButton();
_castButton.sceneId = new SceneId(“/index”);//クリックでindexシーンへ移動する
_castButton.toolTip.text="Indexへ移動します";//ツールチップテキストの表示

以上,キャストオブジェクトの紹介でした。

今回紹介したキャストオブジェクト以外にもまだ用意されているキャストオブジェクトはあります。表示オブジェクトに関しましては一通り揃っておりますので,適材適所で使用するのが良いでしょう。

駆け足となりましたが,今回はこれで終了です。

次回からはProgressionを用いて簡単なウェブサイトを作成します。お楽しみに!

著者プロフィール

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

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

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

URLhttp://narayama.heteml.jp/

コメント

コメントの記入