Moved this general-purpose flash/mx class here, from the msoy project.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4190 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
package com.threerings.mx.effects {
|
||||||
|
|
||||||
|
import mx.effects.EffectInstance;
|
||||||
|
import mx.effects.Effect;
|
||||||
|
|
||||||
|
public class FunctionEffect extends Effect
|
||||||
|
{
|
||||||
|
/** The function to call. */
|
||||||
|
public var func :Function;
|
||||||
|
|
||||||
|
/** The arguments to pass to the function. */
|
||||||
|
public var args :Array;
|
||||||
|
|
||||||
|
public function FunctionEffect (target :Object = null)
|
||||||
|
{
|
||||||
|
super(target);
|
||||||
|
|
||||||
|
instanceClass = FunctionEffectInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
// documentation inherited
|
||||||
|
override protected function initInstance (instance :EffectInstance) :void
|
||||||
|
{
|
||||||
|
super.initInstance(instance);
|
||||||
|
|
||||||
|
var fe :FunctionEffectInstance = (instance as FunctionEffectInstance);
|
||||||
|
fe.func = func;
|
||||||
|
fe.args = args;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.threerings.mx.effects {
|
||||||
|
|
||||||
|
import mx.effects.effectClasses.ActionEffectInstance;
|
||||||
|
|
||||||
|
public class FunctionEffectInstance extends ActionEffectInstance
|
||||||
|
{
|
||||||
|
public function FunctionEffectInstance (target :Object)
|
||||||
|
{
|
||||||
|
super(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** The function to call. */
|
||||||
|
public var func :Function;
|
||||||
|
|
||||||
|
/** The args to pass. */
|
||||||
|
public var args :Array;
|
||||||
|
|
||||||
|
override public function play () :void
|
||||||
|
{
|
||||||
|
super.play();
|
||||||
|
|
||||||
|
// call the function!
|
||||||
|
func.apply(null, args);
|
||||||
|
|
||||||
|
// and we're done
|
||||||
|
finishRepeat();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user