If you're speaking about the swf7/swf8-kernel, things get pretty hard to manage, for example "LzSprite.prototype.setCursor(..)" registers the sprite to its owner's "onmouseout"-event, or another great example: the "LzMakeLoadSprite.createLoader()". (The functions from LzMakeLoadSprite will be attached at runtime to a LzSprite, when the sprite loads http-images. So, any reference to "this" in LzMakeLoadSprite refers to a LzSprite. Yeah!).

Can I file a bug for you to do that? The most popular one I see is the sprite scheduling checkPlayStatus2 on LzIdle. Instead it should just use some runtime native timer, right?

On 2008-05-07, at 12:54 EDT, Max Carlson wrote:

>/ I agree - sprites shouldn't be allowed to send events directly into />/ the system. Kernels should always use callbacks for this... We've />/ been a bit sloppy with the swf8 kernel, but dhtml and swf9 _should_ />/ use callbacks exclusively.
/>/
/>/ P T Withington wrote:
/>>/ Actually, thinking about it, the Sprite, being in the kernel, has />>/ no business trying to use a generic service like events. Each />>/ sprite implementation needs to use its own kernel services directly />>/ to do any eventing. I think that in most cases the sprite is just />>/ registering a timeout event, which should be simple to do.
/>>/ On 2008-05-07, at 11:49 EDT, P T Withington wrote:
/>>>/ It really turns out that LzDelegate and LzEvent want their />>>/ context's to be LzMiniNode's (because they want to look at />>>/ __LZdeleted, __LZdeferDelegates, and _events). If all context's />>>/ were LzMiniNodes (or LzEventable, as proposed yesterday), we could />>>/ also implement automatic tracking of events and delegates so they />>>/ won't leak when nodes are destroyed (eliminating the burden on />>>/ every LZX class doing this for themselves).
/>>>/
/>>>/ I tried to enforce this, but run into trouble because Sprite's />>>/ want to register themselves as delegates, but they are not mini />>>/ nodes.
/>>>/
/>>>/ One thought: I create a superclass LzSimpleDelegate and />>>/ LzSimpleEvent that work with any object and don't participate in />>>/ the node protocol.
/>>>/
/>>>/ Any better ideas?
/>/
/>/ -- />/ Regards,
/>/ Max Carlson
/>/ OpenLaszlo.org/

Reply via email to