電子書籍の厳選無料作品が豊富!

こんにちは、Flash初心者です。
アクションスクリプト3.0にて、時計を作っています。

時計は完成したものの、シーンを移動するボタンを作成したところ、

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at sushi_fla::MainTimeline/updateDate2()[sushi_fla.MainTimeline::frame4:13]

このようなエラーメッセージが出てきました。



■1フレーム目■
1フレーム目のプログラムにTOPに戻るボタンのプログラムを記載しています。
top2nd_btn.addEventListener(MouseEvent.CLICK, fl_top22);

function fl_top22(event:MouseEvent):void
{
gotoAndPlay(1,"TOP");
}

■2フレーム目■
プログラムソースは、下記の通りで、2フレーム目に記載しております。

//時計のプログラム
addEventListener(Event.ENTER_FRAME, updateDate2);
function updateDate2(event:Event):void
{
//Dateクラスの設定
var dateObj = new Date();
//時間
tanshin2_mc.rotation = dateObj.hours*360/12 + dateObj.minutes*360/12/60;
//分
choshin2_mc.rotation = dateObj.minutes*360/60 + dateObj.seconds*360/60/60;
//秒
secondhand2_mc.rotation = dateObj.seconds*360/60 + dateObj.milliseconds*360/60/1000;

}
//この画面でストップ
stop();


このソースでタイムラインの秒針Byoshin・長針Choshin・短針Tanshinの3つを動かしております。
(Bisuやバックグランドは飾りです)



アドビヘルプだと、Null にプロパティがないそうですが、時計は、永遠に回り続けるため、一つのフレームでアクションが完結することがありません。
その為、フレームを変えてもうまく行きませんでした。

初心者でどこが駄目なのかわからず、泣きそうです。
お分かりになる方がおりましたら、お知らせくださいませ。
どうぞ、よろしくお願いいたします。

「Error#1009 時計のシーン移動ボ」の質問画像

A 回答 (1件)

別の "TOP" シーン にジャンプした後も,


addEventListener(Event.ENTER_FRAME, updateDate2);
が有効になり続けるため
各針への参照が切れてしまうのが原因ではないかと思います。

フレーム1 のスクリプトを
次のように変更すると(1行付け加えると)
無事にパブリッシュできるような気がします。

top2nd_btn.addEventListener(MouseEvent.CLICK, fl_top22);

function fl_top22(event:MouseEvent):void
{
//1フレーム進む時間ごとに毎回
//updateDate2 を実行させるのを取り消す↓
removeEventListener(Event.ENTER_FRAME, updateDate2);
gotoAndPlay(1,"TOP");
}
    • good
    • 1
この回答へのお礼

BlurFiltan 様


はじめまして。
早速のご回答ありがとうございます。

無事に、シーン移動が出来るようになりました。
本当にありがとうございます。

取り急ぎ、お礼まで。

お礼日時:2011/03/27 21:20

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