ActionScript3 ~nullのオブジェクト参照関連とswfファイル埋め込み~
毎日新しく気づくことがあって楽しいですねぇ。
順調です。
昨日の成果
昨日の書き物を書いた後色々いじっていると、
問題だったランタイムエラーの謎が解けました。
やはり
var child:Sprite = null; child.x = 1;
という感じの操作が行われていることによるエラーでした。
これが解決した後もちょくちょく同じランタイムエラーが出てその度に苦しみましたので、
今後もお目見えすることになるだろうエラーなのだなぁと思いました。
特に「removeChild()」でオブジェクトを除去したあたりはこの手のエラーが出やすそうなので、
注意を払おうと肝に銘じておきます。
今日の成果
これまでのテスト用描画は普通にスクリプトで書いていましたが、
いよいよゲームで頻繁に使うであろう描画関連の操作を試してみました。
まあ、要は外部ファイルをリソースでswfに埋め込む作業です。
一番試したかったことは、僕が持っている「FlashMX2004」で書き出したswfファイルを読み込むことです。
[Embed(source='player.swf')] private var PlayerGf:Class;
var player:Sprite = new PlayerGf(); addChild(player);
これでswfに埋め込み完了のようです。
実際試してみますと無事表示されました。
読み込んだswfファイルがアニメーションしているなら、そのまま表示されていました。
で、埋め込み関連でもう一つ気になることが。
var player:MovieClip = new PlayerGf();
とした場合、例えば
player.gotoAndStop(3);
を試してみましたが、どうやら機能しない様子。
読み込んだswfファイル自体を「MovieClip」として操作...はできないようです。
正直これだとアクションゲームを作る際に苦労します。
こういったフレーム分けされた「MovieClip」の作り方を別に調べなければならないようです。
とりあえず今日までの成果を組み合わせれば、「爆裂スライムシ」も作れそうです。
# 画像はランタイムエラー問題解決時、テンションに任せて大量生成してひどい目にあったキモイ実行結果です。