If I want to change the behavior of an object dynamically I rather
create a new class to encapsulate the functionality. I might have to
write more code but I think it this is a very clean approach.
class CustomClickBehavior implements Clickable
{
public function click():Void
{
trace ("hello world!");
}
}
// class
class Foo
{
var myClickBehavior: Clickable;
// here I can change the behavior to what ever I want
public function setClickBehavior (myClickBehavior:
Clickable):Void
{
this. myClickBehavior = myClickBehavior;
}
public function onClick():Void
{
myClickBehavior.click();
}
}
// Interface
Interface Clickable
{
public function click():void;
}
// code
var myFoo = new Foo();
var myCustomClickBehavior = new CustomClickBehavior();
myFoo.setClickBehavior(myCustomClickBehavior);
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of dnk
Sent: Monday, 14 August 2006 1:47 PM
To: Flashcoders mailing list
Subject: Re: [Flashcoders] |:::| can you write dynamic meathods in a
class?
Bjorn Schultheiss wrote:
> Hey Guys, check this out
>
>
> Var clickHandler:Function = MyClass.staticMethod;
> var args:Array = ['Can', 'pass', 'in', 'any', 'amount'];
> newBtn.addEventListener("click", Delegate.create(this,
function(evt:Object,
> meth:Function, args:Array) { meth.apply(null, args) }, clickHandler,
args )
> );
That is a good idea! I just tried one of simpler layout (at least to me
in terms of what I understand in AS) .... works like a charm:
import utils.Delegate;
//Create array to pass multiple args in - both string and number for
testing
var aMyArgs:Array = [1, 2, 'three', 4];
//use the delegate
this.menuBtn.addEventListener("click", Delegate.create(this, onHit1,
aMyArgs));
//create the btn event to handle the click
function onHit1(o:Object, n:Array)
{
for (i = 0; i < n.length; i++)
{
trace("it was hit with the arg: " + n[i]);
}
}
This is VERY handy (well to me anyways) to be able to pass in what ever
args I need to.
d
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com