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

AS3.0について初歩的な質問です。

AS2で下記のような関数の場合、

function hoge(mc){
mc.i = 0;
mc.onEnterframe = function(){
if(this.i++==50){
trace(this.i);
this.onEntrFrame = null;
}
}

これをAS3.0に書き直すとどのようなコードになるのでしょうか?
知りたいポイントは、
(1)function内でENTER_FRAMEイベントをあるMovieClipにセットできるか
(2)そのENTER_FRAMEイベントを消去できるか

よろしくご教示ください!

●質問者: soyuz11
●カテゴリ:インターネット ウェブ制作
✍キーワード:as3 hoge MC trace イベント
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ぱこち
●60ポイント ベストアンサー

hoge の中に全部まとめる必要があるなら、私はこんな風に書きます。

まとめる必要が無いなら、イベント用の関数は hoge の外に書くと思います。(単なる好みです。)

private function hoge (mc:Object):void {

mc.i = 0;
mc.addEventListener(Event.ENTER_FRAME, mcEnterFrameHandler);

function mcEnterFrameHandler (event:Event):void {

if (event.target.i++ == 50) {

trace(event.target.i);
event.target.removeEventListener(Event.ENTER_FRAME, mcEnterFrameHandler);

}

}

}

removeEventListener で消去するものを指定するために、関数に名前を付けています。

◎質問者からの返答

なるほど。

event.target は AS2での this に代わる

書き方なんですね…

thisにして実行したら機能しませんでした(><)

AS2にどっぷり慣れてしまっているので大変です…

とても参考になりました!

関連質問


●質問をもっと探す●



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