2006年3月21日

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自身) } }

archive

profile

神谷修平。1985年東京生まれ。2005年より都内プロダクションにて勤務後、2008年6月ARCHETYP inc.に移籍。
デザイン、フラッシュのコーディングを主に手がける。

/** footer */