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 > > >
