That's a dangerous practice. It prevents you from using weak event
listeners -- because the only reference to your delegate function
object is the event listener itself, a weakly-referenced listener will
be garbage collected. Now have to manually remove your listener to
make sure your object is garbage collected -- but the only way to
remove event listeners is to pass the removeEventListener function a
reference to the function you want to remove... but you don't have
that reference!

If it's a one-time event, you can have the listener remove itself.
Your delegate function object can pass a reference to itself (using
arguments.callee) in to the "real" event listener function, which you
can use to remove the listener. In any other case, you'll have to
build a separate data structure (usually a Dictionary of Objects ->
Functions) to keep a reference available to your code.

On 3/12/08, EECOLOR <[EMAIL PROTECTED]> wrote:
> If we ever he need to pass extra arguments to the handler we use a delegate
>  class to pass them. Usage:
>  obj.addEventListener(Event.TYPE, Delegate.create(this, _handler, arg1,
>  arg2));
>  private function _handler(e:Event, arg1:Object, arg2:Object):void
>  {
>  };
>  I added our delegate class as an attachment.
>  Note that for class methods the scope (first argument of the create method)
>  has no influence.
>  Greetz Erik
>  On 3/12/08, Helmut Granda <[EMAIL PROTECTED]> wrote:
>  >
>  > Hi Bob,
>  >
>  > Thanks for the comment, that is the route that started working on after
>  > posting the question and the only issue I am having is dispatching the
>  > custom event when the timer has been reached, I did a soft search for
>  > samples of extending the Timer Class with custom TimerEvents but wasnt
>  > able
>  > to find any.... would you happen to know where I could find more info?
>  >
>  > Thanks!!
>  >
>  >
> _______________________________________________
>  Flashcoders mailing list

Cory Petosky : Lead Developer : PUNY
1618 Central Ave NE Suite 130
Minneapolis, MN 55413
Office: 612.216.3924
Mobile: 240.422.9652
Fax: 612.605.9216
Flashcoders mailing list

Reply via email to