『詳細!Progression4 Flashフレームワーク入門ノート』 をQ&Aにしてみた

詳細!Progression 4 Flashフレームワーク入門ノート

↑の画像をクリックでアマゾンから購入できます!

大重美幸著『詳細!Progression4 Flashフレームワーク入門ノート』ソーテック社から一部分抜き出してQ&Aを作ってみました。

Q アセットクラス「logo」を読み込み表示させるには?
A シーンオブジェクト内でインスタンスを生成し、addCommand内でnew AddChild(container,logo)のようにする。

Q 子シーンAをIndexSceneに追加するには?
A sceneA = new SceneA(“A”);
addScene(sceneA);

Q MouseEvent.CLICKでsceneAへ移動させるにはイベントハンドラにどのように記述するか。
A manager.goto(sceneA.sceneId);

Q MyGotoButtonクラスを継承したボタンであれば、移動のためのスクリプトは記述する必要はなくもっと簡単な方法でシーン移動できる。では、どうするのか。
A ボタンインスタンスのsceneIdプロパティにシーン識別子を指定する。例)btnA.sceneId = sceneA.sceneId;

Q 最初の子シーンへ移動するスクリプトは?
A new Goto(self.scenes[0].sceneId)

Q クリックで次のシーンへ移動するスクリプトは?
A if(Boolean(manager.current.next)){
manager.goto(manager.current.next.sceneId);
}

Q クリックで手前のシーンへ移動するスクリプトは?
A if( Boolean(manager.current.previous)){
manager.goto(manager.current.previous.sceneId);
}

Q NextButtonクラスの引数に{managerId:”index”,useTurnBack:true}を渡している。managerId:”index”とuseTurnBack:trueとは?
A managerIdは関連付けるProgressionの識別子、useTurnBack:trueで最後(或いは最初)のシーンまできたら先頭(あるいは最後)のシーンまで戻るようになる。

Q NextButtonクラスを継承させてボタンを作るとクリックイベント処理やシーン移動のためのスクリプトを書く必要があるか。
A ない。

Q 親シーンへの移動、子シーンへの移動はどうすればいいか。
A 親シーンへの移動への移動は、(Boolean(manager.currnent.parent))で判断させ、子シーンへの移動は(manager.current.numScenes>0))で判断させる。詳細はP124

Q シーン階層を上下に移動させるには?
A 現在シーンのsceneIdと出発シーンのsceneIdの比較で上下移動を決める。

Q シーン階層を横に移動させるには?
A 出発シーンと到着シーンのインデックス番号をの大きさを比較する。

Q 一つのシーンクラスからアセットクラスを一度に利用するには?
A コンストラクタで受け取ったnameからアセットクラスと同名のクラスを作り、生成する。

Q jumpto()メソッドとは?
A イベントが発生しないようにシーン移動を行うことができる。

Q Progressionインスタンスのlockプロパティをtrueにするとどうなるか。
A シーンがロックされる。

Q インスタンスのstageプロパティが未定の状態でもステージの情報を得るにはどうしたらいいか。
A CastDocumentクラスメンバーを使用する。

Q シリアルリストを作って実行させる例をひとつあげると?
A var list:SerialList = new SerialList();
list.addCommand(new DoTweener(ball1,{y:200, time:1}));
list.addCommand(new DoTweener(ball2,{y:200, time:1}));
list.execute();

シーン移動で発生するイベントのイベントハンドラ内に記述する場合のシリアルリストを作って実行させる例をひとつあげると?
A addCommand(
new DoTweener(ball1,{y:200, time:1}),
new DoTweener(ball2,{y:200, time:1})
);

Q insertCommandとは?
A シリアルリストの中でfunctionステートメントを実行すると内部ステートメントは順に実行されるが、addCommand()のコマンドはすべてコマンドの最後に追加されて実行されてしまう。insertCommandで実行させることで、functionに続いて実行されるようになる。

Q TweenListとは?
A イージング関数に基づいて時間差で順に実行するクラス 詳細P169

Q コマンドの実行結果はインスタンスを作成した時点の値である。(○か×で)
A ○

Q 実行の度に再計算されるようにするには?
A Funcクラスを利用する。

Q Waitコマンドをコマンドリストの中で利用せず単独で利用したい場合どうするか?
A 例1)
var com:Wait = new Wait(3);
com.onComplete = function():void{//関数}; com.execute();

例2)
var com:Wait = new Wait(3,{onComplete:test});
com.excute();
fuction test():void{
trace(“3秒経ちました。”);
}

