2009-06-26
Flex SDK でプリローダー
Flex, Flash, Actionscript |
Flex SDKを使っていて、プリローダーをつけるのにどハマリしたので覚書。
まず、プリローダーをつけるには
[Frame(factoryClass="Preloader")]
みたいなメタ指定を入れるのだが、これをずっとルートファイルのコンストラクタの前に入れていた。正しくは
[Frame(factoryClass="Preloader")] public class Root extends Sprite {
みたいに、クラス定義の直前に入れないといけない。
次に、プリローダーの中でロード完了時に
var mainClass:Class = Class(getDefinitionByName("Root")); if (mainClass) { var root:Sprite = new mainClass(); addChild(root); }
としてRootのインスタンスを作って追加するのだが、こうするとRootのコンストラクタでstageが触れなくなる。ゲームを作るときにはstageに対してマウスやキーボードイベントのリスナを追加するので、これではとても困る。
そこで、コンストラクタではなく、ADDEDイベントにおいてstageを触る処理をやる。
こんな感じ。
public Root extends Sprite{ addEventListener(Event.ADDED, onAdded); } private function onAdded(e:Event):void{ this.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); this.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.addEventListener(MouseEvent.CLICK, onClick); }
ちなみにビットマップ系のゲームなら、
stage.scaleMode = StageScaleMode.NO_SCALE;
を指定すると思うが、これはプリローダーのコンストラクタに入れるのが良い。
コメントを書く
リンク元
- 112 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=3pC&q=ActionScript+Flex+SDK&btnG=検索&lr=lang_ja
- 74 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DAJP_jaJP246JP246&q=string+c+++c_str
- 57 http://www.google.co.jp/search?q=cygwin+sudo&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 26 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja:official&hs=JAg&num=100&q=actionscript+centos&btnG=検索&lr=lang_ja
- 24 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=dzC&q=C+++string+c_str&revid=301632987&ei=fjNSSpbONJjW7APfqpWSDQ&sa=X&oi=revisions_inline&resnum=0&ct=broad-revision&cd=2
- 16 http://matuzakilx.intranet.justsystem.co.jp/openpne2/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=961&comment_count=9
- 14 http://www.google.co.jp/search?hl=ja&client=firefox-a&channel=s&rls=org.mozilla:ja:official&q=flash+プリローダー&btnG=検索&lr=
- 14 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Sprite+原点+ズレる&num=50
- 12 http://www.google.co.jp/search?hl=ja&q=cygwin+sudo&btnG=検索&lr=
- 10 http://www.google.co.jp/search?client=firefox-a&rls=org.mozilla:ja:official&channel=s&hl=ja&q=Flex+ぷ利ローダー&lr=&btnG=Google+検索