- ベストアンサー
Timeline_nの調べ方について(AS3)
- Windows版FlashCS5、ActionScript3.0、パブリッシュ設定のPlayer(P)は、AIR Androidを使用しております。スクリプトを組み、パブリッシュしようとすると、下記のようなエラーが出ることがあります。TypeError: Error #1009: Cannot access a property or method of a null object reference. at myFla_fla::Timeline_15/frame3()[myFla_fla.Timeline_15::frame3:11] Timeline_15が、どのムービークリップか調べるのに時間がかかり、困っております。
- 現状では、trace(ムービークリップのインスタンス名);と記述して、出力ウィンドウに表示される結果を見ながら、片っ端からムービークリップを調べて、該当するTimeline_n(今回はTimeline_15)を探しています。
- もっと効率の良い探し方は、ありませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
デバッガを使うと、タイムラインだけでなく、エラーが発生したレイヤーやフレーム・行も特定できます。 例えば、ムービークリップシンボル「シンボル 2 」に、名前を”スクリプト”と付けたレイヤーを作り、そのフレーム 10 に、次のようなスクリプトを書いたとします。 var mc:MovieClip = null; mc.stop(); ↑ mc にはあえて null を入れていますから、当然、このフレームが再生された途端にエラー番号 1009 「 null のオブジェクト参照の~」が発生します。 このシンボルのインスタンスを配置した作品を、デバッガを通して動作確認します。 ムービー編集画面の「デバッグ」メニュー→「ムービーのデバッグ」で、デバッガが起動します。 ( CS5 では、メニューの配置や名称が変わっているかもしれません。デバッガの起動方法や詳しい使い方については、ヘルプ等をご参考になさってください) 問題がなければ、ムービーが再生されます。 しかし、スクリプトにエラーがあるとその箇所で再生が停止し、デバッグウィンドウが開いて、エラー発生時に再生していたシーンとシンボル名・レイヤー・フレームが表示されます。 反転表示になっているシンボルが、エラーが検出された箇所です。 先ほどの問題含みの作例をデバッガで見ると、 シンボル名:シンボル 2 レイヤー名:スクリプト フレーム:10 に問題があるらしいという情報が、デバッグウィンドウから得られます。 (表示例として画像を添付しましたので、よろしければご参照ください。青く反転しているシンボルが、エラーが検出されたシンボルです) さらに、エラーメッセージの最後 [○○○_fla.Timeline_○::frame10:2] の” frame10:2 ”の部分は、フレーム 10 に書かれているスクリプトの2行目、という意味です。 合わせますと、「シンボル2の”スクリプト”レイヤー、フレーム 10 に書かれているスクリプトの2行目」でエラーが発生した、と分かります。 つまり、シンボル 2 のフレーム 10 に書いた var mc:MovieClip = null; mc.stop(); ↑ この2行目の mc.stop(); 、特に mc のあたりが怪しいと、エラーの原因を突き止めていくことができます。
お礼
ご教示ありがとうございます! 恥ずかしながら、今までデバッガを使った事がありませんでした(存在も知りませんでした)。 これを使えば、Timeline_nを調べなくても済みます。 大変助かります^^ とても丁寧なご説明に、感激しました。 ありがとうございます!