人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

AS3で質問です。
一度宣言したTimerの実行間隔をfunction内から変更する手段はないでしょうか?というものです。
かなり手続き型プログラムな理解しかないので初歩的な質問でお恥ずかしいですが、ご助言お願いいたします。

以下がソースコードになります。

//カウント変数を定義
var nekoNo:int = new int();

//Timerオブジェクトを定義
var testtime:Timer = new Timer(60);
testtime.addEventListener(TimerEvent.TIMER,ontimer);

//TimerStart時に起こるイベントを定義
function ontimer(evt:TimerEvent):void{
root.nekoNo ++;
trace(root.nekoNo);
}

//計測開始
function str_time():void{
//うまくいっていませんが、このタイミングでtesttimeの実行間隔を再設定したい。
root.testtime = new Timer(1200);
testtime.start();
}

//実行
str_time();

●質問者: みずぽ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as3 root Time. trace void
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● POPO
●28ポイント

ビミョーに何をなさりたいのか不明なため、はずしているかもしれませんが・・

str_time()内でtesttimeに設定したTimerオブジェクトは

最初に作ったTimerオブジェクトと別モノなので、再度addEventListener()

しないとイベントハンドラ呼び出されない様に思います。


//計測開始

function str_time():void{

root.testtime = new Timer(1200);

// 新しいTimerオブジェクトにイベントリスナを設定

testtime.addEventListener(TimerEvent.TIMER,ontimer);

testtime.start();

}

◎質問者からの返答

ボタンでTimerオブジェクトを制御したいので、

ボタン(押した時にstr_timeが起動する)のfunction外で作ったTimerオブジェクトを

参照する方法はないものか…と悩んでいる所なのです。

どうにか方法はないものでしょうか。


2 ● kreuz2nd
●50ポイント

Timerクラスの実行感覚はdelayプロパティで変更できます。


rootを付けてるとエラーがでませんでしたか?AS2の_rootとAS3のrootは違うので、気をつけたほうがいいかもしれません。AS3はfunction内であっても、スコープが違うという事はありません。


下記のコードではbtnインスタンスを使用しておりますので、コピペの際はお気を付けください。



//カウント変数を定義

var nekoNo:int;//intはnewしなくても大丈夫ですよ。初期値0です。


//Timerオブジェクトを定義

var testtime:Timer = new Timer(60);

testtime.addEventListener(TimerEvent.TIMER,ontimer);

trace(this.testtime.delay);//出力:60


btn.addEventListener(MouseEvent.CLICK, str_time);


//TimerStart時に起こるイベントを定義

function ontimer(evt:TimerEvent):void{

nekoNo ++;

trace(nekoNo);

}


//計測開始

function str_time(e:MouseEvent):void{

//うまくいっていませんが、このタイミングでtesttimeの実行間隔を再設定したい。

testtime.delay = 1200;

trace(testtime.delay);//出力:1200

testtime.start();//1200msごとにontimerが呼び出されます

}

◎質問者からの返答

丁寧なご回答ありがとうございます!

delayプロパティの設定で再現できました!

ちなみにrootやparentといったAS3で本来使わない書き方に関しては

パブリッシュ設定のAS3設定でstrictモードのチェックを外すと使う事ができます。

まだまだAS3に慣れずどうしてもAS2っぽい書き方をしていますが、

やはり根本からちゃんと理解してドキュメントクラスの切り分けを行った方がいいなぁという気がしています。

今回は本当にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