dポイントプレゼントキャンペーン実施中!

FlashCS4で、AS3.0を使用しております。

フレーム195にインスタンス名「kebtn」として、そのボタンを設置して、さらには同じフレーム195には、先のボタンをクリックして作動するムービークリップ「インスタンス名:keanime」を設置し、keanimeのフレーム2からアニメを始めたいのです。フレーム195には下記のASを記述しました。
---------------------------------------------------------
stop();

kebtn.addEventListener(MouseEvent.CLICK, keClick);
function keClick(evt:MouseEvent):void {
keanime.gotoAndPlay(2);
}
------------------------------------------------------------
その後、プレビューしますと、下記のエラーメッセージが表示されます。
------------------------------------------------------------
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at keone_fla::MainTimeline/frame195()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
------------------------------------------------------------
「kebtn」をクリック後に「keanime」が開始されるようにしたいのです。どなたか解る方がいましたらアドバイス、ご指導をお願い致します。よろしくお願い致します。

A 回答 (1件)

タイムラインに途中から出現した


インスタンスはgotoAndStop直後には
タイムラインからはアクセスできません

一度ENTER_FRAMEもしくはインスタンスのADDED_TO_STAGEを
待ってからkebtnのイベントリスナー登録をしてください

とはいえオーサリングで置いたインスタンスには
タイムラインからアクセスするしかないので
選択肢は前者しかないですが

あるいはkebtnをスクリプトで生成しaddChildするか
1フレーム目で作っておいて隠しておいて
195フレーム目に来たら現れるようにするか

回避方法はいろいろあります

直前の質問の方も同じ所でつまずいていたようです
AS3のひとつの関門なのでしょうね

実はヘルプのMovieClipのところに書いてたりするんですが
ADDED_TO_STAGEを待ってくださいとしか書いてなくて
アクセスできないから困ってんのに
そいつのイベントを待てとはどういうことよ?
みたいなカンジだったりするんですよね(笑)
    • good
    • 0
この回答へのお礼

H240S18B73さん、有難うございました。
早速ですが…。
H240S18B73さんの言われますように「1フレーム目で作っておいて隠しておいて195フレーム目に来たら現れるようにするか」って言うアドバイスから、そのようにやってみましたら、keanimeアニメが動きました。(他のやり方は自分には解らないので、このやり方が一番確実でした)本当に有難うございました。

このようなやり方があるんですね…。
今後もよろしくお願い致します。どうも有難うございました。

お礼日時:2010/01/31 16:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!