Q Fucコマンドで実行する関数に引数を渡したい場合はどうするか?
A 第2引数で配列を渡す。

list.addCommand(
new Func(test,null,stage,MouseEvent.CLICK),
new Trace(“”)
)
list.execute();
これを実行するとどうなるか。
A test関数を実行したあと、ステージのクリック待ちになる。クリックすると続くTraceコマンドが実行される。

Q スプライトやムービークリップを用いずキャストオブジェクトを用いるメリットは何か。
A 専門のイベントハンドラを用いることができ簡単に機能を実装できる。キャストオブジェクトをインスタンスidやインスタンスグループで参照できる。

Q クリックしたらcontainerから取り除くスクリプトは?

A private function clickHandler(e:MouseEvent):void{
var com:RemoveChild = new RemoveChild(container,eventObj.target);
com.execute();
}

Q 現在フレームから最終フレームへのトゥイーンは?

A com = new DoTweenFrame(ムービークリップ, ムービークリップ.currentFrame , ムービークリップ.totalFrames); 詳細はP188

Q 現在フレームから先頭フレームへのトゥイーンは?
A com = new DoTweenFrame(ムービークリップ, ムービークリップ.currentFrame , 1);

Q インスタンスidとは何か?
A キャストオブジェクトはインスタンスidをつけておくことができる。idをつけることでidで参照できるようになる。

Q インスタンスidはどのように設定するのか?
A 例)
var classNames:Array = ["a","b","c"];
for(var i:=int=0;i<classNames.length;i++){
var castSp.id = classNames[i];
var grafi:class = getDefinitionByName(classNames[i]) as Class;
castSp.addChild(new grafi());
}
//3つのクラスidをもったキャストオブジェクトを作り、それぞれにグラフィックを持たせている。

Q インスタンスidを取り出すにはどうするか?
A var mySp:CastSprite = getInstanceById(“b”) as CastSprite;
mySp.x = mySp.y = 100;
addChild(mySp);

Q インスタンスグループとは?
A キャストオブジェクトを複数作り、グループ分けしたもの。

Q インスタンスグループのグループ名の付け方は?
A それぞれのキャストオブジェクトににcastSp.group = “a”; castSp.group = “b”; などと付けていくことでグループ分けする。

Q インスタンスグループを取り出すときは?

A aList:Array = getInstancesByGroup(“a”);のようにして配列に取り出す。

Q ツールチップを表示するには?
A キャストオブジェクトのtoolTiプロパティに説明文を設定する。例)toolTip.text = “これはボタンです”;

Q LoadSWFコマンドで読み込む時、プログレスバーを表示させるにはどうしたらいいか?

A 第3引数でonProgressイベントハンドラを用いて設定する。

Q 写真の読み込みに使用するLoaderにCastloaderクラスのインスタンスを利用するとどんないいことがあるのか?

A キャストオブジェクトにできる。

写真の読み込みにCastimageloaderを使うとどんなメリットがるか?
A 縦横サイズを表示サイズに合わせて伸縮したり、座標の基準点を指定できたりする。

Q リソースidとは何か?

A LoadCommandクラスを継承しているクラスに付けることができる。読み込んだ画像を複数のシーンで利用したり、画像データを先読みしておくことができる。

Q リソースをリソースidで取り出すメソッドは何か?

A getResourceByid();

Q LoaderListコマンドとは?
A ファイルの読み込みをひとまとめにできるコマンド

Q LoaderListで読み込んだ画像をを表示するにはどうしたらいいか?

A 読み込んだファイルはgetResourceByid()を使ってリソースidで取り出すと簡単。

Q SWFをシーンとして読み込むには?
A SceneLoaderを継承してnew LoadSceneメソッドで読み込む。

Q シーン構造をXMLで作るには?

A Prmlでシーン構造を作成 → LoadURLメソッドで読み込み → new XMLメソッドで読み込んだデータをXMLにする → addSceneFromXMLメソッドでシーンをaddSceneする

Q リキッドレイアウトを作成するには?

A ステージのリサイズイベントにリスナー登録し、ステージがリサイズされたら位置を調整する。

Q カスタムコマンドを作るには?

A Commandクラスを継承して作る。

  1. はじめまして。大重です。
    このページをhttp://oshige.com/flash/as3note_cs4/ で紹介(リンク)させてもらってもよろしいでしょうか?

    ps.
    Q 真の読み込みにCastimageloaderを…
    「写真」の脱字があります。

  2. @oshige
    え~!大重先生ですか!こんなサイトでよろしければどうぞリンクはってください!光栄です!

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>