March 21, 2006

mx.utils.Delegateの使い方(スコープの指定)

actionscriptでいろいろごにょごにょやってるうちにスコープが訳わからなくなったりとか、ここのthisスコープはこれじゃあんわーって感じのときとかに使うといい感じ。

//_rootフレームアクション mcA.onPress = pressA; function pressA() { trace(this);//output '_root.mcA' } import mx.utils.Delegate; mcB.onPress = Delegate.create(this, pressB); function pressB() { trace(this);//output '_root' }

とりあえず使うときはこんな感じで。

setIntervalで使うときは

import mx.utils.Delegate; setInterval(Delegate.create(this, intervalAction), 1000); function intervalAction() { trace(this); }

こんな感じで。

このDelegateはフレームアクションで使っても余りメリットというものがなく、クラス内で使うと幸せになれる。

import mx.utils.Delegate; class A { function A(mcA:MovieClip, mcB:MovieClip) { mcA.onPress = runA; mcB.onPress = Delegate.create(this, runB); } /** mcAで実行するfunction */ function runA() { trace(this);//output: "mcA" } /** mcBで実行するfunction */ function runB() { trace(this);//output: "object : Object"(クラスA自身) } }

NAME
MAIL(not released)
WEBSITE

MESSAGE

※コメントは管理人が承認したものから公開されます。

archive

profile

お仕事のご依頼・ご相談はこちらから


loftimgのWebサイトはエックスサーバー にて運用しています。