Interesting! I didn't know that the capture phase worked for non-bubbling
events. Good to know. Thanks for looking into it and sharing your findings,
Greg.

- Josh


On Thu, Jul 4, 2019, 11:12 PM Greg Dove <[email protected]> wrote:

> Hi Josh,
>
> For the addedToStage stuff:
> You made me look! Swiz does not actually use the ADDED event, it definitely
> does use ADDED_TO_STAGE by default, but you're absolutely right, this does
> not bubble.
>
> I did not pay too much attention to the 'bubbling' side of things because I
> could see it working in flash and just assumed that's what was happening.
> But it is actually being listened to as a capture phase event. And that
> does give the same outward impression (without looking too closely) as if
> it were bubbling in this case.
>
> I even resorted to a quick test in Adobe Animate to verify:
>
> import flash.display.Sprite;
> import flash.events.Event;
>
> var sprite:Sprite = new Sprite();
> sprite.name ='1';
> function onAdded(event:Event):void{
> trace('added' ,event.target.name)
> }
> function onRemoved(event:Event):void{
> trace('removed' ,event.target.name)
> }
>
> sprite.addEventListener(Event.ADDED_TO_STAGE, onAdded, true);
> sprite.addEventListener(Event.REMOVED_FROM_STAGE, onRemoved, true);
>
> var sprite2:Sprite = new Sprite();
> sprite2.name = '2'
>
> var sprite3:Sprite = new Sprite();
> sprite3.name = '3'
>
> addChild(sprite);
> sprite.addChild(sprite2)
>
>
> sprite2.addChild(sprite3);
>
> //remove the child tree
> sprite.removeChild(sprite2)
>
> /*
> trace output:
> added 2
> added 3
> removed 2
> removed 3
> */
>
> So I updated the stage events emulator to support this. 'removedFromStage'
> now also works in capture phase on the strand that the bead is on for child
> event targets that were removed.
> In terms of the names of the events... that is quite easy to change. But
> whatever we decide on, I just need to add as a  COMPILE::JS variation to
> the 'default' setupEventType/teardownEventType in the Config class for Crux
> to account for what would now be a difference between SWF and JS (which is
> fine by me, I only started with the same names by trying to match how
> things worked in swf as they were). So far it does work the same between
> swf and js builds, although there is only one simple example that builds
> for both which I have tested with.
>
> In terms of the name of the bead, also that can be whatever people think
> makes sense. I put JS in the name because one of the builds works for both
> swf and js. And seeing that a bead is for JS only is maybe helpful to
> know.. although I have always wondered whether it would make sense to have
> compiler switches in mxml - some sort of 'transparent' enclosing tag
> similar to how a COMPILE::JS {  code here } compile block works in
> actionscript. I don't know it that makes sense.... something like that
> could mean that the swf build does not get the unnecessary bead (which does
> nothing in swf anyway)
>
> Thanks heaps for the prompts on these things.
>
>
> -Greg
>
>
> On Fri, Jul 5, 2019 at 5:49 AM Carlos Rovira <[email protected]>
> wrote:
>
> > Hi Andrew,
> >
> > good point! That's without doubt another new point to bring to :
> >
> > - Royale-docs: We can follow most of the documentation available here [1]
> > - Examples: In this case I don't see a Tour app since the use cases are
> > very direct and can be exposed in few examples.
> > Greg already provide 3 examples that shows all the things currently
> > developed here [2]. I think we'll need to do soon a blog example
> > covering Crux too that could be one of those or a new one. For example
> TODO
> > List example would be a good one to apply Crux ;)
> >
> > [1] https://swizframework.jira.com/wiki/spaces/SWIZ/overview
> > [2]
> https://github.com/apache/royale-asjs/tree/feature/Crux/examples/crux
> >
> > So many work there too to make it all avaialble to Apache Royale users as
> > easy as possible ;)
> >
> >
> >
> > El jue., 4 jul. 2019 a las 18:46, Andrew Wetmore (<[email protected]>)
> > escribió:
> >
> > > This is great.
> > >
> > > However, even with the original Swiz I found the documentation quite
> thin
> > > and that it made a lot of assumptions about what a general developer
> > might
> > > know and need to know. This site [1] made an attempt about ten years
> ago
> > to
> > > improve on an intro to Swiz. What plans are in the works to not only
> > > provide Crux, but make it welcoming and accessible? Tour de Crux??
> > >
> > > a
> > >
> > > [1] https://deshartman.wordpress.com/2010/02/07/first-swiz/
> > >
> > > On Thu, Jul 4, 2019 at 1:17 PM Josh Tynjala <[email protected]
> >
> > > wrote:
> > >
> > > > 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 <[email protected]> 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
> > > > >
> > > >
> > >
> > >
> > > --
> > > Andrew Wetmore
> > >
> > > http://cottage14.blogspot.com/
> > >
> >
> >
> > --
> > Carlos Rovira
> > http://about.me/carlosrovira
> >
>

Reply via email to