I believe you can do this

class Foo
{
  var bar:Function;
}


//somewhere outside the class

function myfunction():void {trace('hi')};

var foo:Foo = new Foo;
foo.bar = myfunction;


if you have 
class Foo
{
  function bar():void {}
}

then you must override.

But you have more flexibility if Foo is defined as a Dynamic Class..



--- In flexcoders@yahoogroups.com, "Josh McDonald" <[EMAIL PROTECTED]> wrote:
>
> Thanks for that info.
> 
> I'm not really sure about how things work internally, besides some vague
> references to "traits" the documentation doesn't help too much - can you
> redefine member methods on a particular instance?
> 
> What I mean is this:
> 
> var foo : Foo = new Foo();
> foo.bar(); // Does something
> foo.bar = function() : void { doOtherStuff() };
> foo.bar(); // Does something else
> 
> -J
> 
> On Tue, Apr 29, 2008 at 10:14 AM, Gordon Smith <[EMAIL PROTECTED]> wrote:
> 
> >    I think there is additional overhead in calling an anonymous
function
> > (i.e., your 'var foo:Function = ' case).
> >
> >
> >
> > And I don't think that the rules for what 'this' is, when the function
> > executes, are the same.
> >
> >
> >
> > Gordon Smith
> >
> > Adobe Flex SDK Team
> >
> >
> >  ------------------------------
> >
> > *From:* flexcoders@yahoogroups.com
[mailto:[EMAIL PROTECTED] *On
> > Behalf Of *Josh McDonald
> > *Sent:* Monday, April 28, 2008 4:58 PM
> > *To:* flexcoders@yahoogroups.com
> > *Subject:* Re: [flexcoders] Advanced(?) Actionscript question
> >
> >
> >
> > Of course you're right, my syntax was dodgey. I meant:
> >
> > var foo : Function = function():* {};
> >
> > But besides that, my questions still stand ;-)
> >
> > -J
> >
> > On Tue, Apr 29, 2008 at 9:45 AM, Bjorn Schultheiss <
> > [EMAIL PROTECTED]> wrote:
> >
> > In the second version your initializing foo as an object.
> >
> >
> >
> > I'm pretty certain you cant do,
> >
> > var foo:Function = {trace('foo')}
> >
> >
> >
> >
> >
> >
> >
> > On 29/04/2008, at 9:37 AM, Josh McDonald wrote:
> >
> >    Guys,
> >
> > what's the difference (if it exists) between:
> >
> > public function foo() : * {}
> >
> > and:
> >
> > public var foo : Function = {};
> >
> > Does it exist? I assume you can call Bar.foo() in both cases, and foo
> > shows up as a variable in describeType() in the second instance?
Are there
> > other details I'm not aware of?
> >
> > Cheers,
> >
> > -J
> >
> > --
> > "Therefore, send not to know For whom the bell tolls. It tolls for
thee."
> >
> > :: Josh 'G-Funk' McDonald
> > :: 0437 221 380 :: [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> >
> > --
> > "Therefore, send not to know For whom the bell tolls. It tolls for
thee."
> >
> > :: Josh 'G-Funk' McDonald
> > :: 0437 221 380 :: [EMAIL PROTECTED]
> >
> >  
> >
> 
> 
> 
> -- 
> "Therefore, send not to know For whom the bell tolls. It tolls for
thee."
> 
> :: Josh 'G-Funk' McDonald
> :: 0437 221 380 :: [EMAIL PROTECTED]
>


Reply via email to