Cool stuff, Greg and Carlos!

One concern: In Flash, the "addedToStage" event does not bubble. It's
actually the "added" event that bubbles and is used by frameworks like
Swiz, Cairngorm, Robotlegs, etc.

To avoid potential confusion for people migrating an existing app from
Flex/Flash that might already listen for that event (and wouldn't expect it
to bubble), I'd recommend using a different name than "addedToStage". It
could be "added", like Flash. Or it could even have a new name that's
similar to "addedToStage", but is more relevant to Royale. Royale doesn't
have a "stage", so that name feels a bit out of place to me anyway. Maybe
"addedToApplication" or something like that.

- Josh


On Wed, Jul 3, 2019, 11:11 PM Greg Dove <greg.d...@gmail.com> wrote:

> Hi all,
>
> Just a quick advance notice that we are getting something very similar to
> Swiz before too long.
> There is a new branch called feature/Crux
>
> We can still explore other possible ways to incorporate Swiz code in Royale
> (we have looked at having the code donated in the past), but for now at
> least it is as a derivative work, differentiated by name as 'Crux' and
> hence the name of the branch. 'Crux' means a main or pivotal point -
> something important - and a common English expression that can express that
> is when someone says ""the crux of the matter" - it means an important
> thing to focus on.
>
> The name is what it is now - it is short and has a powerful meaning. But
> certainly we can review that too.
>
> The branch has the beginnings of the original Swiz functionality which
> supports metadata driven Injection (including runtime Binding Injection),
> EventHandlers, main Dispatcher etc.
> Those things are already shown in 3 examples [1] in examples/crux in the
> branch, (but I did not check the ant builds for those yet- I will get to
> that). Beyond those features, I have not ventured far yet, and perhaps some
> of the others may not be relevant for Royale.
>
> In case it's useful elsewhere, there is also a new JSStageEvents  'stage
> events' simulator bead which works from the main application level, and
> provides bubbling 'addedToStage' events which Crux listens to at the top
> level. These can be filtered (so not everything generates the events, for
> example). Not sure if that might be useful for other things, just
> mentioning it for now... It does dispatch 'removedFromStage' as well, but
> too late for bubbling, so I will investigate if I can do something a bit
> sneaky to see if I can make that work. Otherwise it is always possible to
> add  removedFromStage  listeners directly to the target of interest inside
> an 'addedToStage' listener.
>
> I expect there will be bugs, and I of course there will be many things I
> can continue to improve, so this is just an early announcement for your
> awareness. Carlos sponsored a large chunk of my time on this, so you have
> him to thank for that, but I have also contributed a lot of my own time,
> and will continue to do so. Thanks also to Alex for recent guidance on
> licencing issues, this was uncharted territory for me.
>
> Anyhow, Carlos will, I am sure, provide more info, he is very familiar with
> Swiz from the past.
>
> -Greg
>
>
> 1. https://github.com/apache/royale-asjs/tree/feature/Crux/examples/crux
>

Reply via email to