書き物

技術とか作った物の話とか愚痴文句感想など

ActionScript3 ~DisplayObject~

昨日の参考サイト様で書き忘れていました。

このページを一通り読めば、AS3はまるっとお見通しです。


今日の成果

昨日よく分からなかった「DisplayObject」がなんとなく分かりました。

これまで描画のメインとして使ってきた「MovieClip」に取って代わり、

今回のAS3でのメインは「Sprite」となったようです。

「Sprite」とは「MovieClip」を1フレームだけにしたようなクラスで、

「MovieClip」よりも軽いので積極的に利用すべき...と。


基本的な描画方法は前回と考え方はあまり変っていないようです。

生成方法が多少変っただけで、それさえ分かれば前回とほぼ同じ...だと思いました。

「Sprite」であれ、「MovieClip」であれ、「TextField」であれ、

以下のような木構造で追加していけばいいと。

stageMc
├ objMc1
├ objMc2
├ objStageMc
│ ├ objMc1
│ └ objMc2
└ objMc3

「stageMc」に「objMc1」を追加するには、

どうやら前回のように「attachMovie()」とかで生成するのではなく、

var objMc1:MovieClip = new MovieClip();
stageMc.addChild(objMc1);

のように生成するようです。

しかも重なり順は深度で管理しなくなったようです。

「Sprite」なら

var objSprite:Sprite = new Sprite();
stageMc.addChild(objSprite);

という感じで直感的。

こういうのが分かったら色々遊べるようになりそうです。


今後の課題

タスクシステムの実験中に、

TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。

というランタイムエラーが出ます。

コンパイルは通るけど、実行してみるとエラーが出るのです。

これもAS3からの仕様のようです。


「null のオブジェクト参照」って?

var child:Sprite = null;
child.x = 1;

こんな感じなのでしょうか・・・?

まだ調査中でよく分からない状態です。



# 画像は適当にパラパラと描画したものです。(実際は動いている。)