You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Alex Harui <ah...@adobe.com.INVALID> on 2017/10/31 15:24:47 UTC

Event Metadata (was Re: [GitHub] ...: Image not removed when src set to null

Renaming thread.

Another option is for the beads themselves to have event metadata for
events they dispatch and either:
1) the bead dispatches both off of itself and its strand, or
2) certain addEventListener calls are passed to the strand.

That's sort of the general pattern for de-composing or "exploding" a
component.  And then the wrapping component doesn't need metadata that
won't apply to the beads declared.

Having a bead that can attach a particular kind of listener and call a
handler also fits in our patterns.  And similarly, a bead that dispatches
platform-specific might be useful as well.

My 2 cents,
-Alex

On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:

>Good points.
>
>> One issue to consider are whether a container of beads should be have
>> metadata about the events dispatched by its beads since the changing of
>> beads could make that metadata incorrect.  IMO, this has been a problem
>>in
>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>> currently in play and aggregate allowable events from those beads'
>> metadata someday.
>
>Hmm. Not a simple problem. One approach we can take is to add metadata to
>the component and include documentation on which beads are required for
>the event to fire.
>
>Of course this only takes care of more-or-less standard beads. Optional
>beads that are generally not used would need another mechanism to specify
>event handlers in MXML (if that would be supported).
>
>Considering the “smarter IDE approach”, it seems like there’s two
>problems:
>1. The compiler needs to know that the attributes are OK. Currently, the
>compiler will complain if you use an unrecognized tag.
>2. There’s lots of ways to add beads, and it’s hard to know if a specific
>bead is actually added. They can be added using CSS, AS code and MXML.
>Dynamically following that flow in tooling seems like a *really* hard
>problem.
>
>Another idea would be to allow specifying event handlers in a format
>something like this:
><js:FooComponent id=“foo”>
><js:events>
><js:EventDescriptor type”layoutNeeded” handler=“handleLayoutNeeded()”/>
></js:events>
></js:FooComponent>
>
>I’m kind of liking this idea as it follows the pattern we currently have
>for beads and styles. EventDescriptor could be subclassed to have classes
>of events which could offer code completion for the available event
>types. There would not be enforcement that the events would actually be
>dispatched, but I think it would be helpful and would allow users to
>specify random event handlers declaratively.
>
>> Another issue to consider is cross-platform.  A component may not be
>>able
>> to dispatch the events listed in metadata on all platforms.
>
>It seems to me that metadata on cross-platform components should always
>be cross-platform. If there are platform-specific events, they should not
>be included or there should be a platform-specific component. We’ve
>already solved the problem with mouse events by renaming the event
>strings in the compiler depending on the target. (i.e. “doubleClick” in
>MXML becomes “dblclick” automatically for JS output). I think Mouse
>events are an exception, but if there are any other events that fit this
>exception, they should be handled the same way.
>
>> On Oct 30, 2017, at 8:41 PM, Alex Harui <ah...@adobe.com.INVALID>
>>wrote:
>> 
>> Some Metadata is kept in the output, but events probably aren't.
>> 
>> One issue to consider are whether a container of beads should be have
>> metadata about the events dispatched by its beads since the changing of
>> beads could make that metadata incorrect.  IMO, this has been a problem
>>in
>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>> currently in play and aggregate allowable events from those beads'
>> metadata someday.
>> 
>> Another issue to consider is cross-platform.  A component may not be
>>able
>> to dispatch the events listed in metadata on all platforms.
>> 
>> Also consider that on JS, events probably have to be propagated from the
>> wrapped element to the strand so there is cost there.
>> 
>> It is hopefully easy enough for anyone who wants to get an event that
>> isn't already in metadata, to subclass, add the metadata and any wiring.
>> 
>> My 2 cents,
>> -Alex
>> 
>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>><ma...@gmail.com>> wrote:
>> 
>>> I’m not talking about adding events. I’m talking about adding metadata
>>> for *existing events* so they could be addressed in MXML.
>>> 
>>> 
>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>><pi...@gmail.com>
>>>> wrote:
>>>> 
>>>> If you decide to add event that's fine with me. :) It is just the
>>>> matter of
>>>> thinking about those Basic components from my sight. I have started to
>>>> look
>>>> at them as something which should be closer to HTML than to the old
>>>>Flex
>>>> world. Rest of the features should be provided by beads - if it is
>>>> possible
>>>> or by Express.
>>>> 
>>>> The exception could be and MDL from that which I would like to extend,
>>>> but
>>>> here I can think about those components as they are Express right now.
>>>> 
>>>> Piotr
>>>> 
>>>> 
>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>>>> 
>>>>> Why? Unless it adds overhead, it seems to me like any event that can
>>>>>be
>>>>> added using addEventListener() should be addressable using MXML.
>>>>> 
>>>>> I’m just not sure from a technical perspective whether the MXML meta
>>>>> tags
>>>>> add overhead if not used.
>>>>> 
>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>> <pi...@gmail.com>
>>>>> wrote:
>>>>>> 
>>>>>> Hi Harbs,
>>>>>> 
>>>>>> Some time ago there were discussion on Flex Dev which makes me
>>>>>>realize
>>>>> that
>>>>>> we should add event tags as long as they are reflecting some native
>>>>>> HTML
>>>>>> api, unless we are in express. For example we are using in many
>>>>>>places
>>>>>> "change" event which is I believe quite common in JS world, but I
>>>>>> would
>>>>>> avoid any additional custom one. In the other world Let's answer to
>>>>>> the
>>>>>> question in following case - Does "img" in HTML world have "load"
>>>>>> event ?
>>>>>> 
>>>>>> Piotr
>>>>>> 
>>>>>> 
>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>> 
>>>>>>> This does raise a good question:
>>>>>>> 
>>>>>>> Should we be adding MXML meta tags for all supported events? It
>>>>>>>seems
>>>>> like
>>>>>>> a desirable thing to have, and there are currently very few event
>>>>>>> tags.
>>>>> I’m
>>>>>>> not clear on whether the meta-tags effect the end result of code
>>>>>>> size.
>>>>>>> 
>>>>>>> Harbs
>>>>>>> 
>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
>>>>>>>> 
>>>>>>>> justinmclean commented on issue #60: Image not removed when src
>>>>>>>>set
>>>>>>>> to
>>>>>>> null
>>>>>>>> URL: 
>>>>>>>> 
>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
>>>>>>>>th 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fg
>>>>>>>>ith>
>>>>>>>> ub.com 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fub
>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=r6HO%
>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2Fapache%
>>>>>>>>2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>> 
>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>>>>>>>%7
>>>>>>>> 
>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWVqy17xFb
>>>>>>>>if
>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>> issuecomment-340524197
>>>>>>>> 
>>>>>>>> 
>>>>>>>> This code fails to compile:
>>>>>>>> ```
>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>>>>> <js:Application
>>>>>>>> 
>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>> 2F%2Fns.adobe.com
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F2f
>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sda
>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0>%2Fmxm
>>>>>>>>l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>> 
>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984
>>>>>>>>71
>>>>>>>> 
>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFKdzAe4%2
>>>>>>>>Bn
>>>>>>>> o%3D&reserved=0"
>>>>>>>>                xmlns:js="library://ns.apache.org/royale/basic
>>>>>>>><library://ns.apache.org/royale/basic>">
>>>>>>>> 
>>>>>>>>    <fx:Script><![CDATA[
>>>>>>>>        import org.apache.flex.events.IEventDispatcher;
>>>>>>>> 
>>>>>>>>        public function blankimage():void {
>>>>>>>>            image.visible = false;
>>>>>>>>            image.src =
>>>>>>>> 
>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>ww 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>ww>
>>>>>>>> .apache.org
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fap
>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa
>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=w
>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data=0
>>>>>>>>2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>> 
>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=
>>>>>>>>pn
>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>> foundation/press/kit/
>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>        }
>>>>>>>>        public function showImage():void {
>>>>>>>>            image.visible = true;
>>>>>>>>        }
>>>>>>>>        ]]></fx:Script>
>>>>>>>> 
>>>>>>>>    <js:valuesImpl>
>>>>>>>>        <js:SimpleCSSValuesImpl/>
>>>>>>>>    </js:valuesImpl>
>>>>>>>> 
>>>>>>>>    <js:initialView>
>>>>>>>> 
>>>>>>>>        <js:View>
>>>>>>>>            <js:Container id="startPage" visible="true"
>>>>>>>> width="100%">
>>>>>>>>                <js:beads>
>>>>>>>>                    <js:VerticalLayout />
>>>>>>>>                </js:beads>
>>>>>>>>                <js:Image id="image"
>>>>>>>> 
>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>%2 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2>
>>>>>>>> Fwww.apache.org
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffw
>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%2F
>>>>>>>>&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>> 
>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>>>at
>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>                <js:TextButton text="Blank" click="blankimage()" />
>>>>>>>>            </js:Container>
>>>>>>>>        </js:View>
>>>>>>>>    </js:initialView>
>>>>>>>> 
>>>>>>>> </js:Application>
>>>>>>>> ```
>>>>>>>> 
>>>>>>>> With this error:
>>>>>>>> ```
>>>>>>>> 
>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.mxml(26)
>>>>>>>>:
>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
>>>>>>>> 
>>>>>>>>                <js:Image id="image"
>>>>>>>> 
>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>%2 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2>
>>>>>>>> Fwww.apache.org
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffw
>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%2F
>>>>>>>>&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>> 
>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>>>at
>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>> layoutNeeded="showImage()" />
>>>>>>>> ```
>>>>>>>> 
>>>>>>>> I assume the only way to do this would be to add a hard coded
>>>>>>>>event
>>>>>>> listener manually like so?
>>>>>>>> 
>>>>>>>> ```
>>>>>>>>    <fx:Script><![CDATA[
>>>>>>>>        public function blankimage():void {
>>>>>>>>            image.visible = false;
>>>>>>>>            image.src =
>>>>>>>> 
>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>ww 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>ww>
>>>>>>>> .apache.org
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fap
>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa
>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=w
>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data=0
>>>>>>>>2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>> 
>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=
>>>>>>>>pn
>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>> foundation/press/kit/
>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>            image.addEventListener("layoutNeeded", showImage);
>>>>>>>>        }
>>>>>>>> 
>>>>>>>>        public function showImage(event:Event):void {
>>>>>>>>            image.visible = true;
>>>>>>>>        }
>>>>>>>>        ]]></fx:Script>
>>>>>>>> ```
>>>>>>>> 
>>>>>>>> 
>>>>>>>> ----------------------------------------------------------------
>>>>>>>> This is an automated message from the Apache Git Service.
>>>>>>>> To respond to the message, please log on GitHub and use the
>>>>>>>> URL above to go to the specific comment.
>>>>>>>> 
>>>>>>>> For queries about this service, please contact Infrastructure at:
>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>>>>>>>> 
>>>>>>>> 
>>>>>>>> With regards,
>>>>>>>> Apache Git Services
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> 
>>>>>> Piotr Zarzycki
>>>>>> 
>>>>>> mobile: +48 880 859 557
>>>>>> skype: zarzycki10
>>>>>> 
>>>>>> LinkedIn: 
>>>>>> 
>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.l
>>>>>>in 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
>>>>>>lin>
>>>>>> kedin.com 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkedi
>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5
>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Mm3KnX%2
>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpiotrzarzy
>>>>>>cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>> 
>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>&s
>>>>>> data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>> 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>li 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>li>
>>>>>> nkedin.com 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnked
>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=4v8CSfu
>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpiotr-zarz
>>>>>>ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>> 
>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
>>>>>>64
>>>>>> 
>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%
>>>>>>3D
>>>>>> &reserved=0>
>>>>>> 
>>>>>> GitHub: 
>>>>>> 
>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
>>>>>>ub 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
>>>>>>hub>
>>>>>> 
>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc3
>>>>>>8b
>>>>>> 
>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>at
>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> 
>>>> Piotr Zarzycki
>>>> 
>>>> mobile: +48 880 859 557
>>>> skype: zarzycki10
>>>> 
>>>> LinkedIn: 
>>>> 
>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.lin
>>>>ke 
>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.li
>>>>nke>
>>>> din.com 
>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin.co
>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b344
>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJtY44XdR
>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&data=02%7C
>>>>01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>> 
>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata
>>>>=M
>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>> 
>>>> 
>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li
>>>>nk 
>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li
>>>>nk>
>>>> edin.com 
>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedin.c
>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b34
>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3iLsgF8wv
>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-zarzycki-92a53
>>>>552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>> 
>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984
>>>>71
>>>> 
>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3D&reser
>>>>ve
>>>> d=0>
>>>> 
>>>> GitHub: 
>>>> 
>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub
>>>>.c 
>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu
>>>>b.c>
>>>> 
>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>%7
>>>> 
>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=mi
>>>>12
>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>


Re: Event Metadata

Posted by Peter Ent <pe...@adobe.com.INVALID>.
Perhaps another perspective.

The "core" or "foundation" of Royale is to take AS/MXML files and create
code that runs on a targeted platform. SWF, HTML/JS so far.

The "engine" of Royale - the platform code generated from the AS files
that form the "engine" - takes strands and adds to them beads, dispatching
some events along the way at key points in the construction of the beads.
Consider this a bootstrapping process that will build the UI.

To me, that's the essential, heart of Royale.

What application developers use - which UI kits - can be simple, basic,
composited, complex, compatible, etc. It just takes some planning and time
to develop the kits. The Basic kit is supposed to make it easy to create
simple, quick, small apps that on the target platform, are not complex in
construction. For example, the Container class used to produce nested DIV
elements because, on SWF platform, there was no way to make something
scrollable without using one container to mask another (clipping) and to
create scrollbars. The JS platform was simpler: DIV with overflow:auto CSS
style. This past year I simplified the JS side so that when you use a
Container all you get is a single DIV (and if you add the
ScrollableViewport bead to a Container, the JS side just adds that CSS
style).

We are used to Flex with a richer set of components, and that includes
helpful Event classes that have payloads and constants for type names and
so forth. We can do this with Royale, no problem. But that's a different
kit/philosophy than the Basic set.

I believe the PAYG philosophy does not have to permeate all of Royale. Its
there in the Basic and some other kits, but not necessarily has to be part
of every kit anyone ever makes.

Basically, if anyone really wants a complex and rich application UI kit,
and is willing to have the platform code generated by Royale compiler be
on the "heavy" side, you can have that. We just haven't written it.

I caution that it is tempting - and I have certainly been tempted numerous
times - to enrich the Basic kit by adding more properties and events to
components. Its better to have more kits.

We've created a marvelous construction that can let people create small,
lightweight, useful apps or rich and complex applications.

—peter

On 11/2/17, 5:18 AM, "Idylog - Nicolas Granon" <ng...@idylog.com> wrote:

>This is not only a "component weight" choice (that would be easy!).
>
>It also pertains to architectural/structural choices (component lifecycle,
>ease of styling/theming, events management...).
>
>At this time, we feel that Apache Royale could be viable path, but we
>absolutely need a strong (Flex equivalent) localization (resource manager)
>solution.
>
>We also need a good understanding of how we can re-develop our (multiple)
>custom item renderers/editors. We do not really understand royale
>components
>lifecycle...(compared with Flex lifecycle). And since we often present
>lists
>(datagrid, usually, and advanceddatagrids too with hierarchical
>datasources)
>containing hundreds of items, itemrenderers' virtualization seems
>mandatory.
>We do not have much information about those points...
>
>We would be happy to collaborate with the dev team.
>
>Would you be interested in a "breakdown" of all the classes that we
>currently use ? (with a "use count" and a "priority mark" ?)
>
>We have still two months evaluation work before making our decision...
>
>Nicolas Granon
>
>
>
>
>> -----Message d'origine-----
>> De : Yishay Weiss [mailto:yishayjobs@hotmail.com]
>> Envoyé : jeudi 2 novembre 2017 08:39
>> À : dev@royale.apache.org; ngranon@idylog.com
>> Objet : RE: Event Metadata
>> 
>> Hi Nicolas,
>> 
>> Very good perspective.
>> 
>> I think Royale’s philosophy is to allow different component sets for
>> different user types. The two obvious ones that exist right now are
>> Basic and Express. Basic emphasizes small and fast, while Express
>> emphasizes usable.
>> 
>> A lot of the discussions you’ll see on the dev list pertain to the
>> Basic set because that should serve as the basis for other sets. In a
>> sense it’s the core of the framework and we want to keep it as
>> performant as possible.
>> 
>> I think it’s great that you maintain an app developer’s perspective. It
>> should motivate us to invest more time in usability and expand the
>> Express component set. Alex has been talking about ‘adopting’ another
>> dev team to facilitate their way to a production Royale app. If you
>> choose to go on that path, I’m sure the usability issues will receive
>> close attention and the Express component set will benefit.
>> 
>> Thanks,
>> Yishay
>> 
>> From: Idylog - Nicolas Granon<ma...@idylog.com>
>> Sent: Thursday, November 2, 2017 12:59 AM
>> To: dev@royale.apache.org<ma...@royale.apache.org>
>> Subject: RE: Event Metadata
>> 
>> Thank you for your answer.
>> 
>> You say that there is no sure way to know which is faster/smaller.
>> 
>> This somewhat joins your comment about my suggestion regarding
>> "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24"
>> thread) where you speak about "usability vs code size".
>> 
>> At some point, you have to choose your target (no pun intended). I
>> mean, you have to choose if the SDK main "philosophy" is "small", or
>> "fast" or "usable" ("main" meaning that is does not ignore the other
>> options, but is considered prevalent).
>> 
>> Do not forget that (enterprise) Flex Applications have typical long
>> load delays : we do not care if an application has a 20s. or 30s. load
>> time (2mn would be excessive!).
>> We compare with "local install" applications like, say Excel, or
>> Photoshop, or accounting/payroll/ or any enterprise integrated
>> management software (ERPs).
>> We definitely do *not* compare with a web site ! (where we want load
>> time under 3 seconds at most).
>> 
>> Did you ever try to load a Sage(tm) "cloud" application ? (I do not
>> blame Sage(tm). It's just an example. I could have talked about SAP(tm)
>> or any other "cloud enterprise management software").
>> Load time is about 1mn30s at best ! Really.
>> Or, check Photoshop (local install) load time.
>> 
>> Code size, for us, (I insist : "for us, enterprise app developers"), is
>> not really an issue. Our first Flex app was created 8 years ago. It's
>> now a 2MB SWF (compressed) initial load. We never had any complaint
>> from any customer about load time.
>> On the other end, runtime performance *is* important (interactive).
>> 
>> In the end, what will make us choose Apache Royale over other options
>> (React being on top of the list) is mainly usability from the
>> developers' point of view, and interactive responsiveness, not "small
>> footprint".
>> 
>> If Apache Royale main target is enterprise applications (RIAs) we
>> believe it should favor usability over small footprint and short load
>> time and avoid "unnecessary" complexity.
>> Enterprise apps users do not have the same expectations as
>> "individuals" (web surfers). They favor consistency, robustness and
>> ergonomics over raw performances (but of course, runtime performance
>> must not go against ergonomics). Even on mobile devices, our customers
>> accept "long" load time because they know that they are loading an
>> enterprise app. Not a widget.
>> 
>> ***********************************************************************
>> ******************************
>> Classic Flex was about RIAs. We realize that we do not really know what
>> Apache Royale is about.
>> Is it RIAs ?
>> ***********************************************************************
>> ******************************
>> 
>> We believe that it should be clearly decided, as it will shape the
>> evolution of the project.
>> 
>> Some of us here (applications developers) are in the RIA domain. Others
>> might be in other domains where the trade-off are different.
>> 
>> In classic Flex, code size was not a concern : code was big (really big
>> !) but usability was great. It was an assumed choice, and I believe all
>> RIAs developers were quite aware of that choice. If code was really too
>> big, you could slice the app into modules and load on-demand.
>> Believe us, we never heard a user complaining about time lag when
>> switching from "payroll module" to "accounting module" (even if it
>> meant waiting for 30s.) : when you switch from one "universe" to
>> another, everybody think it is normal to have a lag.
>> 
>> On the other hand, it the dev team's goal is to create a "web site"
>> creation tool, please say it clearly ! It's quite a different goal, and
>> trade-off output will be quite different !
>> 
>> To summarize, we believe that, for enterprise application developers,
>> the "usability" criterion comes first, "fast" being second, and "small"
>> being last.
>> 
>> I'm pretty sure that all this will raise some comments !
>> 
>> Best regards,
>> 
>> Nicolas Granon
>> 
>> 
>> 
>> 
>> > -----Message d'origine-----
>> > De : Alex Harui [mailto:aharui@adobe.com.INVALID] Envoyé : mercredi 1
>> > novembre 2017 21:30 À : dev@royale.apache.org; ngranon@idylog.com
>> > Objet : Re: Event Metadata
>> >
>> > That is one of the possible approaches.  The trade-off is, as you
>> > mention, having to filter out the right event vs all of the work re-
>> > dispatching events.  Right now the strand is the wrapping component.
>> > It doesn't have to be and maybe we should change that, but in order
>> > for MXML event attributes to work you have to dispatch off the
>> > wrapping component and that makes the beads want to dispatch off the
>> > strand/component and then you are back to filtering again.
>> >
>> > One advantage of dispatching off the strand is that a bead that wants
>> > to get an event from another bead doesn't have to find that bead.  It
>> > can just listen to the strand.  It isn't any different than any other
>> > shared communication infrastructure.  You have to spend time
>> filtering
>> > or figuring out direct hookups.  I'm not sure there is a way to know
>> > what is faster/smaller.  It might differ based on the situation.
>> >
>> > My 2 cents,
>> > -Alex
>> >
>> > On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ng...@idylog.com>
>> > wrote:
>> >
>> > >Excuse my naive comment :
>> > >
>> > >In my opinion, we have two different situations :
>> > >
>> > >Case 1 : I use a component, and I add one or more beads to it (in
>> the
>> > >source code where the component is used) (inlined).
>> > >Case 2 : I use a component that is *already* composed of one strand
>> > and
>> > >a number of beads (or none) (a reusable component)
>> > >
>> > >Case 1 :
>> > >In my mind (as an app developer), I obviously know what I am doing.
>> > >
>> > >It is quite logical, from my point of view, to have listeners
>> > >attached to the "component" (that is, indirectly, to the "strand
>> > >part") and other listeners (or same !) attached to the beads I am
>> interested in.
>> > >After all, if I understood clearly, a bead is a way to "add
>> > >functionality", right ?
>> > >Then, it is very logical to me to listen to events from that
>> specific
>> > >functionality bead) since I expressly added that piece of
>> > functionality.
>> > >I should not be confused by events with same name but from other
>> > >beads
>> > >: I only have to make sure that I listen to the "target" phase.
>> > >
>> > >In MXML, component events could be captured from the "component"
>> tag,
>> > >and bead events from the bead sub-tags.
>> > >
>> > >If a bead wants to listen to events from another bead, nothing
>> > prevents
>> > >it from doing so (Im not sure of that ??).
>> > >The metatags exposed by the strand as well as the metatags exposed
>> by
>> > >the beads would then be accessible.
>> > >
>> > >Case 2 :
>> > >Maybe I use a component designed by someone else, or maybe I
>> designed
>> > >it myself.
>> > >It is the component developer's responsibility to manage "internal"
>> > >events and then to redispatch "beads" events as "component" events
>> if
>> > >needed (maybe under another event name).
>> > >A developer using a "wrapped" composite component should only listen
>> > to
>> > >"component" events (public events), not "bead event" (abstraction of
>> > >internal representation) The metatags exposed by the "wrapped"
>> > >component should be public events only.
>> > >
>> > >Final case :
>> > >The wrapped component is composited from another wrapped component
>> > plus
>> > >some additional beads. In other words, it expends an reusable
>> > component
>> > >which already contains some beads.
>> > >In that case, the "inner" component (the base class) is considered
>> as
>> > a
>> > >strand and the global logic is the same as in case (2).
>> > >
>> > >All in all, this is not very different from what happens in classic
>> > >Flex when building "complex " components...(which are really
>> > >composited, not simple subclasses).
>> > >
>> > >Too naïve to be useful, maybe ???
>> > >
>> > >Nicolas Granon
>> > >
>> > >
>> > >
>> > >
>> > >> -----Message d'origine-----
>> > >> De : Peter Ent [mailto:pent@adobe.com.INVALID] Envoyé : mardi 31
>> > >> octobre 2017 20:39 À : dev@royale.apache.org Objet : Re: Event
>> > >> Metadata (was Re: [GitHub] ...: Image not removed when src set to
>> > >> null
>> > >>
>> > >> I typically use the strand as the central dispatcher for intra-
>> bead
>> > >> communication. Sometimes an event from a bead conflicts with an
>> > event
>> > >> dispatched by the strand to the "outside". For example, if a bead
>> > >> were to need to send a "change" event and another bead was
>> > >> listening for that event, "change" is pretty generic and an app
>> > >> writer who is also listening for change on that strand might get
>> the wrong event.
>> > >>
>> > >> I have not developed any protocol to deal with this, but perhaps
>> > >> events used internally for components should prefix the event type
>> > >> with something (e.g., "_change") unique to indicate the event is
>> > internal.
>> > >> Events are really the only way we have of beads talking to each
>> > other.
>> > >>
>> > >> We need to document what events a bead is doing to send and what
>> it
>> > >> is willing to accept and how it will be used. I confess I have not
>> > >> done that very often and for Royale to be useful, documentation
>> > >> like this has to be done. But we need a pattern of use established
>> > >> so there is consistency.
>> > >>
>> > >> Let's say you have a bead that you do want to put into MXML and
>> > >> that bead produces events. The Drag and Drop work comes to mind.
>> > >> When you add a DragSource bead to a list, you the app writer,
>> might
>> > >> want to know when certain things happen, such as DRAG_START. The
>> > >> List does not have DRAG_START listed in its event metadata so
>> > >> dispatching this event from the List won't work for the app
>> writer.
>> > >> The app writer
>> > wants to do:
>> > >> <js:DragSource dragStart="myThing(event)" /> right in MXML.
>> > >>
>> > >> As it turns out, this DRAG_START is also used internally by the
>> > >> drag controller so I think there is another class of events that
>> do
>> > >> get dispatched by beads but not on the strand, but on themselves.
>> > >> In
>> > this
>> > >> case, these events are not "internal" but public.
>> > >>
>> > >> Both internal (dispatched by beads targeting the strand) and
>> public
>> > >> (dispatched by beads targeting themselves) can coexist nicely as
>> > long
>> > >> as we have some rules.
>> > >>
>> > >> HTH
>> > >> ‹peter
>> > >>
>> > >> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID>
>> wrote:
>> > >>
>> > >> >For 1) the rule already is that if you want to access an implicit
>> > >> >bead you have to explicitly declare it.  So if a bead is normally
>> > >> >brought
>> > >> in
>> > >> >via CSS, you instead declare that bead on the strand and make
>> > >> adjustments.
>> > >> >UIBase doesn't care how the beads get placed on the strand, and
>> > >> >all bead loading code is supposed to check the strand first
>> before
>> > >> grabbing
>> > >> >a default bead from CSS.  IOW, if it wasn't declared in MXML,
>> then
>> > >> >declare it in MXML in order to access it.
>> > >> >
>> > >> >For 2) we are learning towards having beads dispatch their
>> > important
>> > >> >events off the strand instead of off of the bead. Otherwise we
>> > >> >have to add event forwarding code if people want to listen to the
>> > >> >containing component for events which is pretty normal if you
>> > >> >think of the component as a black box.  And then duplicate event
>> > >> >names does become
>> > >> an issue.
>> > >> >
>> > >> >It will be interesting to see you try your EventListener bead and
>> > >> >see how it feels and if it is a lot of code or not.
>> > >> >
>> > >> >Thanks,
>> > >> >-Alex
>> > >> >
>> > >> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
>> > >> >
>> > >> >>The problems that come to mind with attaching the events to the
>> > >> >>beads
>> > >> >>are:
>> > >> >>1. The beads are not necessarily declared in MXML, so that
>> leaves
>> > >> >>the question of how to address the beads via MXML.
>> > >> >>2. More than one bead might dispatch the same event. To get them
>> > >> >>all, it seems like it¹s necessary to attach the event listener
>> to
>> > >> >>the
>> > >> strand.
>> > >> >>
>> > >> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui
>> > >> >>><ah...@adobe.com.INVALID>
>> > >> >>>wrote:
>> > >> >>>
>> > >> >>> Renaming thread.
>> > >> >>>
>> > >> >>> Another option is for the beads themselves to have event
>> > metadata
>> > >> >>> for events they dispatch and either:
>> > >> >>> 1) the bead dispatches both off of itself and its strand, or
>> > >> >>> 2) certain addEventListener calls are passed to the strand.
>> > >> >>>
>> > >> >>> That's sort of the general pattern for de-composing or
>> > "exploding"
>> > >> a
>> > >> >>> component.  And then the wrapping component doesn't need
>> > metadata
>> > >> >>> that won't apply to the beads declared.
>> > >> >>>
>> > >> >>> Having a bead that can attach a particular kind of listener
>> and
>> > >> call
>> > >> >>>a  handler also fits in our patterns.  And similarly, a bead
>> > >> >>>that dispatches  platform-specific might be useful as well.
>> > >> >>>
>> > >> >>> My 2 cents,
>> > >> >>> -Alex
>> > >> >>>
>> > >> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
>> > >> >>>
>> > >> >>>> Good points.
>> > >> >>>>
>> > >> >>>>> One issue to consider are whether a container of beads
>> should
>> > >> >>>>>be have  metadata about the events dispatched by its beads
>> > since
>> > >> >>>>>the changing of  beads could make that metadata incorrect.
>> > IMO,
>> > >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter
>> > >> >>>>>IDE could figure out what beads are  currently in play and
>> > aggregate
>> > >> >>>>>allowable events from those beads'
>> > >> >>>>> metadata someday.
>> > >> >>>>
>> > >> >>>> Hmm. Not a simple problem. One approach we can take is to add
>> > >> >>>>metadata to  the component and include documentation on which
>> > >> >>>>beads are required for  the event to fire.
>> > >> >>>>
>> > >> >>>> Of course this only takes care of more-or-less standard
>> beads.
>> > >> >>>>Optional
>> > >> >>>> beads that are generally not used would need another
>> mechanism
>> > >> >>>>to specify  event handlers in MXML (if that would be
>> supported).
>> > >> >>>>
>> > >> >>>> Considering the ³smarter IDE approach², it seems like there¹s
>> > >> >>>>two
>> > >> >>>> problems:
>> > >> >>>> 1. The compiler needs to know that the attributes are OK.
>> > >> >>>>Currently, the  compiler will complain if you use an
>> > unrecognized
>> > >> >>>>tag.
>> > >> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know
>> if
>> > a
>> > >> >>>>specific  bead is actually added. They can be added using CSS,
>> > AS
>> > >> >>>>code and MXML.
>> > >> >>>> Dynamically following that flow in tooling seems like a
>> > *really*
>> > >> >>>>hard  problem.
>> > >> >>>>
>> > >> >>>> Another idea would be to allow specifying event handlers in a
>> > >> >>>>format  something like this:
>> > >> >>>> <js:FooComponent id=³foo²>
>> > >> >>>> <js:events>
>> > >> >>>> <js:EventDescriptor type²layoutNeeded²
>> > >> >>>>handler=³handleLayoutNeeded()²/>
>> > >> >>>> </js:events>
>> > >> >>>> </js:FooComponent>
>> > >> >>>>
>> > >> >>>> I¹m kind of liking this idea as it follows the pattern we
>> > >> currently
>> > >> >>>>have  for beads and styles. EventDescriptor could be
>> subclassed
>> > >> >>>>to have classes  of events which could offer code completion
>> > >> >>>>for the available event  types. There would not be enforcement
>> > >> >>>>that the events would actually be  dispatched, but I think it
>> > >> >>>>would
>> > be
>> > >> >>>>helpful and would allow users to  specify random event
>> handlers
>> > >> >>>>declaratively.
>> > >> >>>>
>> > >> >>>>> Another issue to consider is cross-platform.  A component
>> may
>> > >> >>>>> not be able to dispatch the events listed in metadata on all
>> > >> >>>>> platforms.
>> > >> >>>>
>> > >> >>>> It seems to me that metadata on cross-platform components
>> > should
>> > >> >>>>always  be cross-platform. If there are platform-specific
>> > events,
>> > >> >>>>they should not  be included or there should be a
>> > >> >>>>platform-specific component. We¹ve  already solved the problem
>> > >> >>>>with mouse events by renaming the event  strings in the
>> > >> >>>>compiler depending on the
>> > >> target.
>> > >> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically
>> > for
>> > >> JS
>> > >> >>>>output). I think Mouse  events are an exception, but if there
>> > are
>> > >> >>>>any other events that fit this  exception, they should be
>> > handled
>> > >> >>>>the same way.
>> > >> >>>>
>> > >> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
>> > >> <ah...@adobe.com.INVALID>
>> > >> >>>>> wrote:
>> > >> >>>>>
>> > >> >>>>> Some Metadata is kept in the output, but events probably
>> > aren't.
>> > >> >>>>>
>> > >> >>>>> One issue to consider are whether a container of beads
>> should
>> > >> >>>>>be have  metadata about the events dispatched by its beads
>> > since
>> > >> >>>>>the changing of  beads could make that metadata incorrect.
>> > IMO,
>> > >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter
>> > >> >>>>>IDE could figure out what beads are  currently in play and
>> > aggregate
>> > >> >>>>>allowable events from those beads'
>> > >> >>>>> metadata someday.
>> > >> >>>>>
>> > >> >>>>> Another issue to consider is cross-platform.  A component
>> may
>> > >> >>>>> not be able to dispatch the events listed in metadata on all
>> > >> >>>>> platforms.
>> > >> >>>>>
>> > >> >>>>> Also consider that on JS, events probably have to be
>> > propagated
>> > >> >>>>>from the  wrapped element to the strand so there is cost
>> there.
>> > >> >>>>>
>> > >> >>>>> It is hopefully easy enough for anyone who wants to get an
>> > >> >>>>>event that  isn't already in metadata, to subclass, add the
>> > >> >>>>>metadata and any wiring.
>> > >> >>>>>
>> > >> >>>>> My 2 cents,
>> > >> >>>>> -Alex
>> > >> >>>>>
>> > >> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>> > >> >>>>> <ma...@gmail.com>> wrote:
>> > >> >>>>>
>> > >> >>>>>> I¹m not talking about adding events. I¹m talking about
>> > >> >>>>>>adding metadata  for *existing events* so they could be
>> > >> >>>>>>addressed in MXML.
>> > >> >>>>>>
>> > >> >>>>>>
>> > >> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>> > >> >>>>>>> <pi...@gmail.com>
>> > >> >>>>>>> wrote:
>> > >> >>>>>>>
>> > >> >>>>>>> If you decide to add event that's fine with me. :) It is
>> > just
>> > >> >>>>>>>the  matter of  thinking about those Basic components from
>> > >> >>>>>>>my sight. I have started to  look  at them as something
>> > >> >>>>>>>which
>> > >> should
>> > >> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
>> > >> >>>>>>>features should be provided by beads - if it is  possible
>> > >> >>>>>>>or by Express.
>> > >> >>>>>>>
>> > >> >>>>>>> The exception could be and MDL from that which I would
>> like
>> > >> >>>>>>>to extend,  but  here I can think about those components as
>> > >> >>>>>>>they
>> > >> are
>> > >> >>>>>>>Express right now.
>> > >> >>>>>>>
>> > >> >>>>>>> Piotr
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>> > >> >>>>>>>
>> > >> >>>>>>>> Why? Unless it adds overhead, it seems to me like any
>> > >> >>>>>>>>event that can  be  added using addEventListener() should
>> > >> >>>>>>>>be addressable using MXML.
>> > >> >>>>>>>>
>> > >> >>>>>>>> I¹m just not sure from a technical perspective whether
>> the
>> > >> MXML
>> > >> >>>>>>>>meta  tags  add overhead if not used.
>> > >> >>>>>>>>
>> > >> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>> > >> >>>>>>>>> <pi...@gmail.com>
>> > >> >>>>>>>> wrote:
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> Hi Harbs,
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> Some time ago there were discussion on Flex Dev which
>> > makes
>> > >> me
>> > >> >>>>>>>>> realize
>> > >> >>>>>>>> that
>> > >> >>>>>>>>> we should add event tags as long as they are reflecting
>> > >> >>>>>>>>>some native  HTML  api, unless we are in express. For
>> > >> >>>>>>>>>example we
>> > >> are
>> > >> >>>>>>>>>using in many  places  "change" event which is I believe
>> > >> >>>>>>>>>quite common in JS world, but I  would  avoid any
>> > additional
>> > >> >>>>>>>>>custom one. In the other world Let's answer to  the
>> > >> >>>>>>>>>question in following case - Does "img" in HTML world
>> have
>> > "load"
>> > >> >>>>>>>>> event ?
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> Piotr
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs
>> <ha...@gmail.com>:
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>> This does raise a good question:
>> > >> >>>>>>>>>>
>> > >> >>>>>>>>>> Should we be adding MXML meta tags for all supported
>> > events?
>> > >> >>>>>>>>>> It seems
>> > >> >>>>>>>> like
>> > >> >>>>>>>>>> a desirable thing to have, and there are currently very
>> > >> >>>>>>>>>>few event  tags.
>> > >> >>>>>>>> I¹m
>> > >> >>>>>>>>>> not clear on whether the meta-tags effect the end
>> result
>> > >> >>>>>>>>>> of code size.
>> > >> >>>>>>>>>>
>> > >> >>>>>>>>>> Harbs
>> > >> >>>>>>>>>>
>> > >> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org>
>> > wrote:
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed
>> > >> >>>>>>>>>>> when src set to
>> > >> >>>>>>>>>> null
>> > >> >>>>>>>>>>> URL:
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> >
>> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3<
>> >
>> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%25
>> > >>>>>>>>>>>3>
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>gi
>> > >> >>>>>>>>>>> th
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>Fg
>> > >> >>>>>>>>>>> ith>
>> > >> >>>>>>>>>>> ub.com
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>ub
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>> > >> >>>>>>>>>>>%7
>> > >> C
>> > >> >>>>>>>>>>>fa7
>> > >> >>>>>>>>>>>b
>> > >> >>>>>>>>>>>1b
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>> > >> >>>>>>>>>>>at
>> > >> a
>> > >> >>>>>>>>>>>=r6
>> > >> >>>>>>>>>>>H
>> > >> >>>>>>>>>>>O%
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
>> > >> >>>>>>>>>>>2F
>> > >> a
>> > >> >>>>>>>>>>>pac
>> > >> >>>>>>>>>>>h
>> > >> >>>>>>>>>>>e%
>> > >> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
>> > >> >>>>>>>>>>>ec
>> > >> e
>> > >> >>>>>>>>>>>e1%
>> > >> >>>>>>>>>>>7
>> > >> >>>>>>>>>>>C0
>> > >> >>>>>>>>>>> %7
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
>> > >> >>>>>>>>>>>WV
>> > >> q
>> > >> >>>>>>>>>>>y17
>> > >> >>>>>>>>>>>x
>> > >> >>>>>>>>>>>Fb
>> > >> >>>>>>>>>>> if
>> > >> >>>>>>>>>>> 9Gknpc%3D&reserved=0
>> > >> >>>>>>>>>> issuecomment-340524197
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> This code fails to compile:
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
>> > >> >>>>>>>>>>>rl
>> > >> =
>> > >> >>>>>>>>>>>htt
>> > >> >>>>>>>>>>>p
>> > >> >>>>>>>>>>>%3
>> > >> >>>>>>>>>>> A%
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> >
>> > >> >>>>>>>>>>> 2F%2Fns.adobe.com
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>2f
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5
>> > >> >>>>>>>>>>>20
>> > >> 4
>> > >> >>>>>>>>>>>860
>> > >> >>>>>>>>>>>d
>> > >> >>>>>>>>>>>3%
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
>> > >> >>>>>>>>>>>14
>> > >> 1
>> > >> >>>>>>>>>>>82&
>> > >> >>>>>>>>>>>s
>> > >> >>>>>>>>>>>da
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
>> > >> >>>>>>>>>>>=0
>> > >> >
>> > >> >>>>>>>>>>>%2F
>> > >> >>>>>>>>>>>m
>> > >> >>>>>>>>>>>xm
>> > >> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>> > >> >>>>>>>>>>>C6
>> > >> 3
>> > >> >>>>>>>>>>>644
>> > >> >>>>>>>>>>>9
>> > >> >>>>>>>>>>>84
>> > >> >>>>>>>>>>> 71
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
>> > >> >>>>>>>>>>>FK
>> > >> d
>> > >> >>>>>>>>>>>zAe
>> > >> >>>>>>>>>>>4
>> > >> >>>>>>>>>>>%2
>> > >> >>>>>>>>>>> Bn
>> > >> >>>>>>>>>>> o%3D&reserved=0"
>> > >> >>>>>>>>>>>
>> > >> xmlns:js="library://ns.apache.org/royale/basic
>> > >> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>   <fx:Script><![CDATA[
>> > >> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>       public function blankimage():void {
>> > >> >>>>>>>>>>>           image.visible = false;
>> > >> >>>>>>>>>>>           image.src =
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>Fw
>> > >> >>>>>>>>>>> ww
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>Fw
>> > >> >>>>>>>>>>> ww>
>> > >> >>>>>>>>>>> .apache.org
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>ap
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
>> > >> >>>>>>>>>>>60
>> > >> d
>> > >> >>>>>>>>>>>3%7
>> > >> >>>>>>>>>>>C
>> > >> >>>>>>>>>>>fa
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>> > >> >>>>>>>>>>>2&
>> > >> s
>> > >> >>>>>>>>>>>dat
>> > >> >>>>>>>>>>>a
>> > >> >>>>>>>>>>>=w
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>> > >> >>>>>>>>>>>2F
>> > >> &
>> > >> >>>>>>>>>>>dat
>> > >> >>>>>>>>>>>a
>> > >> >>>>>>>>>>>=0
>> > >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>> > >> >>>>>>>>>>>09
>> > >> &
>> > >> >>>>>>>>>>>sda
>> > >> >>>>>>>>>>>t
>> > >> >>>>>>>>>>>a=
>> > >> >>>>>>>>>>> pn
>> > >> >>>>>>>>>>>
>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> > >> >>>>>>>> foundation/press/kit/
>> > >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>> > >> >>>>>>>>>>>       }
>> > >> >>>>>>>>>>>       public function showImage():void {
>> > >> >>>>>>>>>>>           image.visible = true;
>> > >> >>>>>>>>>>>       }
>> > >> >>>>>>>>>>>       ]]></fx:Script>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>   <js:valuesImpl>
>> > >> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
>> > >> >>>>>>>>>>>   </js:valuesImpl>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>   <js:initialView>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>       <js:View>
>> > >> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
>> > >> >>>>>>>>>>> width="100%">
>> > >> >>>>>>>>>>>               <js:beads>
>> > >> >>>>>>>>>>>                   <js:VerticalLayout />
>> > >> >>>>>>>>>>>               </js:beads>
>> > >> >>>>>>>>>>>               <js:Image id="image"
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
>> > >> >>>>>>>>>>>tp
>> > >> s
>> > >> >>>>>>>>>>>%3A
>> > >> >>>>>>>>>>>%
>> > >> >>>>>>>>>>>2F
>> > >> >>>>>>>>>>> %2
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>>
>> > >> >>>>>>>>>>> Fwww.apache.org
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>fw
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
>> > >> >>>>>>>>>>>52
>> > >> 0
>> > >> >>>>>>>>>>>486
>> > >> >>>>>>>>>>>0
>> > >> >>>>>>>>>>>d3
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>> > >> >>>>>>>>>>>61
>> > >> 4
>> > >> >>>>>>>>>>>182
>> > >> >>>>>>>>>>>&
>> > >> >>>>>>>>>>>sd
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>> > >> >>>>>>>>>>>ve
>> > >> d
>> > >> >>>>>>>>>>>=0>
>> > >> >>>>>>>>>>>%
>> > >> >>>>>>>>>>>2F
>> > >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>> > >> >>>>>>>>>>>35
>> > >> 5
>> > >> >>>>>>>>>>>609
>> > >> >>>>>>>>>>>&
>> > >> >>>>>>>>>>>sd
>> > >> >>>>>>>>>>> at
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>> > >> >>>>>>>>>>>0
>> > >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>> > >> height="50%"
>> > >> >>>>>>>>>> layoutNeeded="showImage()" />
>> > >> >>>>>>>>>>>               <js:TextButton text="Blank"
>> > >> click="blankimage()"
>> > >> >>>>>>>>>>>/>
>> > >> >>>>>>>>>>>           </js:Container>
>> > >> >>>>>>>>>>>       </js:View>
>> > >> >>>>>>>>>>>   </js:initialView>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> </js:Application>
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> With this error:
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
>> > >> >>>>>>>>>>>.m
>> > >> x
>> > >> >>>>>>>>>>>ml(
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>6)
>> > >> >>>>>>>>>>> :
>> > >> >>>>>>>>>> col: 130 This attribute is unexpected. It will be
>> > ignored.
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>               <js:Image id="image"
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
>> > >> >>>>>>>>>>>tp
>> > >> s
>> > >> >>>>>>>>>>>%3A
>> > >> >>>>>>>>>>>%
>> > >> >>>>>>>>>>>2F
>> > >> >>>>>>>>>>> %2
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>>
>> > >> >>>>>>>>>>> Fwww.apache.org
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>fw
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
>> > >> >>>>>>>>>>>52
>> > >> 0
>> > >> >>>>>>>>>>>486
>> > >> >>>>>>>>>>>0
>> > >> >>>>>>>>>>>d3
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>> > >> >>>>>>>>>>>61
>> > >> 4
>> > >> >>>>>>>>>>>182
>> > >> >>>>>>>>>>>&
>> > >> >>>>>>>>>>>sd
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>> > >> >>>>>>>>>>>ve
>> > >> d
>> > >> >>>>>>>>>>>=0>
>> > >> >>>>>>>>>>>%
>> > >> >>>>>>>>>>>2F
>> > >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>> > >> >>>>>>>>>>>35
>> > >> 5
>> > >> >>>>>>>>>>>609
>> > >> >>>>>>>>>>>&
>> > >> >>>>>>>>>>>sd
>> > >> >>>>>>>>>>> at
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>> > >> >>>>>>>>>>>0
>> > >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>> > >> height="50%"
>> > >> >>>>>>>>>> layoutNeeded="showImage()" />
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> I assume the only way to do this would be to add a
>> hard
>> > >> >>>>>>>>>>> coded event
>> > >> >>>>>>>>>> listener manually like so?
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>>   <fx:Script><![CDATA[
>> > >> >>>>>>>>>>>       public function blankimage():void {
>> > >> >>>>>>>>>>>           image.visible = false;
>> > >> >>>>>>>>>>>           image.src =
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>Fw
>> > >> >>>>>>>>>>> ww
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
>> > >> >>>>>>>>>>>3A
>> > >> %
>> > >> >>>>>>>>>>>2F%
>> > >> >>>>>>>>>>>2
>> > >> >>>>>>>>>>>Fw
>> > >> >>>>>>>>>>> ww>
>> > >> >>>>>>>>>>> .apache.org
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>> > >> >>>>>>>>>>>A%
>> > >> 2
>> > >> >>>>>>>>>>>F%2
>> > >> >>>>>>>>>>>F
>> > >> >>>>>>>>>>>ap
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
>> > >> >>>>>>>>>>>60
>> > >> d
>> > >> >>>>>>>>>>>3%7
>> > >> >>>>>>>>>>>C
>> > >> >>>>>>>>>>>fa
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>> > >> >>>>>>>>>>>2&
>> > >> s
>> > >> >>>>>>>>>>>dat
>> > >> >>>>>>>>>>>a
>> > >> >>>>>>>>>>>=w
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>> > >> >>>>>>>>>>>2F
>> > >> &
>> > >> >>>>>>>>>>>dat
>> > >> >>>>>>>>>>>a
>> > >> >>>>>>>>>>>=0
>> > >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >>
>> > >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>> > >> >>>>>>>>>>>09
>> > >> &
>> > >> >>>>>>>>>>>sda
>> > >> >>>>>>>>>>>t
>> > >> >>>>>>>>>>>a=
>> > >> >>>>>>>>>>> pn
>> > >> >>>>>>>>>>>
>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> > >> >>>>>>>> foundation/press/kit/
>> > >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>> > >> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
>> > >> showImage);
>> > >> >>>>>>>>>>>       }
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>       public function showImage(event:Event):void {
>> > >> >>>>>>>>>>>           image.visible = true;
>> > >> >>>>>>>>>>>       }
>> > >> >>>>>>>>>>>       ]]></fx:Script>
>> > >> >>>>>>>>>>> ```
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>-------------------------------------------------------
>> -
>> > >> >>>>>>>>>>>-
>> > -
>> > >> >>>>>>>>>>>--
>> > >> -
>> > >> >>>>>>>>>>>---  This is an automated message from the Apache Git
>> > >> >>>>>>>>>>>Service.
>> > >> >>>>>>>>>>> To respond to the message, please log on GitHub and
>> use
>> > >> >>>>>>>>>>>the URL above to go to the specific comment.
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> For queries about this service, please contact
>> > >> >>>>>>>>>>>Infrastructure
>> > >> >>>>>>>>>>>at:
>> > >> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>>
>> > >> >>>>>>>>>>> With regards,
>> > >> >>>>>>>>>>> Apache Git Services
>> > >> >>>>>>>>>>
>> > >> >>>>>>>>>>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> --
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> Piotr Zarzycki
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> mobile: +48 880 859 557
>> > >> >>>>>>>>> skype: zarzycki10
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> LinkedIn:
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> >
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2<
>> >
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%25
>> > >>>>>>>>>2>
>> > >> >>>>>>>>>F%
>> > >> 2
>> > >> >>>>>>>>>Fww
>> > >> >>>>>>>>>w
>> > >> >>>>>>>>>.l
>> > >> >>>>>>>>> in
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> > >> >>>>>>>>>2F
>> > >> %
>> > >> >>>>>>>>>2Fw
>> > >> >>>>>>>>>w
>> > >> >>>>>>>>>w.
>> > >> >>>>>>>>> lin>
>> > >> >>>>>>>>> kedin.com
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> > >> >>>>>>>>>2F
>> > >> %
>> > >> >>>>>>>>>2Fk
>> > >> >>>>>>>>>e
>> > >> >>>>>>>>>di
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
>> > >> >>>>>>>>>7C
>> > >> f
>> > >> >>>>>>>>>a7b
>> > >> >>>>>>>>>1
>> > >> >>>>>>>>>b5
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
>> > >> >>>>>>>>>=M
>> > >> m
>> > >> >>>>>>>>>3Kn
>> > >> >>>>>>>>>X
>> > >> >>>>>>>>>%2
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
>> > >> >>>>>>>>>io
>> > >> t
>> > >> >>>>>>>>>rza
>> > >> >>>>>>>>>r
>> > >> >>>>>>>>>zy
>> > >> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
>> > >> >>>>>>>>>13
>> > >> 0
>> > >> >>>>>>>>>355
>> > >> >>>>>>>>>6
>> > >> >>>>>>>>>09
>> > >> >>>>>>>>> &s
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
>> > >> >>>>>>>>>se
>> > >> r
>> > >> >>>>>>>>>ved
>> > >> >>>>>>>>>=
>> > >> >>>>>>>>>0
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> > >> >>>>>>>>>%2
>> > >> F
>> > >> >>>>>>>>>%2F
>> > >> >>>>>>>>>p
>> > >> >>>>>>>>>l.
>> > >> >>>>>>>>> li
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> > >> >>>>>>>>>%2
>> > >> F
>> > >> >>>>>>>>>%2F
>> > >> >>>>>>>>>p
>> > >> >>>>>>>>>l.
>> > >> >>>>>>>>> li>
>> > >> >>>>>>>>> nkedin.com
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> > >> >>>>>>>>>2F
>> > >> %
>> > >> >>>>>>>>>2Fn
>> > >> >>>>>>>>>k
>> > >> >>>>>>>>>ed
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>> > >> >>>>>>>>>%7
>> > >> C
>> > >> >>>>>>>>>fa7
>> > >> >>>>>>>>>b
>> > >> >>>>>>>>>1b
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>> > >> >>>>>>>>>a=
>> > >> 4
>> > >> >>>>>>>>>v8C
>> > >> >>>>>>>>>S
>> > >> >>>>>>>>>fu
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
>> > >> >>>>>>>>>io
>> > >> t
>> > >> >>>>>>>>>r-z
>> > >> >>>>>>>>>a
>> > >> >>>>>>>>>rz
>> > >> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>> > >> >>>>>>>>>%7
>> > >> C
>> > >> >>>>>>>>>0%7
>> > >> >>>>>>>>>C
>> > >> >>>>>>>>>63
>> > >> >>>>>>>>> 64
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
>> > >> >>>>>>>>>FH
>> > >> q
>> > >> >>>>>>>>>EAK
>> > >> >>>>>>>>>N
>> > >> >>>>>>>>>o%
>> > >> >>>>>>>>> 3D
>> > >> >>>>>>>>> &reserved=0>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>> GitHub:
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> >
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%<
>> >
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> > >>>>>>>>>5>
>> > >> >>>>>>>>>2F
>> > >> %
>> > >> >>>>>>>>>2Fg
>> > >> >>>>>>>>>i
>> > >> >>>>>>>>>th
>> > >> >>>>>>>>> ub
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> > >> >>>>>>>>>%2
>> > >> F
>> > >> >>>>>>>>>%2F
>> > >> >>>>>>>>>g
>> > >> >>>>>>>>>it
>> > >> >>>>>>>>> hub>
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>> > >> >>>>>>>>>20
>> > >> 8
>> > >> >>>>>>>>>d51
>> > >> >>>>>>>>>f
>> > >> >>>>>>>>>c3
>> > >> >>>>>>>>> 8b
>> > >> >>>>>>>>>
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>> > >> >>>>>>>>>35
>> > >> 5
>> > >> >>>>>>>>>609
>> > >> >>>>>>>>>&
>> > >> >>>>>>>>>sd
>> > >> >>>>>>>>> at
>> > >> >>>>>>>>>
>> > >>
>> > >>>>>>>>>a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
>> > >> >>>>>>>>>0
>> > >> >>>>>>>>
>> > >> >>>>>>>>
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >> >>>>>>> --
>> > >> >>>>>>>
>> > >> >>>>>>> Piotr Zarzycki
>> > >> >>>>>>>
>> > >> >>>>>>> mobile: +48 880 859 557
>> > >> >>>>>>> skype: zarzycki10
>> > >> >>>>>>>
>> > >> >>>>>>> LinkedIn:
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> >
>> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<
>> >
>> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>> > >>>>>>>5>
>> > >> >>>>>>>2F
>> > >> www.
>> > >> >>>>>>>l
>> > >> >>>>>>>in
>> > >> >>>>>>> ke
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> > >> >>>>>>>%2
>> > >> F
>> > >> >>>>>>>www
>> > >> >>>>>>>.
>> > >> >>>>>>>li
>> > >> >>>>>>> nke>
>> > >> >>>>>>> din.com
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> > >> >>>>>>>%2
>> > >> F
>> > >> >>>>>>>din
>> > >> >>>>>>>.
>> > >> >>>>>>>co
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>> > >> >>>>>>>1b
>> > >> 5
>> > >> >>>>>>>a7b
>> > >> >>>>>>>3
>> > >> >>>>>>>44
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
>> > >> >>>>>>>HJ
>> > >> t
>> > >> >>>>>>>Y44
>> > >> >>>>>>>X
>> > >> >>>>>>>dR
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
>> > >> >>>>>>>at
>> > >> a
>> > >> >>>>>>>=02
>> > >> >>>>>>>%
>> > >> >>>>>>>7C
>> > >> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
>> > >> >>>>>>>60
>> > >> 9
>> > >> >>>>>>>&sd
>> > >> >>>>>>>a
>> > >> >>>>>>>ta
>> > >> >>>>>>> =M
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> > >> >>>>>>>F%
>> > >> 2
>> > >> >>>>>>>Fpl
>> > >> >>>>>>>.
>> > >> >>>>>>>li
>> > >> >>>>>>> nk
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> > >> >>>>>>>F%
>> > >> 2
>> > >> >>>>>>>Fpl
>> > >> >>>>>>>.
>> > >> >>>>>>>li
>> > >> >>>>>>> nk>
>> > >> >>>>>>> edin.com
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> > >> >>>>>>>%2
>> > >> F
>> > >> >>>>>>>edi
>> > >> >>>>>>>n
>> > >> >>>>>>>.c
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
>> > >> >>>>>>>b1
>> > >> b
>> > >> >>>>>>>5a7
>> > >> >>>>>>>b
>> > >> >>>>>>>34
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
>> > >> >>>>>>>3i
>> > >> L
>> > >> >>>>>>>sgF
>> > >> >>>>>>>8
>> > >> >>>>>>>wv
>> > >> >>>>>>>
>> > >> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
>> > >> zarzycki
>> > >> >>>>>>>-92
>> > >> >>>>>>>a
>> > >> >>>>>>>53
>> > >> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>> > >> >>>>>>>C6
>> > >> 3
>> > >> >>>>>>>644
>> > >> >>>>>>>9
>> > >> >>>>>>>84
>> > >> >>>>>>> 71
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
>> > >> >>>>>>>%3
>> > >> D
>> > >> >>>>>>>&re
>> > >> >>>>>>>s
>> > >> >>>>>>>er
>> > >> >>>>>>> ve
>> > >> >>>>>>> d=0>
>> > >> >>>>>>>
>> > >> >>>>>>> GitHub:
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>> > >> >>>>>>>%2
>> > >> F
>> > >> >>>>>>>git
>> > >> >>>>>>>h
>> > >> >>>>>>>ub
>> > >> >>>>>>> .c
>> > >> >>>>>>>
>> > >>
>> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> > >> >>>>>>>F%
>> > >> 2
>> > >> >>>>>>>Fgi
>> > >> >>>>>>>t
>> > >> >>>>>>>hu
>> > >> >>>>>>> b.c>
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
>> > >> >>>>>>>51
>> > >> f
>> > >> >>>>>>>c38
>> > >> >>>>>>>b
>> > >> >>>>>>>07
>> > >> >>>>>>> %7
>> > >> >>>>>>>
>> > >> >>>>>>>
>> > >>
>> > >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>> > >> >>>>>>>&s
>> > >> d
>> > >> >>>>>>>ata
>> > >> >>>>>>>=
>> > >> >>>>>>>mi
>> > >> >>>>>>> 12
>> > >> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>> > >> >>>>
>> > >> >>>
>> > >> >>
>> > >> >
>> > >
>> > >
>> 
>> 
>
>
>


RE: Event Metadata

Posted by Idylog - Nicolas Granon <ng...@idylog.com>.
Hi Alex,

Our evaluation process is based on "samples" from our different applications.
We have picked up a number (about 30) of "scenarios" from our code base.
We have got them isolated (when necessary) and sometimes simplified.

Our criteria are grouped under different chapters ;
Completeness.
Time spend while learning/expected time to be spent after learning.
Resources (docs, etc.)
Performance (mainly interactive and database access)
Unique characteristics of each option
Mockups (from the different scenarios. Not all scenarios are  ui based).
Tooling (choices, setup, maintenance...)
Mobile (compatibility...)
Specific evaluation about possibilities of converting our two main "common" libraries (excel files generation, update and reading, and our form generator).
We also try to imagine how those dev environments could evolve in the next 12 to 24 months. (this is highly subjective..).

We also try to analyze how our choice will help us make the difference with other small software companies.
Also, we try to imagine if the tool we choose could bring to us "new ideas"

We work mainly on browser applications. But mobile is also part of the report.
We do not work on desktop-AIR migration : we have decided to keep our desktop-AIR application under the Flex/Air umbrella (these are not strategic apps).

So, I would say that we are rather on the "sampling side". We do not try to port the whole projects right now.

We do not work full time on the eval process (we have projects running, and maintenance and other tasks to do !). All in all, I would say we spend 1 to 2 days a week on that.

Regarding our "time budget" to finish migration, it will be a 12-man.month effort. The deadline is at the end of 2018 but we would like to have first mid-size app migrated in May or June 2018.

We will also rewrite some parts (we had planned to rewrite those parts anyway) to better organize code.

Of course, we do not want an app where performance is "bad" compared with Flex.
The only point on which we will not fight too hard is load time. Anyway, if we feel that putting some fat code in a separate module is a good solution, we will do so.

I hope this answers your interrogations,

Nicolas Granon




> -----Message d'origine-----
> De : Alex Harui [mailto:aharui@adobe.com.INVALID]
> Envoyé : jeudi 2 novembre 2017 17:30
> À : dev@royale.apache.org; ngranon@idylog.com
> Objet : Re: Event Metadata
> 
> Hi Nicolas,
> 
> A breakdown would be nice, but I'm also curious about your evaluation
> process.  Could you share what steps you are taking?  Are you building
> simple tests of various features or just plain trying to port your
> existing code to Royale?
> 
> Also, once you choose a development environment a few months from now,
> how
> many months have you budgeted to finish?  Knowing that might affect how
> we
> write our code.  For example, we can probably get hierarchy to show up
> in
> a DataGrid soon, along with a rudimentary virtual item renderer
> manager,
> and offer up an API for localization that shows you can switch and
> order
> locales for a few hand-crafted resource databases but take longer to
> deal
> with recycling renderers or teaching the compiler to process locales
> into
> whatever database we end up using.
> 
> Keep in mind that we all have many years of experience with the
> performance idiosyncrasies of the Flash runtime.  We do not have as
> much
> experience with getting this much JavaScript, written in a object-
> oriented
> manner leveraging Google Closure, to run.  We have decent evidence that
> the runtime optimization of JS engines is biased towards code-reuse, so
> that's one reason we use beads to share as much code as possible.  But
> we
> remain concerned that the way code was written for Flex (large classes,
> lots of initialization- related generated code) might result in slower
> execution than Flash.  In the days of Adobe Flex, we saw lots of
> customers
> build some really big apps that did not start up fast enough and time
> was
> lost in the "last mile" trying to optimize things before the deployment
> date.
> 
> So we've been pushing on the entire lifecycle of development, calling
> it
> "Developer Productivity" not just how fast you can get your
> proof-of-concept up and running.  Usability is still very important,
> but
> we do want to make sure your app is as fast or faster than your Flash
> app.
> 
> Thanks,
> -Alex
> 
> On 11/2/17, 2:37 AM, "Harbs" <ha...@gmail.com> wrote:
> 
> >> Would you be interested in a "breakdown" of all the classes that we
> >> currently use ? (with a "use count" and a "priority mark" ?)
> >
> >Sure. That would be very useful.
> >
> >> On Nov 2, 2017, at 11:18 AM, Idylog - Nicolas Granon
> >><ng...@idylog.com> wrote:
> >>
> >> This is not only a "component weight" choice (that would be easy!).
> >>
> >> It also pertains to architectural/structural choices (component
> >>lifecycle,
> >> ease of styling/theming, events management...).
> >>
> >> At this time, we feel that Apache Royale could be viable path, but
> we
> >> absolutely need a strong (Flex equivalent) localization (resource
> >>manager)
> >> solution.
> >>
> >> We also need a good understanding of how we can re-develop our
> >>(multiple)
> >> custom item renderers/editors. We do not really understand royale
> >>components
> >> lifecycle...(compared with Flex lifecycle). And since we often
> present
> >>lists
> >> (datagrid, usually, and advanceddatagrids too with hierarchical
> >>datasources)
> >> containing hundreds of items, itemrenderers' virtualization seems
> >>mandatory.
> >> We do not have much information about those points...
> >>
> >> We would be happy to collaborate with the dev team.
> >>
> >> Would you be interested in a "breakdown" of all the classes that we
> >> currently use ? (with a "use count" and a "priority mark" ?)
> >>
> >> We have still two months evaluation work before making our
> decision...
> >>
> >> Nicolas Granon
> >>
> >>
> >>
> >>
> >>> -----Message d'origine-----
> >>> De : Yishay Weiss [mailto:yishayjobs@hotmail.com
> >>><ma...@hotmail.com>]
> >>> Envoyé : jeudi 2 novembre 2017 08:39
> >>> Ŕ : dev@royale.apache.org <ma...@royale.apache.org>;
> >>>ngranon@idylog.com <ma...@idylog.com>
> >>> Objet : RE: Event Metadata
> >>>
> >>> Hi Nicolas,
> >>>
> >>> Very good perspective.
> >>>
> >>> I think Royale’s philosophy is to allow different component sets
> for
> >>> different user types. The two obvious ones that exist right now are
> >>> Basic and Express. Basic emphasizes small and fast, while Express
> >>> emphasizes usable.
> >>>
> >>> A lot of the discussions you’ll see on the dev list pertain to the
> >>> Basic set because that should serve as the basis for other sets. In
> a
> >>> sense it’s the core of the framework and we want to keep it as
> >>> performant as possible.
> >>>
> >>> I think it’s great that you maintain an app developer’s
> perspective. It
> >>> should motivate us to invest more time in usability and expand the
> >>> Express component set. Alex has been talking about ‘adopting’
> another
> >>> dev team to facilitate their way to a production Royale app. If you
> >>> choose to go on that path, I’m sure the usability issues will
> receive
> >>> close attention and the Express component set will benefit.
> >>>
> >>> Thanks,
> >>> Yishay
> >>>
> >>> From: Idylog - Nicolas Granon<ma...@idylog.com>
> >>> Sent: Thursday, November 2, 2017 12:59 AM
> >>> To: dev@royale.apache.org<ma...@royale.apache.org>
> >>> Subject: RE: Event Metadata
> >>>
> >>> Thank you for your answer.
> >>>
> >>> You say that there is no sure way to know which is faster/smaller.
> >>>
> >>> This somewhat joins your comment about my suggestion regarding
> >>> "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes
> #24"
> >>> thread) where you speak about "usability vs code size".
> >>>
> >>> At some point, you have to choose your target (no pun intended). I
> >>> mean, you have to choose if the SDK main "philosophy" is "small",
> or
> >>> "fast" or "usable" ("main" meaning that is does not ignore the
> other
> >>> options, but is considered prevalent).
> >>>
> >>> Do not forget that (enterprise) Flex Applications have typical long
> >>> load delays : we do not care if an application has a 20s. or 30s.
> load
> >>> time (2mn would be excessive!).
> >>> We compare with "local install" applications like, say Excel, or
> >>> Photoshop, or accounting/payroll/ or any enterprise integrated
> >>> management software (ERPs).
> >>> We definitely do *not* compare with a web site ! (where we want
> load
> >>> time under 3 seconds at most).
> >>>
> >>> Did you ever try to load a Sage(tm) "cloud" application ? (I do not
> >>> blame Sage(tm). It's just an example. I could have talked about
> SAP(tm)
> >>> or any other "cloud enterprise management software").
> >>> Load time is about 1mn30s at best ! Really.
> >>> Or, check Photoshop (local install) load time.
> >>>
> >>> Code size, for us, (I insist : "for us, enterprise app
> developers"), is
> >>> not really an issue. Our first Flex app was created 8 years ago.
> It's
> >>> now a 2MB SWF (compressed) initial load. We never had any complaint
> >>> from any customer about load time.
> >>> On the other end, runtime performance *is* important (interactive).
> >>>
> >>> In the end, what will make us choose Apache Royale over other
> options
> >>> (React being on top of the list) is mainly usability from the
> >>> developers' point of view, and interactive responsiveness, not
> "small
> >>> footprint".
> >>>
> >>> If Apache Royale main target is enterprise applications (RIAs) we
> >>> believe it should favor usability over small footprint and short
> load
> >>> time and avoid "unnecessary" complexity.
> >>> Enterprise apps users do not have the same expectations as
> >>> "individuals" (web surfers). They favor consistency, robustness and
> >>> ergonomics over raw performances (but of course, runtime
> performance
> >>> must not go against ergonomics). Even on mobile devices, our
> customers
> >>> accept "long" load time because they know that they are loading an
> >>> enterprise app. Not a widget.
> >>>
> >>>
> ***********************************************************************
> >>> ******************************
> >>> Classic Flex was about RIAs. We realize that we do not really know
> what
> >>> Apache Royale is about.
> >>> Is it RIAs ?
> >>>
> ***********************************************************************
> >>> ******************************
> >>>
> >>> We believe that it should be clearly decided, as it will shape the
> >>> evolution of the project.
> >>>
> >>> Some of us here (applications developers) are in the RIA domain.
> Others
> >>> might be in other domains where the trade-off are different.
> >>>
> >>> In classic Flex, code size was not a concern : code was big (really
> big
> >>> !) but usability was great. It was an assumed choice, and I believe
> all
> >>> RIAs developers were quite aware of that choice. If code was really
> too
> >>> big, you could slice the app into modules and load on-demand.
> >>> Believe us, we never heard a user complaining about time lag when
> >>> switching from "payroll module" to "accounting module" (even if it
> >>> meant waiting for 30s.) : when you switch from one "universe" to
> >>> another, everybody think it is normal to have a lag.
> >>>
> >>> On the other hand, it the dev team's goal is to create a "web site"
> >>> creation tool, please say it clearly ! It's quite a different goal,
> and
> >>> trade-off output will be quite different !
> >>>
> >>> To summarize, we believe that, for enterprise application
> developers,
> >>> the "usability" criterion comes first, "fast" being second, and
> "small"
> >>> being last.
> >>>
> >>> I'm pretty sure that all this will raise some comments !
> >>>
> >>> Best regards,
> >>>
> >>> Nicolas Granon
> >>>
> >>>
> >>>
> >>>
> >>>> -----Message d'origine-----
> >>>> De : Alex Harui [mailto:aharui@adobe.com.INVALID] Envoyé :
> mercredi 1
> >>>> novembre 2017 21:30 Ŕ : dev@royale.apache.org
> >>>><ma...@royale.apache.org>; ngranon@idylog.com
> >>>><ma...@idylog.com>
> >>>> Objet : Re: Event Metadata
> >>>>
> >>>> That is one of the possible approaches.  The trade-off is, as you
> >>>> mention, having to filter out the right event vs all of the work
> re-
> >>>> dispatching events.  Right now the strand is the wrapping
> component.
> >>>> It doesn't have to be and maybe we should change that, but in
> order
> >>>> for MXML event attributes to work you have to dispatch off the
> >>>> wrapping component and that makes the beads want to dispatch off
> the
> >>>> strand/component and then you are back to filtering again.
> >>>>
> >>>> One advantage of dispatching off the strand is that a bead that
> wants
> >>>> to get an event from another bead doesn't have to find that bead.
> It
> >>>> can just listen to the strand.  It isn't any different than any
> other
> >>>> shared communication infrastructure.  You have to spend time
> >>> filtering
> >>>> or figuring out direct hookups.  I'm not sure there is a way to
> know
> >>>> what is faster/smaller.  It might differ based on the situation.
> >>>>
> >>>> My 2 cents,
> >>>> -Alex
> >>>>
> >>>> On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon"
> <ngranon@idylog.com
> >>>><ma...@idylog.com>>
> >>>> wrote:
> >>>>
> >>>>> Excuse my naive comment :
> >>>>>
> >>>>> In my opinion, we have two different situations :
> >>>>>
> >>>>> Case 1 : I use a component, and I add one or more beads to it (in
> >>> the
> >>>>> source code where the component is used) (inlined).
> >>>>> Case 2 : I use a component that is *already* composed of one
> strand
> >>>> and
> >>>>> a number of beads (or none) (a reusable component)
> >>>>>
> >>>>> Case 1 :
> >>>>> In my mind (as an app developer), I obviously know what I am
> doing.
> >>>>>
> >>>>> It is quite logical, from my point of view, to have listeners
> >>>>> attached to the "component" (that is, indirectly, to the "strand
> >>>>> part") and other listeners (or same !) attached to the beads I am
> >>> interested in.
> >>>>> After all, if I understood clearly, a bead is a way to "add
> >>>>> functionality", right ?
> >>>>> Then, it is very logical to me to listen to events from that
> >>> specific
> >>>>> functionality bead) since I expressly added that piece of
> >>>> functionality.
> >>>>> I should not be confused by events with same name but from other
> >>>>> beads
> >>>>> : I only have to make sure that I listen to the "target" phase.
> >>>>>
> >>>>> In MXML, component events could be captured from the "component"
> >>> tag,
> >>>>> and bead events from the bead sub-tags.
> >>>>>
> >>>>> If a bead wants to listen to events from another bead, nothing
> >>>> prevents
> >>>>> it from doing so (Im not sure of that ??).
> >>>>> The metatags exposed by the strand as well as the metatags
> exposed
> >>> by
> >>>>> the beads would then be accessible.
> >>>>>
> >>>>> Case 2 :
> >>>>> Maybe I use a component designed by someone else, or maybe I
> >>> designed
> >>>>> it myself.
> >>>>> It is the component developer's responsibility to manage
> "internal"
> >>>>> events and then to redispatch "beads" events as "component"
> events
> >>> if
> >>>>> needed (maybe under another event name).
> >>>>> A developer using a "wrapped" composite component should only
> listen
> >>>> to
> >>>>> "component" events (public events), not "bead event" (abstraction
> of
> >>>>> internal representation) The metatags exposed by the "wrapped"
> >>>>> component should be public events only.
> >>>>>
> >>>>> Final case :
> >>>>> The wrapped component is composited from another wrapped
> component
> >>>> plus
> >>>>> some additional beads. In other words, it expends an reusable
> >>>> component
> >>>>> which already contains some beads.
> >>>>> In that case, the "inner" component (the base class) is
> considered
> >>> as
> >>>> a
> >>>>> strand and the global logic is the same as in case (2).
> >>>>>
> >>>>> All in all, this is not very different from what happens in
> classic
> >>>>> Flex when building "complex " components...(which are really
> >>>>> composited, not simple subclasses).
> >>>>>
> >>>>> Too naďve to be useful, maybe ???
> >>>>>
> >>>>> Nicolas Granon
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>> -----Message d'origine-----
> >>>>>> De : Peter Ent [mailto:pent@adobe.com.INVALID
> >>>>>><ma...@adobe.com.INVALID>] Envoyé : mardi 31
> >>>>>> octobre 2017 20:39 Ŕ : dev@royale.apache.org
> >>>>>><ma...@royale.apache.org> Objet : Re: Event
> >>>>>> Metadata (was Re: [GitHub] ...: Image not removed when src set
> to
> >>>>>> null
> >>>>>>
> >>>>>> I typically use the strand as the central dispatcher for intra-
> >>> bead
> >>>>>> communication. Sometimes an event from a bead conflicts with an
> >>>> event
> >>>>>> dispatched by the strand to the "outside". For example, if a
> bead
> >>>>>> were to need to send a "change" event and another bead was
> >>>>>> listening for that event, "change" is pretty generic and an app
> >>>>>> writer who is also listening for change on that strand might get
> >>> the wrong event.
> >>>>>>
> >>>>>> I have not developed any protocol to deal with this, but perhaps
> >>>>>> events used internally for components should prefix the event
> type
> >>>>>> with something (e.g., "_change") unique to indicate the event is
> >>>> internal.
> >>>>>> Events are really the only way we have of beads talking to each
> >>>> other.
> >>>>>>
> >>>>>> We need to document what events a bead is doing to send and what
> >>> it
> >>>>>> is willing to accept and how it will be used. I confess I have
> not
> >>>>>> done that very often and for Royale to be useful, documentation
> >>>>>> like this has to be done. But we need a pattern of use
> established
> >>>>>> so there is consistency.
> >>>>>>
> >>>>>> Let's say you have a bead that you do want to put into MXML and
> >>>>>> that bead produces events. The Drag and Drop work comes to mind.
> >>>>>> When you add a DragSource bead to a list, you the app writer,
> >>> might
> >>>>>> want to know when certain things happen, such as DRAG_START. The
> >>>>>> List does not have DRAG_START listed in its event metadata so
> >>>>>> dispatching this event from the List won't work for the app
> >>> writer.
> >>>>>> The app writer
> >>>> wants to do:
> >>>>>> <js:DragSource dragStart="myThing(event)" /> right in MXML.
> >>>>>>
> >>>>>> As it turns out, this DRAG_START is also used internally by the
> >>>>>> drag controller so I think there is another class of events that
> >>> do
> >>>>>> get dispatched by beads but not on the strand, but on
> themselves.
> >>>>>> In
> >>>> this
> >>>>>> case, these events are not "internal" but public.
> >>>>>>
> >>>>>> Both internal (dispatched by beads targeting the strand) and
> >>> public
> >>>>>> (dispatched by beads targeting themselves) can coexist nicely as
> >>>> long
> >>>>>> as we have some rules.
> >>>>>>
> >>>>>> HTH
> >>>>>> ‹peter
> >>>>>>
> >>>>>> On 10/31/17, 1:46 PM, "Alex Harui" <aharui@adobe.com.INVALID
> >>>>>><ma...@adobe.com.INVALID>>
> >>> wrote:
> >>>>>>
> >>>>>>> For 1) the rule already is that if you want to access an
> implicit
> >>>>>>> bead you have to explicitly declare it.  So if a bead is
> normally
> >>>>>>> brought
> >>>>>> in
> >>>>>>> via CSS, you instead declare that bead on the strand and make
> >>>>>> adjustments.
> >>>>>>> UIBase doesn't care how the beads get placed on the strand, and
> >>>>>>> all bead loading code is supposed to check the strand first
> >>> before
> >>>>>> grabbing
> >>>>>>> a default bead from CSS.  IOW, if it wasn't declared in MXML,
> >>> then
> >>>>>>> declare it in MXML in order to access it.
> >>>>>>>
> >>>>>>> For 2) we are learning towards having beads dispatch their
> >>>> important
> >>>>>>> events off the strand instead of off of the bead. Otherwise we
> >>>>>>> have to add event forwarding code if people want to listen to
> the
> >>>>>>> containing component for events which is pretty normal if you
> >>>>>>> think of the component as a black box.  And then duplicate
> event
> >>>>>>> names does become
> >>>>>> an issue.
> >>>>>>>
> >>>>>>> It will be interesting to see you try your EventListener bead
> and
> >>>>>>> see how it feels and if it is a lot of code or not.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> -Alex
> >>>>>>>
> >>>>>>> On 10/31/17, 10:08 AM, "Harbs" <harbs.lists@gmail.com
> >>>>>>><ma...@gmail.com>> wrote:
> >>>>>>>
> >>>>>>>> The problems that come to mind with attaching the events to
> the
> >>>>>>>> beads
> >>>>>>>> are:
> >>>>>>>> 1. The beads are not necessarily declared in MXML, so that
> >>> leaves
> >>>>>>>> the question of how to address the beads via MXML.
> >>>>>>>> 2. More than one bead might dispatch the same event. To get
> them
> >>>>>>>> all, it seems like itąs necessary to attach the event listener
> >>> to
> >>>>>>>> the
> >>>>>> strand.
> >>>>>>>>
> >>>>>>>>> On Oct 31, 2017, at 5:24 PM, Alex Harui
> >>>>>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Renaming thread.
> >>>>>>>>>
> >>>>>>>>> Another option is for the beads themselves to have event
> >>>> metadata
> >>>>>>>>> for events they dispatch and either:
> >>>>>>>>> 1) the bead dispatches both off of itself and its strand, or
> >>>>>>>>> 2) certain addEventListener calls are passed to the strand.
> >>>>>>>>>
> >>>>>>>>> That's sort of the general pattern for de-composing or
> >>>> "exploding"
> >>>>>> a
> >>>>>>>>> component.  And then the wrapping component doesn't need
> >>>> metadata
> >>>>>>>>> that won't apply to the beads declared.
> >>>>>>>>>
> >>>>>>>>> Having a bead that can attach a particular kind of listener
> >>> and
> >>>>>> call
> >>>>>>>>> a  handler also fits in our patterns.  And similarly, a bead
> >>>>>>>>> that dispatches  platform-specific might be useful as well.
> >>>>>>>>>
> >>>>>>>>> My 2 cents,
> >>>>>>>>> -Alex
> >>>>>>>>>
> >>>>>>>>> On 10/31/17, 3:15 AM, "Harbs" <harbs.lists@gmail.com
> >>>>>>>>><ma...@gmail.com>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Good points.
> >>>>>>>>>>
> >>>>>>>>>>> One issue to consider are whether a container of beads
> >>> should
> >>>>>>>>>>> be have  metadata about the events dispatched by its beads
> >>>> since
> >>>>>>>>>>> the changing of  beads could make that metadata incorrect.
> >>>> IMO,
> >>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
> >>>>>>>>>>> IDE could figure out what beads are  currently in play and
> >>>> aggregate
> >>>>>>>>>>> allowable events from those beads'
> >>>>>>>>>>> metadata someday.
> >>>>>>>>>>
> >>>>>>>>>> Hmm. Not a simple problem. One approach we can take is to
> add
> >>>>>>>>>> metadata to  the component and include documentation on
> which
> >>>>>>>>>> beads are required for  the event to fire.
> >>>>>>>>>>
> >>>>>>>>>> Of course this only takes care of more-or-less standard
> >>> beads.
> >>>>>>>>>> Optional
> >>>>>>>>>> beads that are generally not used would need another
> >>> mechanism
> >>>>>>>>>> to specify  event handlers in MXML (if that would be
> >>> supported).
> >>>>>>>>>>
> >>>>>>>>>> Considering the łsmarter IDE approach˛, it seems like
> thereąs
> >>>>>>>>>> two
> >>>>>>>>>> problems:
> >>>>>>>>>> 1. The compiler needs to know that the attributes are OK.
> >>>>>>>>>> Currently, the  compiler will complain if you use an
> >>>> unrecognized
> >>>>>>>>>> tag.
> >>>>>>>>>> 2. Thereąs lots of ways to add beads, and itąs hard to know
> >>> if
> >>>> a
> >>>>>>>>>> specific  bead is actually added. They can be added using
> CSS,
> >>>> AS
> >>>>>>>>>> code and MXML.
> >>>>>>>>>> Dynamically following that flow in tooling seems like a
> >>>> *really*
> >>>>>>>>>> hard  problem.
> >>>>>>>>>>
> >>>>>>>>>> Another idea would be to allow specifying event handlers in
> a
> >>>>>>>>>> format  something like this:
> >>>>>>>>>> <js:FooComponent id=łfoo˛>
> >>>>>>>>>> <js:events>
> >>>>>>>>>> <js:EventDescriptor type˛layoutNeeded˛
> >>>>>>>>>> handler=łhandleLayoutNeeded()˛/>
> >>>>>>>>>> </js:events>
> >>>>>>>>>> </js:FooComponent>
> >>>>>>>>>>
> >>>>>>>>>> Iąm kind of liking this idea as it follows the pattern we
> >>>>>> currently
> >>>>>>>>>> have  for beads and styles. EventDescriptor could be
> >>> subclassed
> >>>>>>>>>> to have classes  of events which could offer code completion
> >>>>>>>>>> for the available event  types. There would not be
> enforcement
> >>>>>>>>>> that the events would actually be  dispatched, but I think
> it
> >>>>>>>>>> would
> >>>> be
> >>>>>>>>>> helpful and would allow users to  specify random event
> >>> handlers
> >>>>>>>>>> declaratively.
> >>>>>>>>>>
> >>>>>>>>>>> Another issue to consider is cross-platform.  A component
> >>> may
> >>>>>>>>>>> not be able to dispatch the events listed in metadata on
> all
> >>>>>>>>>>> platforms.
> >>>>>>>>>>
> >>>>>>>>>> It seems to me that metadata on cross-platform components
> >>>> should
> >>>>>>>>>> always  be cross-platform. If there are platform-specific
> >>>> events,
> >>>>>>>>>> they should not  be included or there should be a
> >>>>>>>>>> platform-specific component. Weąve  already solved the
> problem
> >>>>>>>>>> with mouse events by renaming the event  strings in the
> >>>>>>>>>> compiler depending on the
> >>>>>> target.
> >>>>>>>>>> (i.e. łdoubleClick˛ in  MXML becomes łdblclick˛
> automatically
> >>>> for
> >>>>>> JS
> >>>>>>>>>> output). I think Mouse  events are an exception, but if
> there
> >>>> are
> >>>>>>>>>> any other events that fit this  exception, they should be
> >>>> handled
> >>>>>>>>>> the same way.
> >>>>>>>>>>
> >>>>>>>>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
> >>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>> Some Metadata is kept in the output, but events probably
> >>>> aren't.
> >>>>>>>>>>>
> >>>>>>>>>>> One issue to consider are whether a container of beads
> >>> should
> >>>>>>>>>>> be have  metadata about the events dispatched by its beads
> >>>> since
> >>>>>>>>>>> the changing of  beads could make that metadata incorrect.
> >>>> IMO,
> >>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
> >>>>>>>>>>> IDE could figure out what beads are  currently in play and
> >>>> aggregate
> >>>>>>>>>>> allowable events from those beads'
> >>>>>>>>>>> metadata someday.
> >>>>>>>>>>>
> >>>>>>>>>>> Another issue to consider is cross-platform.  A component
> >>> may
> >>>>>>>>>>> not be able to dispatch the events listed in metadata on
> all
> >>>>>>>>>>> platforms.
> >>>>>>>>>>>
> >>>>>>>>>>> Also consider that on JS, events probably have to be
> >>>> propagated
> >>>>>>>>>>> from the  wrapped element to the strand so there is cost
> >>> there.
> >>>>>>>>>>>
> >>>>>>>>>>> It is hopefully easy enough for anyone who wants to get an
> >>>>>>>>>>> event that  isn't already in metadata, to subclass, add the
> >>>>>>>>>>> metadata and any wiring.
> >>>>>>>>>>>
> >>>>>>>>>>> My 2 cents,
> >>>>>>>>>>> -Alex
> >>>>>>>>>>>
> >>>>>>>>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
> >>>>>>>>>>><ma...@gmail.com>
> >>>>>>>>>>> <mailto:harbs.lists@gmail.com
> <ma...@gmail.com>>>
> >>>>>>>>>>>wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Iąm not talking about adding events. Iąm talking about
> >>>>>>>>>>>> adding metadata  for *existing events* so they could be
> >>>>>>>>>>>> addressed in MXML.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
> >>>>>>>>>>>>> <piotrzarzycki21@gmail.com
> >>>>>>>>>>>>><ma...@gmail.com>>
> >>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> If you decide to add event that's fine with me. :) It is
> >>>> just
> >>>>>>>>>>>>> the  matter of  thinking about those Basic components
> from
> >>>>>>>>>>>>> my sight. I have started to  look  at them as something
> >>>>>>>>>>>>> which
> >>>>>> should
> >>>>>>>>>>>>> be closer to HTML than to the old  Flex  world. Rest of
> the
> >>>>>>>>>>>>> features should be provided by beads - if it is  possible
> >>>>>>>>>>>>> or by Express.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> The exception could be and MDL from that which I would
> >>> like
> >>>>>>>>>>>>> to extend,  but  here I can think about those components
> as
> >>>>>>>>>>>>> they
> >>>>>> are
> >>>>>>>>>>>>> Express right now.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Piotr
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <harbs.lists@gmail.com
> >>>>>>>>>>>>><ma...@gmail.com>>:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Why? Unless it adds overhead, it seems to me like any
> >>>>>>>>>>>>>> event that can  be  added using addEventListener()
> should
> >>>>>>>>>>>>>> be addressable using MXML.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Iąm just not sure from a technical perspective whether
> >>> the
> >>>>>> MXML
> >>>>>>>>>>>>>> meta  tags  add overhead if not used.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
> >>>>>>>>>>>>>>> <piotrzarzycki21@gmail.com
> >>>>>>>>>>>>>>><ma...@gmail.com>>
> >>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Hi Harbs,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Some time ago there were discussion on Flex Dev which
> >>>> makes
> >>>>>> me
> >>>>>>>>>>>>>>> realize
> >>>>>>>>>>>>>> that
> >>>>>>>>>>>>>>> we should add event tags as long as they are reflecting
> >>>>>>>>>>>>>>> some native  HTML  api, unless we are in express. For
> >>>>>>>>>>>>>>> example we
> >>>>>> are
> >>>>>>>>>>>>>>> using in many  places  "change" event which is I
> believe
> >>>>>>>>>>>>>>> quite common in JS world, but I  would  avoid any
> >>>> additional
> >>>>>>>>>>>>>>> custom one. In the other world Let's answer to  the
> >>>>>>>>>>>>>>> question in following case - Does "img" in HTML world
> >>> have
> >>>> "load"
> >>>>>>>>>>>>>>> event ?
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Piotr
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs
> >>> <harbs.lists@gmail.com <ma...@gmail.com>>:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> This does raise a good question:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Should we be adding MXML meta tags for all supported
> >>>> events?
> >>>>>>>>>>>>>>>> It seems
> >>>>>>>>>>>>>> like
> >>>>>>>>>>>>>>>> a desirable thing to have, and there are currently
> very
> >>>>>>>>>>>>>>>> few event  tags.
> >>>>>>>>>>>>>> Iąm
> >>>>>>>>>>>>>>>> not clear on whether the meta-tags effect the end
> >>> result
> >>>>>>>>>>>>>>>> of code size.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Harbs
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <git@apache.org
> >>>>>>>>>>>>>>>>><ma...@apache.org>>
> >>>> wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> justinmclean commented on issue #60: Image not
> removed
> >>>>>>>>>>>>>>>>> when src set to
> >>>>>>>>>>>>>>>> null
> >>>>>>>>>>>>>>>>> URL:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>
> >>>>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=https%3
> >>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https
> %3><
> >>>>
> >>>>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=https%25
> >>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https
> %25>
> >>>>>>>>>>>>>>> 3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> gi
> >>>>>>>>>>>>>>>>> th
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> Fg
> >>>>>>>>>>>>>>>>> ith>
> >>>>>>>>>>>>>>>>> ub.com
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2Fub.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180
> 608d
> >>>>>>>>>>>>>>>>>521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> C636
> >>>>>>>>>>>>>>>>>452122781043323&sdata=WE2%2FhcZcjh8%2BXKuoxMhTdOfHHSKa
> LJQl
> >>>>>>>>>>>>>>>>>uP8lwVGDodA%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> ub
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> .com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> >>>>>>>>>>>>>>>>> %7
> >>>>>> C
> >>>>>>>>>>>>>>>>> fa7
> >>>>>>>>>>>>>>>>> b
> >>>>>>>>>>>>>>>>> 1b
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
> >>>>>>>>>>>>>>>>> at
> >>>>>> a
> >>>>>>>>>>>>>>>>> =r6
> >>>>>>>>>>>>>>>>> H
> >>>>>>>>>>>>>>>>> O%
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
> >>>>>>>>>>>>>>>>> 2F
> >>>>>> a
> >>>>>>>>>>>>>>>>> pac
> >>>>>>>>>>>>>>>>> h
> >>>>>>>>>>>>>>>>> e%
> >>>>>>>>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
> >>>>>>>>>>>>>>>>> ec
> >>>>>> e
> >>>>>>>>>>>>>>>>> e1%
> >>>>>>>>>>>>>>>>> 7
> >>>>>>>>>>>>>>>>> C0
> >>>>>>>>>>>>>>>>> %7
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
> >>>>>>>>>>>>>>>>> WV
> >>>>>> q
> >>>>>>>>>>>>>>>>> y17
> >>>>>>>>>>>>>>>>> x
> >>>>>>>>>>>>>>>>> Fb
> >>>>>>>>>>>>>>>>> if
> >>>>>>>>>>>>>>>>> 9Gknpc%3D&reserved=0
> >>>>>>>>>>>>>>>> issuecomment-340524197
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> This code fails to compile:
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
> <js:Application
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?u>
> >>>>>>>>>>>>>>>>> rl
> >>>>>> =
> >>>>>>>>>>>>>>>>> htt
> >>>>>>>>>>>>>>>>> p
> >>>>>>>>>>>>>>>>> %3
> >>>>>>>>>>>>>>>>> A%
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>>>
> >>>>>>>>>>>>>>>>> 2F%2Fns.adobe.com
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2F2fns.adobe.com%2F&data=02%7C01%7C%7C4e0054ab9a0
> 74b6
> >>>>>>>>>>>>>>>>>c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7
> C0%7
> >>>>>>>>>>>>>>>>>C0%7C636452122781043323&sdata=36%2BuHM3MDPIrEdlEnKgaQ1
> 3OB%
> >>>>>>>>>>>>>>>>>2Fw6TJzH8SnbHehTv4Q%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> 2f
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>> ns.adobe.com
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fns.adobe.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c1
> 8060
> >>>>>>>>>>>>>>>8d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> C636
> >>>>>>>>>>>>>>>452122781043323&sdata=3%2FzrpEhCf473%2FA57fXhnPmgchFDNPe
> ls0X
> >>>>>>>>>>>>>>>TddH2XOIY%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304
> af40
> >>>>>>>>>>>>>>>8f80c908d5
> >>>>>>>>>>>>>>>>> 20
> >>>>>> 4
> >>>>>>>>>>>>>>>>> 860
> >>>>>>>>>>>>>>>>> d
> >>>>>>>>>>>>>>>>> 3%
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
> >>>>>>>>>>>>>>>>> 14
> >>>>>> 1
> >>>>>>>>>>>>>>>>> 82&
> >>>>>>>>>>>>>>>>> s
> >>>>>>>>>>>>>>>>> da
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
> >>>>>>>>>>>>>>>>> =0
> >>>>>>>
> >>>>>>>>>>>>>>>>> %2F
> >>>>>>>>>>>>>>>>> m
> >>>>>>>>>>>>>>>>> xm
> >>>>>>>>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >>>>>>>>>>>>>>>>> C6
> >>>>>> 3
> >>>>>>>>>>>>>>>>> 644
> >>>>>>>>>>>>>>>>> 9
> >>>>>>>>>>>>>>>>> 84
> >>>>>>>>>>>>>>>>> 71
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
> >>>>>>>>>>>>>>>>> FK
> >>>>>> d
> >>>>>>>>>>>>>>>>> zAe
> >>>>>>>>>>>>>>>>> 4
> >>>>>>>>>>>>>>>>> %2
> >>>>>>>>>>>>>>>>> Bn
> >>>>>>>>>>>>>>>>> o%3D&reserved=0"
> >>>>>>>>>>>>>>>>>
> >>>>>> xmlns:js="library://ns.apache.org/royale/basic
> >>>>>><library://ns.apache.org/royale/basic>
> >>>>>>>>>>>>>>>>> <library://ns.apache.org/royale/basic
> >>>>>>>>>>>>>>>>><library://ns.apache.org/royale/basic>>">
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
> >>>>>>>>>>>>>>>>>      import org.apache.flex.events.IEventDispatcher;
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>      public function blankimage():void {
> >>>>>>>>>>>>>>>>>          image.visible = false;
> >>>>>>>>>>>>>>>>>          image.src =
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> "https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> Fw
> >>>>>>>>>>>>>>>>> ww
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> Fw
> >>>>>>>>>>>>>>>>> ww>
> >>>>>>>>>>>>>>>>> .apache.org
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2Fapache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6
> c180
> >>>>>>>>>>>>>>>>>608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
> C0%7
> >>>>>>>>>>>>>>>>>C636452122781043323&sdata=cZvwj10aSvOUezQeE04dxjQ7P557
> lYbP
> >>>>>>>>>>>>>>>>>9kXIWmmB14E%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> ap
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>> ache.org
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c18060
> 8d52
> >>>>>>>>>>>>>>>1d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636
> 4521
> >>>>>>>>>>>>>>>22781043323&sdata=IB3MUbr4J7VVMcc2Bv%2BoWZsDg2fbMhRs93zb
> Hv1B
> >>>>>>>>>>>>>>>IYw%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f
> 80c9
> >>>>>>>>>>>>>>>08d52048
> >>>>>>>>>>>>>>>>> 60
> >>>>>> d
> >>>>>>>>>>>>>>>>> 3%7
> >>>>>>>>>>>>>>>>> C
> >>>>>>>>>>>>>>>>> fa
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >>>>>>>>>>>>>>>>> 2&
> >>>>>> s
> >>>>>>>>>>>>>>>>> dat
> >>>>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> =w
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >>>>>>>>>>>>>>>>> 2F
> >>>>>> &
> >>>>>>>>>>>>>>>>> dat
> >>>>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> =0
> >>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >>>>>>>>>>>>>>>>> 09
> >>>>>> &
> >>>>>>>>>>>>>>>>> sda
> >>>>>>>>>>>>>>>>> t
> >>>>>>>>>>>>>>>>> a=
> >>>>>>>>>>>>>>>>> pn
> >>>>>>>>>>>>>>>>>
> >>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>>>>>>>> foundation/press/kit/
> >>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >>>>>>>>>>>>>>>>>      }
> >>>>>>>>>>>>>>>>>      public function showImage():void {
> >>>>>>>>>>>>>>>>>          image.visible = true;
> >>>>>>>>>>>>>>>>>      }
> >>>>>>>>>>>>>>>>>      ]]></fx:Script>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>  <js:valuesImpl>
> >>>>>>>>>>>>>>>>>      <js:SimpleCSSValuesImpl/>
> >>>>>>>>>>>>>>>>>  </js:valuesImpl>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>  <js:initialView>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>      <js:View>
> >>>>>>>>>>>>>>>>>          <js:Container id="startPage" visible="true"
> >>>>>>>>>>>>>>>>> width="100%">
> >>>>>>>>>>>>>>>>>              <js:beads>
> >>>>>>>>>>>>>>>>>                  <js:VerticalLayout />
> >>>>>>>>>>>>>>>>>              </js:beads>
> >>>>>>>>>>>>>>>>>              <js:Image id="image"
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> src="https://na01.safelinks.protection.outlook.com/?url=ht
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht>
> >>>>>>>>>>>>>>>>> tp
> >>>>>> s
> >>>>>>>>>>>>>>>>> %3A
> >>>>>>>>>>>>>>>>> %
> >>>>>>>>>>>>>>>>> 2F
> >>>>>>>>>>>>>>>>> %2
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Fwww.apache.org
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2Ffwww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a
> 074b
> >>>>>>>>>>>>>>>>>6c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%
> 7C0%
> >>>>>>>>>>>>>>>>>7C0%7C636452122781043323&sdata=rt4GZT1VykUVs0jR%2FWlE6
> a%2B
> >>>>>>>>>>>>>>>>>WhzOG5IbCjy%2B%2Bpu8lfVM%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> fw
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>> ww.apache.org
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c
> 1806
> >>>>>>>>>>>>>>>08d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> 7C63
> >>>>>>>>>>>>>>>6452122781043323&sdata=OhIjxcyb3uGXxr8btULZ1DtLY3SFOx5jL
> xxAf
> >>>>>>>>>>>>>>>qhB2bo%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af4
> 08f8
> >>>>>>>>>>>>>>>0c908d
> >>>>>>>>>>>>>>>>> 52
> >>>>>> 0
> >>>>>>>>>>>>>>>>> 486
> >>>>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>>>> d3
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >>>>>>>>>>>>>>>>> 61
> >>>>>> 4
> >>>>>>>>>>>>>>>>> 182
> >>>>>>>>>>>>>>>>> &
> >>>>>>>>>>>>>>>>> sd
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >>>>>>>>>>>>>>>>> ve
> >>>>>> d
> >>>>>>>>>>>>>>>>> =0>
> >>>>>>>>>>>>>>>>> %
> >>>>>>>>>>>>>>>>> 2F
> >>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >>>>>>>>>>>>>>>>> 35
> >>>>>> 5
> >>>>>>>>>>>>>>>>> 609
> >>>>>>>>>>>>>>>>> &
> >>>>>>>>>>>>>>>>> sd
> >>>>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >>>>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >>>>>> height="50%"
> >>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
> >>>>>>>>>>>>>>>>>              <js:TextButton text="Blank"
> >>>>>> click="blankimage()"
> >>>>>>>>>>>>>>>>> />
> >>>>>>>>>>>>>>>>>          </js:Container>
> >>>>>>>>>>>>>>>>>      </js:View>
> >>>>>>>>>>>>>>>>>  </js:initialView>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> </js:Application>
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> With this error:
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> /Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
> >>>>>>>>>>>>>>>>> .m
> >>>>>> x
> >>>>>>>>>>>>>>>>> ml(
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> 6)
> >>>>>>>>>>>>>>>>> :
> >>>>>>>>>>>>>>>> col: 130 This attribute is unexpected. It will be
> >>>> ignored.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>              <js:Image id="image"
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> src="https://na01.safelinks.protection.outlook.com/?url=ht
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht>
> >>>>>>>>>>>>>>>>> tp
> >>>>>> s
> >>>>>>>>>>>>>>>>> %3A
> >>>>>>>>>>>>>>>>> %
> >>>>>>>>>>>>>>>>> 2F
> >>>>>>>>>>>>>>>>> %2
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> Fwww.apache.org
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2Ffwww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a
> 074b
> >>>>>>>>>>>>>>>>>6c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%
> 7C0%
> >>>>>>>>>>>>>>>>>7C0%7C636452122781043323&sdata=rt4GZT1VykUVs0jR%2FWlE6
> a%2B
> >>>>>>>>>>>>>>>>>WhzOG5IbCjy%2B%2Bpu8lfVM%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> fw
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>> ww.apache.org
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c
> 1806
> >>>>>>>>>>>>>>>08d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%
> 7C63
> >>>>>>>>>>>>>>>6452122781043323&sdata=OhIjxcyb3uGXxr8btULZ1DtLY3SFOx5jL
> xxAf
> >>>>>>>>>>>>>>>qhB2bo%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af4
> 08f8
> >>>>>>>>>>>>>>>0c908d
> >>>>>>>>>>>>>>>>> 52
> >>>>>> 0
> >>>>>>>>>>>>>>>>> 486
> >>>>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>>>> d3
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >>>>>>>>>>>>>>>>> 61
> >>>>>> 4
> >>>>>>>>>>>>>>>>> 182
> >>>>>>>>>>>>>>>>> &
> >>>>>>>>>>>>>>>>> sd
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >>>>>>>>>>>>>>>>> ve
> >>>>>> d
> >>>>>>>>>>>>>>>>> =0>
> >>>>>>>>>>>>>>>>> %
> >>>>>>>>>>>>>>>>> 2F
> >>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >>>>>>>>>>>>>>>>> 35
> >>>>>> 5
> >>>>>>>>>>>>>>>>> 609
> >>>>>>>>>>>>>>>>> &
> >>>>>>>>>>>>>>>>> sd
> >>>>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >>>>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >>>>>> height="50%"
> >>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> I assume the only way to do this would be to add a
> >>> hard
> >>>>>>>>>>>>>>>>> coded event
> >>>>>>>>>>>>>>>> listener manually like so?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
> >>>>>>>>>>>>>>>>>      public function blankimage():void {
> >>>>>>>>>>>>>>>>>          image.visible = false;
> >>>>>>>>>>>>>>>>>          image.src =
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> "https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> Fw
> >>>>>>>>>>>>>>>>> ww
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> s%>
> >>>>>>>>>>>>>>>>> 3A
> >>>>>> %
> >>>>>>>>>>>>>>>>> 2F%
> >>>>>>>>>>>>>>>>> 2
> >>>>>>>>>>>>>>>>> Fw
> >>>>>>>>>>>>>>>>> ww>
> >>>>>>>>>>>>>>>>> .apache.org
> >>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht
> tp%3
> >>>>>>>>>>>>>>>>>A%2F%2Fapache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6
> c180
> >>>>>>>>>>>>>>>>>608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
> C0%7
> >>>>>>>>>>>>>>>>>C636452122781043323&sdata=cZvwj10aSvOUezQeE04dxjQ7P557
> lYbP
> >>>>>>>>>>>>>>>>>9kXIWmmB14E%3D&reserved=0>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3>
> >>>>>>>>>>>>>>>>> A%
> >>>>>> 2
> >>>>>>>>>>>>>>>>> F%2
> >>>>>>>>>>>>>>>>> F
> >>>>>>>>>>>>>>>>> ap
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>> ache.org
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c18060
> 8d52
> >>>>>>>>>>>>>>>1d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636
> 4521
> >>>>>>>>>>>>>>>22781043323&sdata=IB3MUbr4J7VVMcc2Bv%2BoWZsDg2fbMhRs93zb
> Hv1B
> >>>>>>>>>>>>>>>IYw%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f
> 80c9
> >>>>>>>>>>>>>>>08d52048
> >>>>>>>>>>>>>>>>> 60
> >>>>>> d
> >>>>>>>>>>>>>>>>> 3%7
> >>>>>>>>>>>>>>>>> C
> >>>>>>>>>>>>>>>>> fa
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >>>>>>>>>>>>>>>>> 2&
> >>>>>> s
> >>>>>>>>>>>>>>>>> dat
> >>>>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> =w
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >>>>>>>>>>>>>>>>> 2F
> >>>>>> &
> >>>>>>>>>>>>>>>>> dat
> >>>>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>>>> =0
> >>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>>>
> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >>>>>>>>>>>>>>>>> 09
> >>>>>> &
> >>>>>>>>>>>>>>>>> sda
> >>>>>>>>>>>>>>>>> t
> >>>>>>>>>>>>>>>>> a=
> >>>>>>>>>>>>>>>>> pn
> >>>>>>>>>>>>>>>>>
> >>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>>>>>>>> foundation/press/kit/
> >>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >>>>>>>>>>>>>>>>>          image.addEventListener("layoutNeeded",
> >>>>>> showImage);
> >>>>>>>>>>>>>>>>>      }
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>      public function showImage(event:Event):void {
> >>>>>>>>>>>>>>>>>          image.visible = true;
> >>>>>>>>>>>>>>>>>      }
> >>>>>>>>>>>>>>>>>      ]]></fx:Script>
> >>>>>>>>>>>>>>>>> ```
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> -----------------------------------------------------
> --
> >>> -
> >>>>>>>>>>>>>>>>> -
> >>>> -
> >>>>>>>>>>>>>>>>> --
> >>>>>> -
> >>>>>>>>>>>>>>>>> ---  This is an automated message from the Apache Git
> >>>>>>>>>>>>>>>>> Service.
> >>>>>>>>>>>>>>>>> To respond to the message, please log on GitHub and
> >>> use
> >>>>>>>>>>>>>>>>> the URL above to go to the specific comment.
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> For queries about this service, please contact
> >>>>>>>>>>>>>>>>> Infrastructure
> >>>>>>>>>>>>>>>>> at:
> >>>>>>>>>>>>>>>>> users@infra.apache.org
> <ma...@infra.apache.org>
> >>>>>>>>>>>>>>>>><mailto:users@infra.apache.org
> >>>>>>>>>>>>>>>>><ma...@infra.apache.org>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> With regards,
> >>>>>>>>>>>>>>>>> Apache Git Services
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Piotr Zarzycki
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> mobile: +48 880 859 557
> >>>>>>>>>>>>>>> skype: zarzycki10
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> LinkedIn:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>
> >>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2
> >>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A
> %2><
> >>>>
> >>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=http%3A%25
> >>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A
> %25>
> >>>>>>>>>>>>> 2>
> >>>>>>>>>>>>>>> F%
> >>>>>> 2
> >>>>>>>>>>>>>>> Fww
> >>>>>>>>>>>>>>> w
> >>>>>>>>>>>>>>> .l
> >>>>>>>>>>>>>>> in
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> A%>
> >>>>>>>>>>>>>>> 2F
> >>>>>> %
> >>>>>>>>>>>>>>> 2Fw
> >>>>>>>>>>>>>>> w
> >>>>>>>>>>>>>>> w.
> >>>>>>>>>>>>>>> lin>
> >>>>>>>>>>>>>>> kedin.com
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fkedin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c1806
> 08d5
> >>>>>>>>>>>>>>>21d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
> 6452
> >>>>>>>>>>>>>>>122781043323&sdata=KjA9BtoqqMdYs6pQSRyi%2B7rKtC6l6BZjSTi
> JAw6
> >>>>>>>>>>>>>>>TZHE%3D&reserved=0>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> A%>
> >>>>>>>>>>>>>>> 2F
> >>>>>> %
> >>>>>>>>>>>>>>> 2Fk
> >>>>>>>>>>>>>>> e
> >>>>>>>>>>>>>>> di
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>> n.com
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> A%2F
> >>>>>>>>>>>>>%2Fn.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d521d5
> 6581
> >>>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636452122781
> 0433
> >>>>>>>>>>>>>23&sdata=J75ewtWMJrLJn8iKCOHUwj3nKGHatJpDAB4cvs8vwSQ%3D&re
> serv
> >>>>>>>>>>>>>ed=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d
> 3%
> >>>>>>>>>>>>>>> 7C
> >>>>>> f
> >>>>>>>>>>>>>>> a7b
> >>>>>>>>>>>>>>> 1
> >>>>>>>>>>>>>>> b5
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
> >>>>>>>>>>>>>>> =M
> >>>>>> m
> >>>>>>>>>>>>>>> 3Kn
> >>>>>>>>>>>>>>> X
> >>>>>>>>>>>>>>> %2
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
> >>>>>>>>>>>>>>> io
> >>>>>> t
> >>>>>>>>>>>>>>> rza
> >>>>>>>>>>>>>>> r
> >>>>>>>>>>>>>>> zy
> >>>>>>>>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> 38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
> >>>>>>>>>>>>>>> 13
> >>>>>> 0
> >>>>>>>>>>>>>>> 355
> >>>>>>>>>>>>>>> 6
> >>>>>>>>>>>>>>> 09
> >>>>>>>>>>>>>>> &s
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
> >>>>>>>>>>>>>>> se
> >>>>>> r
> >>>>>>>>>>>>>>> ved
> >>>>>>>>>>>>>>> =
> >>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> 3A>
> >>>>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>>>> %2F
> >>>>>>>>>>>>>>> p
> >>>>>>>>>>>>>>> l.
> >>>>>>>>>>>>>>> li
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> 3A>
> >>>>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>>>> %2F
> >>>>>>>>>>>>>>> p
> >>>>>>>>>>>>>>> l.
> >>>>>>>>>>>>>>> li>
> >>>>>>>>>>>>>>> nkedin.com
> >>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http
> %3A%
> >>>>>>>>>>>>>>>2F%2Fnkedin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180
> 608d
> >>>>>>>>>>>>>>>521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6
> 3645
> >>>>>>>>>>>>>>>2122781043323&sdata=GQwTvQHMoxz%2BKyc%2BYYs9wgkjqugIoUI4
> %2F0
> >>>>>>>>>>>>>>>weG8Ylh9A%3D&reserved=0>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> A%>
> >>>>>>>>>>>>>>> 2F
> >>>>>> %
> >>>>>>>>>>>>>>> 2Fn
> >>>>>>>>>>>>>>> k
> >>>>>>>>>>>>>>> ed
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>> in.com
> >>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> A%2F
> >>>>>>>>>>>>>%2Fin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d521d
> 5658
> >>>>>>>>>>>>>1%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645212278
> 1043
> >>>>>>>>>>>>>323&sdata=f8sxFdjUqcHowJ9kbTf1aeDN222R%2Bq7Lowp5wbqqXQw%3D
> &res
> >>>>>>>>>>>>>erved=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> 60d3
> >>>>>>>>>>>>>>> %7
> >>>>>> C
> >>>>>>>>>>>>>>> fa7
> >>>>>>>>>>>>>>> b
> >>>>>>>>>>>>>>> 1b
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
> >>>>>>>>>>>>>>> a=
> >>>>>> 4
> >>>>>>>>>>>>>>> v8C
> >>>>>>>>>>>>>>> S
> >>>>>>>>>>>>>>> fu
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
> >>>>>>>>>>>>>>> io
> >>>>>> t
> >>>>>>>>>>>>>>> r-z
> >>>>>>>>>>>>>>> a
> >>>>>>>>>>>>>>> rz
> >>>>>>>>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> 6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
> >>>>>>>>>>>>>>> %7
> >>>>>> C
> >>>>>>>>>>>>>>> 0%7
> >>>>>>>>>>>>>>> C
> >>>>>>>>>>>>>>> 63
> >>>>>>>>>>>>>>> 64
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> 49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
> >>>>>>>>>>>>>>> FH
> >>>>>> q
> >>>>>>>>>>>>>>> EAK
> >>>>>>>>>>>>>>> N
> >>>>>>>>>>>>>>> o%
> >>>>>>>>>>>>>>> 3D
> >>>>>>>>>>>>>>> &reserved=0>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> GitHub:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>
> >>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=https%3A%<
> >>>>
> >>>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >>>>>>>>>>>>> 5>
> >>>>>>>>>>>>>>> 2F
> >>>>>> %
> >>>>>>>>>>>>>>> 2Fg
> >>>>>>>>>>>>>>> i
> >>>>>>>>>>>>>>> th
> >>>>>>>>>>>>>>> ub
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A
> >>>>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>>>> %2F
> >>>>>>>>>>>>>>> g
> >>>>>>>>>>>>>>> it
> >>>>>>>>>>>>>>> hub>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> .com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >>>>>>>>>>>>>>> 20
> >>>>>> 8
> >>>>>>>>>>>>>>> d51
> >>>>>>>>>>>>>>> f
> >>>>>>>>>>>>>>> c3
> >>>>>>>>>>>>>>> 8b
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> 07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >>>>>>>>>>>>>>> 35
> >>>>>> 5
> >>>>>>>>>>>>>>> 609
> >>>>>>>>>>>>>>> &
> >>>>>>>>>>>>>>> sd
> >>>>>>>>>>>>>>> at
> >>>>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>>>
> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
> >>>>>>>>>>>>>>> 0
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> --
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Piotr Zarzycki
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> mobile: +48 880 859 557
> >>>>>>>>>>>>> skype: zarzycki10
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> LinkedIn:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>
> >>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<
> >>>>
> >>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> >>>>>>>>>>> 5>
> >>>>>>>>>>>>> 2F
> >>>>>> www.
> >>>>>>>>>>>>> l
> >>>>>>>>>>>>> in
> >>>>>>>>>>>>> ke
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>> www
> >>>>>>>>>>>>> .
> >>>>>>>>>>>>> li
> >>>>>>>>>>>>> nke>
> >>>>>>>>>>>>> din.com
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>> din
> >>>>>>>>>>>>> .
> >>>>>>>>>>>>> co
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
> >>>>>>>>>>>>> 1b
> >>>>>> 5
> >>>>>>>>>>>>> a7b
> >>>>>>>>>>>>> 3
> >>>>>>>>>>>>> 44
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> 38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
> >>>>>>>>>>>>> HJ
> >>>>>> t
> >>>>>>>>>>>>> Y44
> >>>>>>>>>>>>> X
> >>>>>>>>>>>>> dR
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
> >>>>>>>>>>>>> at
> >>>>>> a
> >>>>>>>>>>>>> =02
> >>>>>>>>>>>>> %
> >>>>>>>>>>>>> 7C
> >>>>>>>>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> 7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
> >>>>>>>>>>>>> 60
> >>>>>> 9
> >>>>>>>>>>>>> &sd
> >>>>>>>>>>>>> a
> >>>>>>>>>>>>> ta
> >>>>>>>>>>>>> =M
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >>>>>>>>>>>>> F%
> >>>>>> 2
> >>>>>>>>>>>>> Fpl
> >>>>>>>>>>>>> .
> >>>>>>>>>>>>> li
> >>>>>>>>>>>>> nk
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >>>>>>>>>>>>> F%
> >>>>>> 2
> >>>>>>>>>>>>> Fpl
> >>>>>>>>>>>>> .
> >>>>>>>>>>>>> li
> >>>>>>>>>>>>> nk>
> >>>>>>>>>>>>> edin.com
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>> edi
> >>>>>>>>>>>>> n
> >>>>>>>>>>>>> .c
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
> >>>>>>>>>>>>> b1
> >>>>>> b
> >>>>>>>>>>>>> 5a7
> >>>>>>>>>>>>> b
> >>>>>>>>>>>>> 34
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> 438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
> >>>>>>>>>>>>> 3i
> >>>>>> L
> >>>>>>>>>>>>> sgF
> >>>>>>>>>>>>> 8
> >>>>>>>>>>>>> wv
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
> >>>>>> zarzycki
> >>>>>>>>>>>>> -92
> >>>>>>>>>>>>> a
> >>>>>>>>>>>>> 53
> >>>>>>>>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >>>>>>>>>>>>> C6
> >>>>>> 3
> >>>>>>>>>>>>> 644
> >>>>>>>>>>>>> 9
> >>>>>>>>>>>>> 84
> >>>>>>>>>>>>> 71
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> 30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
> >>>>>>>>>>>>> %3
> >>>>>> D
> >>>>>>>>>>>>> &re
> >>>>>>>>>>>>> s
> >>>>>>>>>>>>> er
> >>>>>>>>>>>>> ve
> >>>>>>>>>>>>> d=0>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> GitHub:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
> >>>>>>>>>>>>> %2
> >>>>>> F
> >>>>>>>>>>>>> git
> >>>>>>>>>>>>> h
> >>>>>>>>>>>>> ub
> >>>>>>>>>>>>> .c
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >>>>>>>>>>>>> F%
> >>>>>> 2
> >>>>>>>>>>>>> Fgi
> >>>>>>>>>>>>> t
> >>>>>>>>>>>>> hu
> >>>>>>>>>>>>> b.c>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
> >>>>>>>>>>>>> 51
> >>>>>> f
> >>>>>>>>>>>>> c38
> >>>>>>>>>>>>> b
> >>>>>>>>>>>>> 07
> >>>>>>>>>>>>> %7
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>
> >>>>>>>>>>>
> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> >>>>>>>>>>>>> &s
> >>>>>> d
> >>>>>>>>>>>>> ata
> >>>>>>>>>>>>> =
> >>>>>>>>>>>>> mi
> >>>>>>>>>>>>> 12
> >>>>>>>>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> >



Re: Event Metadata

Posted by Alex Harui <ah...@adobe.com.INVALID>.
Hi Nicolas,

A breakdown would be nice, but I'm also curious about your evaluation
process.  Could you share what steps you are taking?  Are you building
simple tests of various features or just plain trying to port your
existing code to Royale?

Also, once you choose a development environment a few months from now, how
many months have you budgeted to finish?  Knowing that might affect how we
write our code.  For example, we can probably get hierarchy to show up in
a DataGrid soon, along with a rudimentary virtual item renderer manager,
and offer up an API for localization that shows you can switch and order
locales for a few hand-crafted resource databases but take longer to deal
with recycling renderers or teaching the compiler to process locales into
whatever database we end up using.

Keep in mind that we all have many years of experience with the
performance idiosyncrasies of the Flash runtime.  We do not have as much
experience with getting this much JavaScript, written in a object-oriented
manner leveraging Google Closure, to run.  We have decent evidence that
the runtime optimization of JS engines is biased towards code-reuse, so
that's one reason we use beads to share as much code as possible.  But we
remain concerned that the way code was written for Flex (large classes,
lots of initialization- related generated code) might result in slower
execution than Flash.  In the days of Adobe Flex, we saw lots of customers
build some really big apps that did not start up fast enough and time was
lost in the "last mile" trying to optimize things before the deployment
date.

So we've been pushing on the entire lifecycle of development, calling it
"Developer Productivity" not just how fast you can get your
proof-of-concept up and running.  Usability is still very important, but
we do want to make sure your app is as fast or faster than your Flash app.

Thanks,
-Alex

On 11/2/17, 2:37 AM, "Harbs" <ha...@gmail.com> wrote:

>> Would you be interested in a "breakdown" of all the classes that we
>> currently use ? (with a "use count" and a "priority mark" ?)
>
>Sure. That would be very useful.
>
>> On Nov 2, 2017, at 11:18 AM, Idylog - Nicolas Granon
>><ng...@idylog.com> wrote:
>> 
>> This is not only a "component weight" choice (that would be easy!).
>> 
>> It also pertains to architectural/structural choices (component
>>lifecycle,
>> ease of styling/theming, events management...).
>> 
>> At this time, we feel that Apache Royale could be viable path, but we
>> absolutely need a strong (Flex equivalent) localization (resource
>>manager)
>> solution.
>> 
>> We also need a good understanding of how we can re-develop our
>>(multiple)
>> custom item renderers/editors. We do not really understand royale
>>components
>> lifecycle...(compared with Flex lifecycle). And since we often present
>>lists
>> (datagrid, usually, and advanceddatagrids too with hierarchical
>>datasources)
>> containing hundreds of items, itemrenderers' virtualization seems
>>mandatory.
>> We do not have much information about those points...
>> 
>> We would be happy to collaborate with the dev team.
>> 
>> Would you be interested in a "breakdown" of all the classes that we
>> currently use ? (with a "use count" and a "priority mark" ?)
>> 
>> We have still two months evaluation work before making our decision...
>> 
>> Nicolas Granon
>> 
>> 
>> 
>> 
>>> -----Message d'origine-----
>>> De : Yishay Weiss [mailto:yishayjobs@hotmail.com
>>><ma...@hotmail.com>]
>>> Envoyé : jeudi 2 novembre 2017 08:39
>>> Ŕ : dev@royale.apache.org <ma...@royale.apache.org>;
>>>ngranon@idylog.com <ma...@idylog.com>
>>> Objet : RE: Event Metadata
>>> 
>>> Hi Nicolas,
>>> 
>>> Very good perspective.
>>> 
>>> I think Royale’s philosophy is to allow different component sets for
>>> different user types. The two obvious ones that exist right now are
>>> Basic and Express. Basic emphasizes small and fast, while Express
>>> emphasizes usable.
>>> 
>>> A lot of the discussions you’ll see on the dev list pertain to the
>>> Basic set because that should serve as the basis for other sets. In a
>>> sense it’s the core of the framework and we want to keep it as
>>> performant as possible.
>>> 
>>> I think it’s great that you maintain an app developer’s perspective. It
>>> should motivate us to invest more time in usability and expand the
>>> Express component set. Alex has been talking about ‘adopting’ another
>>> dev team to facilitate their way to a production Royale app. If you
>>> choose to go on that path, I’m sure the usability issues will receive
>>> close attention and the Express component set will benefit.
>>> 
>>> Thanks,
>>> Yishay
>>> 
>>> From: Idylog - Nicolas Granon<ma...@idylog.com>
>>> Sent: Thursday, November 2, 2017 12:59 AM
>>> To: dev@royale.apache.org<ma...@royale.apache.org>
>>> Subject: RE: Event Metadata
>>> 
>>> Thank you for your answer.
>>> 
>>> You say that there is no sure way to know which is faster/smaller.
>>> 
>>> This somewhat joins your comment about my suggestion regarding
>>> "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24"
>>> thread) where you speak about "usability vs code size".
>>> 
>>> At some point, you have to choose your target (no pun intended). I
>>> mean, you have to choose if the SDK main "philosophy" is "small", or
>>> "fast" or "usable" ("main" meaning that is does not ignore the other
>>> options, but is considered prevalent).
>>> 
>>> Do not forget that (enterprise) Flex Applications have typical long
>>> load delays : we do not care if an application has a 20s. or 30s. load
>>> time (2mn would be excessive!).
>>> We compare with "local install" applications like, say Excel, or
>>> Photoshop, or accounting/payroll/ or any enterprise integrated
>>> management software (ERPs).
>>> We definitely do *not* compare with a web site ! (where we want load
>>> time under 3 seconds at most).
>>> 
>>> Did you ever try to load a Sage(tm) "cloud" application ? (I do not
>>> blame Sage(tm). It's just an example. I could have talked about SAP(tm)
>>> or any other "cloud enterprise management software").
>>> Load time is about 1mn30s at best ! Really.
>>> Or, check Photoshop (local install) load time.
>>> 
>>> Code size, for us, (I insist : "for us, enterprise app developers"), is
>>> not really an issue. Our first Flex app was created 8 years ago. It's
>>> now a 2MB SWF (compressed) initial load. We never had any complaint
>>> from any customer about load time.
>>> On the other end, runtime performance *is* important (interactive).
>>> 
>>> In the end, what will make us choose Apache Royale over other options
>>> (React being on top of the list) is mainly usability from the
>>> developers' point of view, and interactive responsiveness, not "small
>>> footprint".
>>> 
>>> If Apache Royale main target is enterprise applications (RIAs) we
>>> believe it should favor usability over small footprint and short load
>>> time and avoid "unnecessary" complexity.
>>> Enterprise apps users do not have the same expectations as
>>> "individuals" (web surfers). They favor consistency, robustness and
>>> ergonomics over raw performances (but of course, runtime performance
>>> must not go against ergonomics). Even on mobile devices, our customers
>>> accept "long" load time because they know that they are loading an
>>> enterprise app. Not a widget.
>>> 
>>> ***********************************************************************
>>> ******************************
>>> Classic Flex was about RIAs. We realize that we do not really know what
>>> Apache Royale is about.
>>> Is it RIAs ?
>>> ***********************************************************************
>>> ******************************
>>> 
>>> We believe that it should be clearly decided, as it will shape the
>>> evolution of the project.
>>> 
>>> Some of us here (applications developers) are in the RIA domain. Others
>>> might be in other domains where the trade-off are different.
>>> 
>>> In classic Flex, code size was not a concern : code was big (really big
>>> !) but usability was great. It was an assumed choice, and I believe all
>>> RIAs developers were quite aware of that choice. If code was really too
>>> big, you could slice the app into modules and load on-demand.
>>> Believe us, we never heard a user complaining about time lag when
>>> switching from "payroll module" to "accounting module" (even if it
>>> meant waiting for 30s.) : when you switch from one "universe" to
>>> another, everybody think it is normal to have a lag.
>>> 
>>> On the other hand, it the dev team's goal is to create a "web site"
>>> creation tool, please say it clearly ! It's quite a different goal, and
>>> trade-off output will be quite different !
>>> 
>>> To summarize, we believe that, for enterprise application developers,
>>> the "usability" criterion comes first, "fast" being second, and "small"
>>> being last.
>>> 
>>> I'm pretty sure that all this will raise some comments !
>>> 
>>> Best regards,
>>> 
>>> Nicolas Granon
>>> 
>>> 
>>> 
>>> 
>>>> -----Message d'origine-----
>>>> De : Alex Harui [mailto:aharui@adobe.com.INVALID] Envoyé : mercredi 1
>>>> novembre 2017 21:30 Ŕ : dev@royale.apache.org
>>>><ma...@royale.apache.org>; ngranon@idylog.com
>>>><ma...@idylog.com>
>>>> Objet : Re: Event Metadata
>>>> 
>>>> That is one of the possible approaches.  The trade-off is, as you
>>>> mention, having to filter out the right event vs all of the work re-
>>>> dispatching events.  Right now the strand is the wrapping component.
>>>> It doesn't have to be and maybe we should change that, but in order
>>>> for MXML event attributes to work you have to dispatch off the
>>>> wrapping component and that makes the beads want to dispatch off the
>>>> strand/component and then you are back to filtering again.
>>>> 
>>>> One advantage of dispatching off the strand is that a bead that wants
>>>> to get an event from another bead doesn't have to find that bead.  It
>>>> can just listen to the strand.  It isn't any different than any other
>>>> shared communication infrastructure.  You have to spend time
>>> filtering
>>>> or figuring out direct hookups.  I'm not sure there is a way to know
>>>> what is faster/smaller.  It might differ based on the situation.
>>>> 
>>>> My 2 cents,
>>>> -Alex
>>>> 
>>>> On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ngranon@idylog.com
>>>><ma...@idylog.com>>
>>>> wrote:
>>>> 
>>>>> Excuse my naive comment :
>>>>> 
>>>>> In my opinion, we have two different situations :
>>>>> 
>>>>> Case 1 : I use a component, and I add one or more beads to it (in
>>> the
>>>>> source code where the component is used) (inlined).
>>>>> Case 2 : I use a component that is *already* composed of one strand
>>>> and
>>>>> a number of beads (or none) (a reusable component)
>>>>> 
>>>>> Case 1 :
>>>>> In my mind (as an app developer), I obviously know what I am doing.
>>>>> 
>>>>> It is quite logical, from my point of view, to have listeners
>>>>> attached to the "component" (that is, indirectly, to the "strand
>>>>> part") and other listeners (or same !) attached to the beads I am
>>> interested in.
>>>>> After all, if I understood clearly, a bead is a way to "add
>>>>> functionality", right ?
>>>>> Then, it is very logical to me to listen to events from that
>>> specific
>>>>> functionality bead) since I expressly added that piece of
>>>> functionality.
>>>>> I should not be confused by events with same name but from other
>>>>> beads
>>>>> : I only have to make sure that I listen to the "target" phase.
>>>>> 
>>>>> In MXML, component events could be captured from the "component"
>>> tag,
>>>>> and bead events from the bead sub-tags.
>>>>> 
>>>>> If a bead wants to listen to events from another bead, nothing
>>>> prevents
>>>>> it from doing so (Im not sure of that ??).
>>>>> The metatags exposed by the strand as well as the metatags exposed
>>> by
>>>>> the beads would then be accessible.
>>>>> 
>>>>> Case 2 :
>>>>> Maybe I use a component designed by someone else, or maybe I
>>> designed
>>>>> it myself.
>>>>> It is the component developer's responsibility to manage "internal"
>>>>> events and then to redispatch "beads" events as "component" events
>>> if
>>>>> needed (maybe under another event name).
>>>>> A developer using a "wrapped" composite component should only listen
>>>> to
>>>>> "component" events (public events), not "bead event" (abstraction of
>>>>> internal representation) The metatags exposed by the "wrapped"
>>>>> component should be public events only.
>>>>> 
>>>>> Final case :
>>>>> The wrapped component is composited from another wrapped component
>>>> plus
>>>>> some additional beads. In other words, it expends an reusable
>>>> component
>>>>> which already contains some beads.
>>>>> In that case, the "inner" component (the base class) is considered
>>> as
>>>> a
>>>>> strand and the global logic is the same as in case (2).
>>>>> 
>>>>> All in all, this is not very different from what happens in classic
>>>>> Flex when building "complex " components...(which are really
>>>>> composited, not simple subclasses).
>>>>> 
>>>>> Too naďve to be useful, maybe ???
>>>>> 
>>>>> Nicolas Granon
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> -----Message d'origine-----
>>>>>> De : Peter Ent [mailto:pent@adobe.com.INVALID
>>>>>><ma...@adobe.com.INVALID>] Envoyé : mardi 31
>>>>>> octobre 2017 20:39 Ŕ : dev@royale.apache.org
>>>>>><ma...@royale.apache.org> Objet : Re: Event
>>>>>> Metadata (was Re: [GitHub] ...: Image not removed when src set to
>>>>>> null
>>>>>> 
>>>>>> I typically use the strand as the central dispatcher for intra-
>>> bead
>>>>>> communication. Sometimes an event from a bead conflicts with an
>>>> event
>>>>>> dispatched by the strand to the "outside". For example, if a bead
>>>>>> were to need to send a "change" event and another bead was
>>>>>> listening for that event, "change" is pretty generic and an app
>>>>>> writer who is also listening for change on that strand might get
>>> the wrong event.
>>>>>> 
>>>>>> I have not developed any protocol to deal with this, but perhaps
>>>>>> events used internally for components should prefix the event type
>>>>>> with something (e.g., "_change") unique to indicate the event is
>>>> internal.
>>>>>> Events are really the only way we have of beads talking to each
>>>> other.
>>>>>> 
>>>>>> We need to document what events a bead is doing to send and what
>>> it
>>>>>> is willing to accept and how it will be used. I confess I have not
>>>>>> done that very often and for Royale to be useful, documentation
>>>>>> like this has to be done. But we need a pattern of use established
>>>>>> so there is consistency.
>>>>>> 
>>>>>> Let's say you have a bead that you do want to put into MXML and
>>>>>> that bead produces events. The Drag and Drop work comes to mind.
>>>>>> When you add a DragSource bead to a list, you the app writer,
>>> might
>>>>>> want to know when certain things happen, such as DRAG_START. The
>>>>>> List does not have DRAG_START listed in its event metadata so
>>>>>> dispatching this event from the List won't work for the app
>>> writer.
>>>>>> The app writer
>>>> wants to do:
>>>>>> <js:DragSource dragStart="myThing(event)" /> right in MXML.
>>>>>> 
>>>>>> As it turns out, this DRAG_START is also used internally by the
>>>>>> drag controller so I think there is another class of events that
>>> do
>>>>>> get dispatched by beads but not on the strand, but on themselves.
>>>>>> In
>>>> this
>>>>>> case, these events are not "internal" but public.
>>>>>> 
>>>>>> Both internal (dispatched by beads targeting the strand) and
>>> public
>>>>>> (dispatched by beads targeting themselves) can coexist nicely as
>>>> long
>>>>>> as we have some rules.
>>>>>> 
>>>>>> HTH
>>>>>> ‹peter
>>>>>> 
>>>>>> On 10/31/17, 1:46 PM, "Alex Harui" <aharui@adobe.com.INVALID
>>>>>><ma...@adobe.com.INVALID>>
>>> wrote:
>>>>>> 
>>>>>>> For 1) the rule already is that if you want to access an implicit
>>>>>>> bead you have to explicitly declare it.  So if a bead is normally
>>>>>>> brought
>>>>>> in
>>>>>>> via CSS, you instead declare that bead on the strand and make
>>>>>> adjustments.
>>>>>>> UIBase doesn't care how the beads get placed on the strand, and
>>>>>>> all bead loading code is supposed to check the strand first
>>> before
>>>>>> grabbing
>>>>>>> a default bead from CSS.  IOW, if it wasn't declared in MXML,
>>> then
>>>>>>> declare it in MXML in order to access it.
>>>>>>> 
>>>>>>> For 2) we are learning towards having beads dispatch their
>>>> important
>>>>>>> events off the strand instead of off of the bead. Otherwise we
>>>>>>> have to add event forwarding code if people want to listen to the
>>>>>>> containing component for events which is pretty normal if you
>>>>>>> think of the component as a black box.  And then duplicate event
>>>>>>> names does become
>>>>>> an issue.
>>>>>>> 
>>>>>>> It will be interesting to see you try your EventListener bead and
>>>>>>> see how it feels and if it is a lot of code or not.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> -Alex
>>>>>>> 
>>>>>>> On 10/31/17, 10:08 AM, "Harbs" <harbs.lists@gmail.com
>>>>>>><ma...@gmail.com>> wrote:
>>>>>>> 
>>>>>>>> The problems that come to mind with attaching the events to the
>>>>>>>> beads
>>>>>>>> are:
>>>>>>>> 1. The beads are not necessarily declared in MXML, so that
>>> leaves
>>>>>>>> the question of how to address the beads via MXML.
>>>>>>>> 2. More than one bead might dispatch the same event. To get them
>>>>>>>> all, it seems like itąs necessary to attach the event listener
>>> to
>>>>>>>> the
>>>>>> strand.
>>>>>>>> 
>>>>>>>>> On Oct 31, 2017, at 5:24 PM, Alex Harui
>>>>>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Renaming thread.
>>>>>>>>> 
>>>>>>>>> Another option is for the beads themselves to have event
>>>> metadata
>>>>>>>>> for events they dispatch and either:
>>>>>>>>> 1) the bead dispatches both off of itself and its strand, or
>>>>>>>>> 2) certain addEventListener calls are passed to the strand.
>>>>>>>>> 
>>>>>>>>> That's sort of the general pattern for de-composing or
>>>> "exploding"
>>>>>> a
>>>>>>>>> component.  And then the wrapping component doesn't need
>>>> metadata
>>>>>>>>> that won't apply to the beads declared.
>>>>>>>>> 
>>>>>>>>> Having a bead that can attach a particular kind of listener
>>> and
>>>>>> call
>>>>>>>>> a  handler also fits in our patterns.  And similarly, a bead
>>>>>>>>> that dispatches  platform-specific might be useful as well.
>>>>>>>>> 
>>>>>>>>> My 2 cents,
>>>>>>>>> -Alex
>>>>>>>>> 
>>>>>>>>> On 10/31/17, 3:15 AM, "Harbs" <harbs.lists@gmail.com
>>>>>>>>><ma...@gmail.com>> wrote:
>>>>>>>>> 
>>>>>>>>>> Good points.
>>>>>>>>>> 
>>>>>>>>>>> One issue to consider are whether a container of beads
>>> should
>>>>>>>>>>> be have  metadata about the events dispatched by its beads
>>>> since
>>>>>>>>>>> the changing of  beads could make that metadata incorrect.
>>>> IMO,
>>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
>>>>>>>>>>> IDE could figure out what beads are  currently in play and
>>>> aggregate
>>>>>>>>>>> allowable events from those beads'
>>>>>>>>>>> metadata someday.
>>>>>>>>>> 
>>>>>>>>>> Hmm. Not a simple problem. One approach we can take is to add
>>>>>>>>>> metadata to  the component and include documentation on which
>>>>>>>>>> beads are required for  the event to fire.
>>>>>>>>>> 
>>>>>>>>>> Of course this only takes care of more-or-less standard
>>> beads.
>>>>>>>>>> Optional
>>>>>>>>>> beads that are generally not used would need another
>>> mechanism
>>>>>>>>>> to specify  event handlers in MXML (if that would be
>>> supported).
>>>>>>>>>> 
>>>>>>>>>> Considering the łsmarter IDE approach˛, it seems like thereąs
>>>>>>>>>> two
>>>>>>>>>> problems:
>>>>>>>>>> 1. The compiler needs to know that the attributes are OK.
>>>>>>>>>> Currently, the  compiler will complain if you use an
>>>> unrecognized
>>>>>>>>>> tag.
>>>>>>>>>> 2. Thereąs lots of ways to add beads, and itąs hard to know
>>> if
>>>> a
>>>>>>>>>> specific  bead is actually added. They can be added using CSS,
>>>> AS
>>>>>>>>>> code and MXML.
>>>>>>>>>> Dynamically following that flow in tooling seems like a
>>>> *really*
>>>>>>>>>> hard  problem.
>>>>>>>>>> 
>>>>>>>>>> Another idea would be to allow specifying event handlers in a
>>>>>>>>>> format  something like this:
>>>>>>>>>> <js:FooComponent id=łfoo˛>
>>>>>>>>>> <js:events>
>>>>>>>>>> <js:EventDescriptor type˛layoutNeeded˛
>>>>>>>>>> handler=łhandleLayoutNeeded()˛/>
>>>>>>>>>> </js:events>
>>>>>>>>>> </js:FooComponent>
>>>>>>>>>> 
>>>>>>>>>> Iąm kind of liking this idea as it follows the pattern we
>>>>>> currently
>>>>>>>>>> have  for beads and styles. EventDescriptor could be
>>> subclassed
>>>>>>>>>> to have classes  of events which could offer code completion
>>>>>>>>>> for the available event  types. There would not be enforcement
>>>>>>>>>> that the events would actually be  dispatched, but I think it
>>>>>>>>>> would
>>>> be
>>>>>>>>>> helpful and would allow users to  specify random event
>>> handlers
>>>>>>>>>> declaratively.
>>>>>>>>>> 
>>>>>>>>>>> Another issue to consider is cross-platform.  A component
>>> may
>>>>>>>>>>> not be able to dispatch the events listed in metadata on all
>>>>>>>>>>> platforms.
>>>>>>>>>> 
>>>>>>>>>> It seems to me that metadata on cross-platform components
>>>> should
>>>>>>>>>> always  be cross-platform. If there are platform-specific
>>>> events,
>>>>>>>>>> they should not  be included or there should be a
>>>>>>>>>> platform-specific component. Weąve  already solved the problem
>>>>>>>>>> with mouse events by renaming the event  strings in the
>>>>>>>>>> compiler depending on the
>>>>>> target.
>>>>>>>>>> (i.e. łdoubleClick˛ in  MXML becomes łdblclick˛ automatically
>>>> for
>>>>>> JS
>>>>>>>>>> output). I think Mouse  events are an exception, but if there
>>>> are
>>>>>>>>>> any other events that fit this  exception, they should be
>>>> handled
>>>>>>>>>> the same way.
>>>>>>>>>> 
>>>>>>>>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
>>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Some Metadata is kept in the output, but events probably
>>>> aren't.
>>>>>>>>>>> 
>>>>>>>>>>> One issue to consider are whether a container of beads
>>> should
>>>>>>>>>>> be have  metadata about the events dispatched by its beads
>>>> since
>>>>>>>>>>> the changing of  beads could make that metadata incorrect.
>>>> IMO,
>>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
>>>>>>>>>>> IDE could figure out what beads are  currently in play and
>>>> aggregate
>>>>>>>>>>> allowable events from those beads'
>>>>>>>>>>> metadata someday.
>>>>>>>>>>> 
>>>>>>>>>>> Another issue to consider is cross-platform.  A component
>>> may
>>>>>>>>>>> not be able to dispatch the events listed in metadata on all
>>>>>>>>>>> platforms.
>>>>>>>>>>> 
>>>>>>>>>>> Also consider that on JS, events probably have to be
>>>> propagated
>>>>>>>>>>> from the  wrapped element to the strand so there is cost
>>> there.
>>>>>>>>>>> 
>>>>>>>>>>> It is hopefully easy enough for anyone who wants to get an
>>>>>>>>>>> event that  isn't already in metadata, to subclass, add the
>>>>>>>>>>> metadata and any wiring.
>>>>>>>>>>> 
>>>>>>>>>>> My 2 cents,
>>>>>>>>>>> -Alex
>>>>>>>>>>> 
>>>>>>>>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>>>>>>>>>>><ma...@gmail.com>
>>>>>>>>>>> <mailto:harbs.lists@gmail.com <ma...@gmail.com>>>
>>>>>>>>>>>wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Iąm not talking about adding events. Iąm talking about
>>>>>>>>>>>> adding metadata  for *existing events* so they could be
>>>>>>>>>>>> addressed in MXML.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>>>>>>>>>>> <piotrzarzycki21@gmail.com
>>>>>>>>>>>>><ma...@gmail.com>>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> If you decide to add event that's fine with me. :) It is
>>>> just
>>>>>>>>>>>>> the  matter of  thinking about those Basic components from
>>>>>>>>>>>>> my sight. I have started to  look  at them as something
>>>>>>>>>>>>> which
>>>>>> should
>>>>>>>>>>>>> be closer to HTML than to the old  Flex  world. Rest of the
>>>>>>>>>>>>> features should be provided by beads - if it is  possible
>>>>>>>>>>>>> or by Express.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> The exception could be and MDL from that which I would
>>> like
>>>>>>>>>>>>> to extend,  but  here I can think about those components as
>>>>>>>>>>>>> they
>>>>>> are
>>>>>>>>>>>>> Express right now.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Piotr
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <harbs.lists@gmail.com
>>>>>>>>>>>>><ma...@gmail.com>>:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Why? Unless it adds overhead, it seems to me like any
>>>>>>>>>>>>>> event that can  be  added using addEventListener() should
>>>>>>>>>>>>>> be addressable using MXML.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Iąm just not sure from a technical perspective whether
>>> the
>>>>>> MXML
>>>>>>>>>>>>>> meta  tags  add overhead if not used.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>>>>>>>>>>> <piotrzarzycki21@gmail.com
>>>>>>>>>>>>>>><ma...@gmail.com>>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Hi Harbs,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Some time ago there were discussion on Flex Dev which
>>>> makes
>>>>>> me
>>>>>>>>>>>>>>> realize
>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>> we should add event tags as long as they are reflecting
>>>>>>>>>>>>>>> some native  HTML  api, unless we are in express. For
>>>>>>>>>>>>>>> example we
>>>>>> are
>>>>>>>>>>>>>>> using in many  places  "change" event which is I believe
>>>>>>>>>>>>>>> quite common in JS world, but I  would  avoid any
>>>> additional
>>>>>>>>>>>>>>> custom one. In the other world Let's answer to  the
>>>>>>>>>>>>>>> question in following case - Does "img" in HTML world
>>> have
>>>> "load"
>>>>>>>>>>>>>>> event ?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Piotr
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs
>>> <harbs.lists@gmail.com <ma...@gmail.com>>:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> This does raise a good question:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Should we be adding MXML meta tags for all supported
>>>> events?
>>>>>>>>>>>>>>>> It seems
>>>>>>>>>>>>>> like
>>>>>>>>>>>>>>>> a desirable thing to have, and there are currently very
>>>>>>>>>>>>>>>> few event  tags.
>>>>>>>>>>>>>> Iąm
>>>>>>>>>>>>>>>> not clear on whether the meta-tags effect the end
>>> result
>>>>>>>>>>>>>>>> of code size.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <git@apache.org
>>>>>>>>>>>>>>>>><ma...@apache.org>>
>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> justinmclean commented on issue #60: Image not removed
>>>>>>>>>>>>>>>>> when src set to
>>>>>>>>>>>>>>>> null
>>>>>>>>>>>>>>>>> URL:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>> 
>>>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3
>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3><
>>>> 
>>>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%25
>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%25>
>>>>>>>>>>>>>>> 3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> gi
>>>>>>>>>>>>>>>>> th
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> Fg
>>>>>>>>>>>>>>>>> ith>
>>>>>>>>>>>>>>>>> ub.com
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2Fub.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d
>>>>>>>>>>>>>>>>>521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636
>>>>>>>>>>>>>>>>>452122781043323&sdata=WE2%2FhcZcjh8%2BXKuoxMhTdOfHHSKaLJQl
>>>>>>>>>>>>>>>>>uP8lwVGDodA%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> ub
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> .com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>>>>>>>>>> %7
>>>>>> C
>>>>>>>>>>>>>>>>> fa7
>>>>>>>>>>>>>>>>> b
>>>>>>>>>>>>>>>>> 1b
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>>>>>>>>>> at
>>>>>> a
>>>>>>>>>>>>>>>>> =r6
>>>>>>>>>>>>>>>>> H
>>>>>>>>>>>>>>>>> O%
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
>>>>>>>>>>>>>>>>> 2F
>>>>>> a
>>>>>>>>>>>>>>>>> pac
>>>>>>>>>>>>>>>>> h
>>>>>>>>>>>>>>>>> e%
>>>>>>>>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
>>>>>>>>>>>>>>>>> ec
>>>>>> e
>>>>>>>>>>>>>>>>> e1%
>>>>>>>>>>>>>>>>> 7
>>>>>>>>>>>>>>>>> C0
>>>>>>>>>>>>>>>>> %7
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
>>>>>>>>>>>>>>>>> WV
>>>>>> q
>>>>>>>>>>>>>>>>> y17
>>>>>>>>>>>>>>>>> x
>>>>>>>>>>>>>>>>> Fb
>>>>>>>>>>>>>>>>> if
>>>>>>>>>>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>>>>>>>>>>> issuecomment-340524197
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> This code fails to compile:
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?u>
>>>>>>>>>>>>>>>>> rl
>>>>>> =
>>>>>>>>>>>>>>>>> htt
>>>>>>>>>>>>>>>>> p
>>>>>>>>>>>>>>>>> %3
>>>>>>>>>>>>>>>>> A%
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>>> 
>>>>>>>>>>>>>>>>> 2F%2Fns.adobe.com
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2F2fns.adobe.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6
>>>>>>>>>>>>>>>>>c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
>>>>>>>>>>>>>>>>>C0%7C636452122781043323&sdata=36%2BuHM3MDPIrEdlEnKgaQ13OB%
>>>>>>>>>>>>>>>>>2Fw6TJzH8SnbHehTv4Q%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> 2f
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ns.adobe.com
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fns.adobe.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c18060
>>>>>>>>>>>>>>>8d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636
>>>>>>>>>>>>>>>452122781043323&sdata=3%2FzrpEhCf473%2FA57fXhnPmgchFDNPels0X
>>>>>>>>>>>>>>>TddH2XOIY%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af40
>>>>>>>>>>>>>>>8f80c908d5
>>>>>>>>>>>>>>>>> 20
>>>>>> 4
>>>>>>>>>>>>>>>>> 860
>>>>>>>>>>>>>>>>> d
>>>>>>>>>>>>>>>>> 3%
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
>>>>>>>>>>>>>>>>> 14
>>>>>> 1
>>>>>>>>>>>>>>>>> 82&
>>>>>>>>>>>>>>>>> s
>>>>>>>>>>>>>>>>> da
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
>>>>>>>>>>>>>>>>> =0
>>>>>>> 
>>>>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>>>>> m
>>>>>>>>>>>>>>>>> xm
>>>>>>>>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>>>>>>> C6
>>>>>> 3
>>>>>>>>>>>>>>>>> 644
>>>>>>>>>>>>>>>>> 9
>>>>>>>>>>>>>>>>> 84
>>>>>>>>>>>>>>>>> 71
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
>>>>>>>>>>>>>>>>> FK
>>>>>> d
>>>>>>>>>>>>>>>>> zAe
>>>>>>>>>>>>>>>>> 4
>>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>>> Bn
>>>>>>>>>>>>>>>>> o%3D&reserved=0"
>>>>>>>>>>>>>>>>> 
>>>>>> xmlns:js="library://ns.apache.org/royale/basic
>>>>>><library://ns.apache.org/royale/basic>
>>>>>>>>>>>>>>>>> <library://ns.apache.org/royale/basic 
>>>>>>>>>>>>>>>>><library://ns.apache.org/royale/basic>>">
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
>>>>>>>>>>>>>>>>>      import org.apache.flex.events.IEventDispatcher;
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>      public function blankimage():void {
>>>>>>>>>>>>>>>>>          image.visible = false;
>>>>>>>>>>>>>>>>>          image.src =
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>>> ww
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>>> ww>
>>>>>>>>>>>>>>>>> .apache.org 
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2Fapache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180
>>>>>>>>>>>>>>>>>608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>>>>>>>C636452122781043323&sdata=cZvwj10aSvOUezQeE04dxjQ7P557lYbP
>>>>>>>>>>>>>>>>>9kXIWmmB14E%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> ap
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ache.org 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d52
>>>>>>>>>>>>>>>1d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364521
>>>>>>>>>>>>>>>22781043323&sdata=IB3MUbr4J7VVMcc2Bv%2BoWZsDg2fbMhRs93zbHv1B
>>>>>>>>>>>>>>>IYw%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c9
>>>>>>>>>>>>>>>08d52048
>>>>>>>>>>>>>>>>> 60
>>>>>> d
>>>>>>>>>>>>>>>>> 3%7
>>>>>>>>>>>>>>>>> C
>>>>>>>>>>>>>>>>> fa
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>>>>>>>>>>>>>>>>> 2&
>>>>>> s
>>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>> =w
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>>>>>>>>>>>>>>>>> 2F
>>>>>> &
>>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>> =0
>>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>>>>>>>>>>>>>>>>> 09
>>>>>> &
>>>>>>>>>>>>>>>>> sda
>>>>>>>>>>>>>>>>> t
>>>>>>>>>>>>>>>>> a=
>>>>>>>>>>>>>>>>> pn
>>>>>>>>>>>>>>>>> 
>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>>>>>> foundation/press/kit/
>>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>>      public function showImage():void {
>>>>>>>>>>>>>>>>>          image.visible = true;
>>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>>      ]]></fx:Script>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>  <js:valuesImpl>
>>>>>>>>>>>>>>>>>      <js:SimpleCSSValuesImpl/>
>>>>>>>>>>>>>>>>>  </js:valuesImpl>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>  <js:initialView>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>      <js:View>
>>>>>>>>>>>>>>>>>          <js:Container id="startPage" visible="true"
>>>>>>>>>>>>>>>>> width="100%">
>>>>>>>>>>>>>>>>>              <js:beads>
>>>>>>>>>>>>>>>>>                  <js:VerticalLayout />
>>>>>>>>>>>>>>>>>              </js:beads>
>>>>>>>>>>>>>>>>>              <js:Image id="image"
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=ht 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht>
>>>>>>>>>>>>>>>>> tp
>>>>>> s
>>>>>>>>>>>>>>>>> %3A
>>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Fwww.apache.org 
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2Ffwww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b
>>>>>>>>>>>>>>>>>6c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%
>>>>>>>>>>>>>>>>>7C0%7C636452122781043323&sdata=rt4GZT1VykUVs0jR%2FWlE6a%2B
>>>>>>>>>>>>>>>>>WhzOG5IbCjy%2B%2Bpu8lfVM%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> fw
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ww.apache.org 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c1806
>>>>>>>>>>>>>>>08d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
>>>>>>>>>>>>>>>6452122781043323&sdata=OhIjxcyb3uGXxr8btULZ1DtLY3SFOx5jLxxAf
>>>>>>>>>>>>>>>qhB2bo%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f8
>>>>>>>>>>>>>>>0c908d
>>>>>>>>>>>>>>>>> 52
>>>>>> 0
>>>>>>>>>>>>>>>>> 486
>>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>>> d3
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>>>>>>>>>>>>>>>>> 61
>>>>>> 4
>>>>>>>>>>>>>>>>> 182
>>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>>>>>>>>>>>>>>>>> ve
>>>>>> d
>>>>>>>>>>>>>>>>> =0>
>>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>>>>> 35
>>>>>> 5
>>>>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>>>>>> height="50%"
>>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>>>>>>>>              <js:TextButton text="Blank"
>>>>>> click="blankimage()"
>>>>>>>>>>>>>>>>> />
>>>>>>>>>>>>>>>>>          </js:Container>
>>>>>>>>>>>>>>>>>      </js:View>
>>>>>>>>>>>>>>>>>  </js:initialView>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> </js:Application>
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> With this error:
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> /Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
>>>>>>>>>>>>>>>>> .m
>>>>>> x
>>>>>>>>>>>>>>>>> ml(
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> 6)
>>>>>>>>>>>>>>>>> :
>>>>>>>>>>>>>>>> col: 130 This attribute is unexpected. It will be
>>>> ignored.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>              <js:Image id="image"
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=ht 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=ht>
>>>>>>>>>>>>>>>>> tp
>>>>>> s
>>>>>>>>>>>>>>>>> %3A
>>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Fwww.apache.org 
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2Ffwww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b
>>>>>>>>>>>>>>>>>6c180608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%
>>>>>>>>>>>>>>>>>7C0%7C636452122781043323&sdata=rt4GZT1VykUVs0jR%2FWlE6a%2B
>>>>>>>>>>>>>>>>>WhzOG5IbCjy%2B%2Bpu8lfVM%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> fw
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ww.apache.org 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fww.apache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c1806
>>>>>>>>>>>>>>>08d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
>>>>>>>>>>>>>>>6452122781043323&sdata=OhIjxcyb3uGXxr8btULZ1DtLY3SFOx5jLxxAf
>>>>>>>>>>>>>>>qhB2bo%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f8
>>>>>>>>>>>>>>>0c908d
>>>>>>>>>>>>>>>>> 52
>>>>>> 0
>>>>>>>>>>>>>>>>> 486
>>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>>> d3
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>>>>>>>>>>>>>>>>> 61
>>>>>> 4
>>>>>>>>>>>>>>>>> 182
>>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>>>>>>>>>>>>>>>>> ve
>>>>>> d
>>>>>>>>>>>>>>>>> =0>
>>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>>>>> 35
>>>>>> 5
>>>>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>>>>>> height="50%"
>>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> I assume the only way to do this would be to add a
>>> hard
>>>>>>>>>>>>>>>>> coded event
>>>>>>>>>>>>>>>> listener manually like so?
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
>>>>>>>>>>>>>>>>>      public function blankimage():void {
>>>>>>>>>>>>>>>>>          image.visible = false;
>>>>>>>>>>>>>>>>>          image.src =
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>>> ww
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>>> 3A
>>>>>> %
>>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>>> ww>
>>>>>>>>>>>>>>>>> .apache.org 
>>>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>>>>>>>>>>A%2F%2Fapache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180
>>>>>>>>>>>>>>>>>608d521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>>>>>>>C636452122781043323&sdata=cZvwj10aSvOUezQeE04dxjQ7P557lYbP
>>>>>>>>>>>>>>>>>9kXIWmmB14E%3D&reserved=0>
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>>> A%
>>>>>> 2
>>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>>> ap
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> ache.org 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fache.org%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d52
>>>>>>>>>>>>>>>1d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364521
>>>>>>>>>>>>>>>22781043323&sdata=IB3MUbr4J7VVMcc2Bv%2BoWZsDg2fbMhRs93zbHv1B
>>>>>>>>>>>>>>>IYw%3D&reserved=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c9
>>>>>>>>>>>>>>>08d52048
>>>>>>>>>>>>>>>>> 60
>>>>>> d
>>>>>>>>>>>>>>>>> 3%7
>>>>>>>>>>>>>>>>> C
>>>>>>>>>>>>>>>>> fa
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>>>>>>>>>>>>>>>>> 2&
>>>>>> s
>>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>> =w
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>>>>>>>>>>>>>>>>> 2F
>>>>>> &
>>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>> =0
>>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>>>>>>>>>>>>>>>>> 09
>>>>>> &
>>>>>>>>>>>>>>>>> sda
>>>>>>>>>>>>>>>>> t
>>>>>>>>>>>>>>>>> a=
>>>>>>>>>>>>>>>>> pn
>>>>>>>>>>>>>>>>> 
>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>>>>>> foundation/press/kit/
>>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>>>>>>>          image.addEventListener("layoutNeeded",
>>>>>> showImage);
>>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>      public function showImage(event:Event):void {
>>>>>>>>>>>>>>>>>          image.visible = true;
>>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>>      ]]></fx:Script>
>>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> -------------------------------------------------------
>>> -
>>>>>>>>>>>>>>>>> -
>>>> -
>>>>>>>>>>>>>>>>> --
>>>>>> -
>>>>>>>>>>>>>>>>> ---  This is an automated message from the Apache Git
>>>>>>>>>>>>>>>>> Service.
>>>>>>>>>>>>>>>>> To respond to the message, please log on GitHub and
>>> use
>>>>>>>>>>>>>>>>> the URL above to go to the specific comment.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> For queries about this service, please contact
>>>>>>>>>>>>>>>>> Infrastructure
>>>>>>>>>>>>>>>>> at:
>>>>>>>>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org> 
>>>>>>>>>>>>>>>>><mailto:users@infra.apache.org 
>>>>>>>>>>>>>>>>><ma...@infra.apache.org>>
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> With regards,
>>>>>>>>>>>>>>>>> Apache Git Services
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Piotr Zarzycki
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> mobile: +48 880 859 557
>>>>>>>>>>>>>>> skype: zarzycki10
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> LinkedIn:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>> 
>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2 
>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2><
>>>> 
>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%25 
>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%25>
>>>>>>>>>>>>> 2>
>>>>>>>>>>>>>>> F%
>>>>>> 2
>>>>>>>>>>>>>>> Fww
>>>>>>>>>>>>>>> w
>>>>>>>>>>>>>>> .l
>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>>> 2F
>>>>>> %
>>>>>>>>>>>>>>> 2Fw
>>>>>>>>>>>>>>> w
>>>>>>>>>>>>>>> w.
>>>>>>>>>>>>>>> lin>
>>>>>>>>>>>>>>> kedin.com 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fkedin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d5
>>>>>>>>>>>>>>>21d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636452
>>>>>>>>>>>>>>>122781043323&sdata=KjA9BtoqqMdYs6pQSRyi%2B7rKtC6l6BZjSTiJAw6
>>>>>>>>>>>>>>>TZHE%3D&reserved=0>
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>>> 2F
>>>>>> %
>>>>>>>>>>>>>>> 2Fk
>>>>>>>>>>>>>>> e
>>>>>>>>>>>>>>> di
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> n.com 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>>>%2Fn.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d521d56581
>>>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364521227810433
>>>>>>>>>>>>>23&sdata=J75ewtWMJrLJn8iKCOHUwj3nKGHatJpDAB4cvs8vwSQ%3D&reserv
>>>>>>>>>>>>>ed=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
>>>>>>>>>>>>>>> 7C
>>>>>> f
>>>>>>>>>>>>>>> a7b
>>>>>>>>>>>>>>> 1
>>>>>>>>>>>>>>> b5
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
>>>>>>>>>>>>>>> =M
>>>>>> m
>>>>>>>>>>>>>>> 3Kn
>>>>>>>>>>>>>>> X
>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
>>>>>>>>>>>>>>> io
>>>>>> t
>>>>>>>>>>>>>>> rza
>>>>>>>>>>>>>>> r
>>>>>>>>>>>>>>> zy
>>>>>>>>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> 38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
>>>>>>>>>>>>>>> 13
>>>>>> 0
>>>>>>>>>>>>>>> 355
>>>>>>>>>>>>>>> 6
>>>>>>>>>>>>>>> 09
>>>>>>>>>>>>>>> &s
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
>>>>>>>>>>>>>>> se
>>>>>> r
>>>>>>>>>>>>>>> ved
>>>>>>>>>>>>>>> =
>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A>
>>>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>>> p
>>>>>>>>>>>>>>> l.
>>>>>>>>>>>>>>> li
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A>
>>>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>>> p
>>>>>>>>>>>>>>> l.
>>>>>>>>>>>>>>> li>
>>>>>>>>>>>>>>> nkedin.com 
>>>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>>>>>>>>>>>>>>>2F%2Fnkedin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d
>>>>>>>>>>>>>>>521d56581%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645
>>>>>>>>>>>>>>>2122781043323&sdata=GQwTvQHMoxz%2BKyc%2BYYs9wgkjqugIoUI4%2F0
>>>>>>>>>>>>>>>weG8Ylh9A%3D&reserved=0>
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>>> 2F
>>>>>> %
>>>>>>>>>>>>>>> 2Fn
>>>>>>>>>>>>>>> k
>>>>>>>>>>>>>>> ed
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> in.com 
>>>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>>>%2Fin.com%2F&data=02%7C01%7C%7C4e0054ab9a074b6c180608d521d5658
>>>>>>>>>>>>>1%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636452122781043
>>>>>>>>>>>>>323&sdata=f8sxFdjUqcHowJ9kbTf1aeDN222R%2Bq7Lowp5wbqqXQw%3D&res
>>>>>>>>>>>>>erved=0>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>>>>>>>> %7
>>>>>> C
>>>>>>>>>>>>>>> fa7
>>>>>>>>>>>>>>> b
>>>>>>>>>>>>>>> 1b
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>>>>>>>>>>>>>>> a=
>>>>>> 4
>>>>>>>>>>>>>>> v8C
>>>>>>>>>>>>>>> S
>>>>>>>>>>>>>>> fu
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
>>>>>>>>>>>>>>> io
>>>>>> t
>>>>>>>>>>>>>>> r-z
>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>> rz
>>>>>>>>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> 6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>>>>>>>>>>>>>> %7
>>>>>> C
>>>>>>>>>>>>>>> 0%7
>>>>>>>>>>>>>>> C
>>>>>>>>>>>>>>> 63
>>>>>>>>>>>>>>> 64
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> 49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
>>>>>>>>>>>>>>> FH
>>>>>> q
>>>>>>>>>>>>>>> EAK
>>>>>>>>>>>>>>> N
>>>>>>>>>>>>>>> o%
>>>>>>>>>>>>>>> 3D
>>>>>>>>>>>>>>> &reserved=0>
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> GitHub:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>> 
>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%<
>>>> 
>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>>> 5>
>>>>>>>>>>>>>>> 2F
>>>>>> %
>>>>>>>>>>>>>>> 2Fg
>>>>>>>>>>>>>>> i
>>>>>>>>>>>>>>> th
>>>>>>>>>>>>>>> ub
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A
>>>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>>> g
>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>> hub>
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> .com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>>>>>>> 20
>>>>>> 8
>>>>>>>>>>>>>>> d51
>>>>>>>>>>>>>>> f
>>>>>>>>>>>>>>> c3
>>>>>>>>>>>>>>> 8b
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> 07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>>> 35
>>>>>> 5
>>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Piotr Zarzycki
>>>>>>>>>>>>> 
>>>>>>>>>>>>> mobile: +48 880 859 557
>>>>>>>>>>>>> skype: zarzycki10
>>>>>>>>>>>>> 
>>>>>>>>>>>>> LinkedIn:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>> 
>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<
>>>> 
>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>> 5>
>>>>>>>>>>>>> 2F
>>>>>> www.
>>>>>>>>>>>>> l
>>>>>>>>>>>>> in
>>>>>>>>>>>>> ke
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>> www
>>>>>>>>>>>>> .
>>>>>>>>>>>>> li
>>>>>>>>>>>>> nke>
>>>>>>>>>>>>> din.com
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>> din
>>>>>>>>>>>>> .
>>>>>>>>>>>>> co
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>>>>>>>>>>>>> 1b
>>>>>> 5
>>>>>>>>>>>>> a7b
>>>>>>>>>>>>> 3
>>>>>>>>>>>>> 44
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> 38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
>>>>>>>>>>>>> HJ
>>>>>> t
>>>>>>>>>>>>> Y44
>>>>>>>>>>>>> X
>>>>>>>>>>>>> dR
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
>>>>>>>>>>>>> at
>>>>>> a
>>>>>>>>>>>>> =02
>>>>>>>>>>>>> %
>>>>>>>>>>>>> 7C
>>>>>>>>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> 7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
>>>>>>>>>>>>> 60
>>>>>> 9
>>>>>>>>>>>>> &sd
>>>>>>>>>>>>> a
>>>>>>>>>>>>> ta
>>>>>>>>>>>>> =M
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>>> F%
>>>>>> 2
>>>>>>>>>>>>> Fpl
>>>>>>>>>>>>> .
>>>>>>>>>>>>> li
>>>>>>>>>>>>> nk
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>>> F%
>>>>>> 2
>>>>>>>>>>>>> Fpl
>>>>>>>>>>>>> .
>>>>>>>>>>>>> li
>>>>>>>>>>>>> nk>
>>>>>>>>>>>>> edin.com
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>> edi
>>>>>>>>>>>>> n
>>>>>>>>>>>>> .c
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
>>>>>>>>>>>>> b1
>>>>>> b
>>>>>>>>>>>>> 5a7
>>>>>>>>>>>>> b
>>>>>>>>>>>>> 34
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> 438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
>>>>>>>>>>>>> 3i
>>>>>> L
>>>>>>>>>>>>> sgF
>>>>>>>>>>>>> 8
>>>>>>>>>>>>> wv
>>>>>>>>>>>>> 
>>>>>>>>>>>>> dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
>>>>>> zarzycki
>>>>>>>>>>>>> -92
>>>>>>>>>>>>> a
>>>>>>>>>>>>> 53
>>>>>>>>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>>> C6
>>>>>> 3
>>>>>>>>>>>>> 644
>>>>>>>>>>>>> 9
>>>>>>>>>>>>> 84
>>>>>>>>>>>>> 71
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> 30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
>>>>>>>>>>>>> %3
>>>>>> D
>>>>>>>>>>>>> &re
>>>>>>>>>>>>> s
>>>>>>>>>>>>> er
>>>>>>>>>>>>> ve
>>>>>>>>>>>>> d=0>
>>>>>>>>>>>>> 
>>>>>>>>>>>>> GitHub:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>>>>>> %2
>>>>>> F
>>>>>>>>>>>>> git
>>>>>>>>>>>>> h
>>>>>>>>>>>>> ub
>>>>>>>>>>>>> .c
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>>> F%
>>>>>> 2
>>>>>>>>>>>>> Fgi
>>>>>>>>>>>>> t
>>>>>>>>>>>>> hu
>>>>>>>>>>>>> b.c>
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
>>>>>>>>>>>>> 51
>>>>>> f
>>>>>>>>>>>>> c38
>>>>>>>>>>>>> b
>>>>>>>>>>>>> 07
>>>>>>>>>>>>> %7
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>> 
>>>>>>>>>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>>>>>>>> &s
>>>>>> d
>>>>>>>>>>>>> ata
>>>>>>>>>>>>> =
>>>>>>>>>>>>> mi
>>>>>>>>>>>>> 12
>>>>>>>>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>


Re: Event Metadata

Posted by Harbs <ha...@gmail.com>.
> Would you be interested in a "breakdown" of all the classes that we
> currently use ? (with a "use count" and a "priority mark" ?)

Sure. That would be very useful.

> On Nov 2, 2017, at 11:18 AM, Idylog - Nicolas Granon <ng...@idylog.com> wrote:
> 
> This is not only a "component weight" choice (that would be easy!).
> 
> It also pertains to architectural/structural choices (component lifecycle,
> ease of styling/theming, events management...).
> 
> At this time, we feel that Apache Royale could be viable path, but we
> absolutely need a strong (Flex equivalent) localization (resource manager)
> solution.
> 
> We also need a good understanding of how we can re-develop our (multiple)
> custom item renderers/editors. We do not really understand royale components
> lifecycle...(compared with Flex lifecycle). And since we often present lists
> (datagrid, usually, and advanceddatagrids too with hierarchical datasources)
> containing hundreds of items, itemrenderers' virtualization seems mandatory.
> We do not have much information about those points...
> 
> We would be happy to collaborate with the dev team.
> 
> Would you be interested in a "breakdown" of all the classes that we
> currently use ? (with a "use count" and a "priority mark" ?)
> 
> We have still two months evaluation work before making our decision...
> 
> Nicolas Granon
> 
> 
> 
> 
>> -----Message d'origine-----
>> De : Yishay Weiss [mailto:yishayjobs@hotmail.com <ma...@hotmail.com>]
>> Envoyé : jeudi 2 novembre 2017 08:39
>> Ŕ : dev@royale.apache.org <ma...@royale.apache.org>; ngranon@idylog.com <ma...@idylog.com>
>> Objet : RE: Event Metadata
>> 
>> Hi Nicolas,
>> 
>> Very good perspective.
>> 
>> I think Royale’s philosophy is to allow different component sets for
>> different user types. The two obvious ones that exist right now are
>> Basic and Express. Basic emphasizes small and fast, while Express
>> emphasizes usable.
>> 
>> A lot of the discussions you’ll see on the dev list pertain to the
>> Basic set because that should serve as the basis for other sets. In a
>> sense it’s the core of the framework and we want to keep it as
>> performant as possible.
>> 
>> I think it’s great that you maintain an app developer’s perspective. It
>> should motivate us to invest more time in usability and expand the
>> Express component set. Alex has been talking about ‘adopting’ another
>> dev team to facilitate their way to a production Royale app. If you
>> choose to go on that path, I’m sure the usability issues will receive
>> close attention and the Express component set will benefit.
>> 
>> Thanks,
>> Yishay
>> 
>> From: Idylog - Nicolas Granon<ma...@idylog.com>
>> Sent: Thursday, November 2, 2017 12:59 AM
>> To: dev@royale.apache.org<ma...@royale.apache.org>
>> Subject: RE: Event Metadata
>> 
>> Thank you for your answer.
>> 
>> You say that there is no sure way to know which is faster/smaller.
>> 
>> This somewhat joins your comment about my suggestion regarding
>> "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24"
>> thread) where you speak about "usability vs code size".
>> 
>> At some point, you have to choose your target (no pun intended). I
>> mean, you have to choose if the SDK main "philosophy" is "small", or
>> "fast" or "usable" ("main" meaning that is does not ignore the other
>> options, but is considered prevalent).
>> 
>> Do not forget that (enterprise) Flex Applications have typical long
>> load delays : we do not care if an application has a 20s. or 30s. load
>> time (2mn would be excessive!).
>> We compare with "local install" applications like, say Excel, or
>> Photoshop, or accounting/payroll/ or any enterprise integrated
>> management software (ERPs).
>> We definitely do *not* compare with a web site ! (where we want load
>> time under 3 seconds at most).
>> 
>> Did you ever try to load a Sage(tm) "cloud" application ? (I do not
>> blame Sage(tm). It's just an example. I could have talked about SAP(tm)
>> or any other "cloud enterprise management software").
>> Load time is about 1mn30s at best ! Really.
>> Or, check Photoshop (local install) load time.
>> 
>> Code size, for us, (I insist : "for us, enterprise app developers"), is
>> not really an issue. Our first Flex app was created 8 years ago. It's
>> now a 2MB SWF (compressed) initial load. We never had any complaint
>> from any customer about load time.
>> On the other end, runtime performance *is* important (interactive).
>> 
>> In the end, what will make us choose Apache Royale over other options
>> (React being on top of the list) is mainly usability from the
>> developers' point of view, and interactive responsiveness, not "small
>> footprint".
>> 
>> If Apache Royale main target is enterprise applications (RIAs) we
>> believe it should favor usability over small footprint and short load
>> time and avoid "unnecessary" complexity.
>> Enterprise apps users do not have the same expectations as
>> "individuals" (web surfers). They favor consistency, robustness and
>> ergonomics over raw performances (but of course, runtime performance
>> must not go against ergonomics). Even on mobile devices, our customers
>> accept "long" load time because they know that they are loading an
>> enterprise app. Not a widget.
>> 
>> ***********************************************************************
>> ******************************
>> Classic Flex was about RIAs. We realize that we do not really know what
>> Apache Royale is about.
>> Is it RIAs ?
>> ***********************************************************************
>> ******************************
>> 
>> We believe that it should be clearly decided, as it will shape the
>> evolution of the project.
>> 
>> Some of us here (applications developers) are in the RIA domain. Others
>> might be in other domains where the trade-off are different.
>> 
>> In classic Flex, code size was not a concern : code was big (really big
>> !) but usability was great. It was an assumed choice, and I believe all
>> RIAs developers were quite aware of that choice. If code was really too
>> big, you could slice the app into modules and load on-demand.
>> Believe us, we never heard a user complaining about time lag when
>> switching from "payroll module" to "accounting module" (even if it
>> meant waiting for 30s.) : when you switch from one "universe" to
>> another, everybody think it is normal to have a lag.
>> 
>> On the other hand, it the dev team's goal is to create a "web site"
>> creation tool, please say it clearly ! It's quite a different goal, and
>> trade-off output will be quite different !
>> 
>> To summarize, we believe that, for enterprise application developers,
>> the "usability" criterion comes first, "fast" being second, and "small"
>> being last.
>> 
>> I'm pretty sure that all this will raise some comments !
>> 
>> Best regards,
>> 
>> Nicolas Granon
>> 
>> 
>> 
>> 
>>> -----Message d'origine-----
>>> De : Alex Harui [mailto:aharui@adobe.com.INVALID] Envoyé : mercredi 1
>>> novembre 2017 21:30 Ŕ : dev@royale.apache.org <ma...@royale.apache.org>; ngranon@idylog.com <ma...@idylog.com>
>>> Objet : Re: Event Metadata
>>> 
>>> That is one of the possible approaches.  The trade-off is, as you
>>> mention, having to filter out the right event vs all of the work re-
>>> dispatching events.  Right now the strand is the wrapping component.
>>> It doesn't have to be and maybe we should change that, but in order
>>> for MXML event attributes to work you have to dispatch off the
>>> wrapping component and that makes the beads want to dispatch off the
>>> strand/component and then you are back to filtering again.
>>> 
>>> One advantage of dispatching off the strand is that a bead that wants
>>> to get an event from another bead doesn't have to find that bead.  It
>>> can just listen to the strand.  It isn't any different than any other
>>> shared communication infrastructure.  You have to spend time
>> filtering
>>> or figuring out direct hookups.  I'm not sure there is a way to know
>>> what is faster/smaller.  It might differ based on the situation.
>>> 
>>> My 2 cents,
>>> -Alex
>>> 
>>> On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ngranon@idylog.com <ma...@idylog.com>>
>>> wrote:
>>> 
>>>> Excuse my naive comment :
>>>> 
>>>> In my opinion, we have two different situations :
>>>> 
>>>> Case 1 : I use a component, and I add one or more beads to it (in
>> the
>>>> source code where the component is used) (inlined).
>>>> Case 2 : I use a component that is *already* composed of one strand
>>> and
>>>> a number of beads (or none) (a reusable component)
>>>> 
>>>> Case 1 :
>>>> In my mind (as an app developer), I obviously know what I am doing.
>>>> 
>>>> It is quite logical, from my point of view, to have listeners
>>>> attached to the "component" (that is, indirectly, to the "strand
>>>> part") and other listeners (or same !) attached to the beads I am
>> interested in.
>>>> After all, if I understood clearly, a bead is a way to "add
>>>> functionality", right ?
>>>> Then, it is very logical to me to listen to events from that
>> specific
>>>> functionality bead) since I expressly added that piece of
>>> functionality.
>>>> I should not be confused by events with same name but from other
>>>> beads
>>>> : I only have to make sure that I listen to the "target" phase.
>>>> 
>>>> In MXML, component events could be captured from the "component"
>> tag,
>>>> and bead events from the bead sub-tags.
>>>> 
>>>> If a bead wants to listen to events from another bead, nothing
>>> prevents
>>>> it from doing so (Im not sure of that ??).
>>>> The metatags exposed by the strand as well as the metatags exposed
>> by
>>>> the beads would then be accessible.
>>>> 
>>>> Case 2 :
>>>> Maybe I use a component designed by someone else, or maybe I
>> designed
>>>> it myself.
>>>> It is the component developer's responsibility to manage "internal"
>>>> events and then to redispatch "beads" events as "component" events
>> if
>>>> needed (maybe under another event name).
>>>> A developer using a "wrapped" composite component should only listen
>>> to
>>>> "component" events (public events), not "bead event" (abstraction of
>>>> internal representation) The metatags exposed by the "wrapped"
>>>> component should be public events only.
>>>> 
>>>> Final case :
>>>> The wrapped component is composited from another wrapped component
>>> plus
>>>> some additional beads. In other words, it expends an reusable
>>> component
>>>> which already contains some beads.
>>>> In that case, the "inner" component (the base class) is considered
>> as
>>> a
>>>> strand and the global logic is the same as in case (2).
>>>> 
>>>> All in all, this is not very different from what happens in classic
>>>> Flex when building "complex " components...(which are really
>>>> composited, not simple subclasses).
>>>> 
>>>> Too naďve to be useful, maybe ???
>>>> 
>>>> Nicolas Granon
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> -----Message d'origine-----
>>>>> De : Peter Ent [mailto:pent@adobe.com.INVALID <ma...@adobe.com.INVALID>] Envoyé : mardi 31
>>>>> octobre 2017 20:39 Ŕ : dev@royale.apache.org <ma...@royale.apache.org> Objet : Re: Event
>>>>> Metadata (was Re: [GitHub] ...: Image not removed when src set to
>>>>> null
>>>>> 
>>>>> I typically use the strand as the central dispatcher for intra-
>> bead
>>>>> communication. Sometimes an event from a bead conflicts with an
>>> event
>>>>> dispatched by the strand to the "outside". For example, if a bead
>>>>> were to need to send a "change" event and another bead was
>>>>> listening for that event, "change" is pretty generic and an app
>>>>> writer who is also listening for change on that strand might get
>> the wrong event.
>>>>> 
>>>>> I have not developed any protocol to deal with this, but perhaps
>>>>> events used internally for components should prefix the event type
>>>>> with something (e.g., "_change") unique to indicate the event is
>>> internal.
>>>>> Events are really the only way we have of beads talking to each
>>> other.
>>>>> 
>>>>> We need to document what events a bead is doing to send and what
>> it
>>>>> is willing to accept and how it will be used. I confess I have not
>>>>> done that very often and for Royale to be useful, documentation
>>>>> like this has to be done. But we need a pattern of use established
>>>>> so there is consistency.
>>>>> 
>>>>> Let's say you have a bead that you do want to put into MXML and
>>>>> that bead produces events. The Drag and Drop work comes to mind.
>>>>> When you add a DragSource bead to a list, you the app writer,
>> might
>>>>> want to know when certain things happen, such as DRAG_START. The
>>>>> List does not have DRAG_START listed in its event metadata so
>>>>> dispatching this event from the List won't work for the app
>> writer.
>>>>> The app writer
>>> wants to do:
>>>>> <js:DragSource dragStart="myThing(event)" /> right in MXML.
>>>>> 
>>>>> As it turns out, this DRAG_START is also used internally by the
>>>>> drag controller so I think there is another class of events that
>> do
>>>>> get dispatched by beads but not on the strand, but on themselves.
>>>>> In
>>> this
>>>>> case, these events are not "internal" but public.
>>>>> 
>>>>> Both internal (dispatched by beads targeting the strand) and
>> public
>>>>> (dispatched by beads targeting themselves) can coexist nicely as
>>> long
>>>>> as we have some rules.
>>>>> 
>>>>> HTH
>>>>> ‹peter
>>>>> 
>>>>> On 10/31/17, 1:46 PM, "Alex Harui" <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
>> wrote:
>>>>> 
>>>>>> For 1) the rule already is that if you want to access an implicit
>>>>>> bead you have to explicitly declare it.  So if a bead is normally
>>>>>> brought
>>>>> in
>>>>>> via CSS, you instead declare that bead on the strand and make
>>>>> adjustments.
>>>>>> UIBase doesn't care how the beads get placed on the strand, and
>>>>>> all bead loading code is supposed to check the strand first
>> before
>>>>> grabbing
>>>>>> a default bead from CSS.  IOW, if it wasn't declared in MXML,
>> then
>>>>>> declare it in MXML in order to access it.
>>>>>> 
>>>>>> For 2) we are learning towards having beads dispatch their
>>> important
>>>>>> events off the strand instead of off of the bead. Otherwise we
>>>>>> have to add event forwarding code if people want to listen to the
>>>>>> containing component for events which is pretty normal if you
>>>>>> think of the component as a black box.  And then duplicate event
>>>>>> names does become
>>>>> an issue.
>>>>>> 
>>>>>> It will be interesting to see you try your EventListener bead and
>>>>>> see how it feels and if it is a lot of code or not.
>>>>>> 
>>>>>> Thanks,
>>>>>> -Alex
>>>>>> 
>>>>>> On 10/31/17, 10:08 AM, "Harbs" <harbs.lists@gmail.com <ma...@gmail.com>> wrote:
>>>>>> 
>>>>>>> The problems that come to mind with attaching the events to the
>>>>>>> beads
>>>>>>> are:
>>>>>>> 1. The beads are not necessarily declared in MXML, so that
>> leaves
>>>>>>> the question of how to address the beads via MXML.
>>>>>>> 2. More than one bead might dispatch the same event. To get them
>>>>>>> all, it seems like itąs necessary to attach the event listener
>> to
>>>>>>> the
>>>>> strand.
>>>>>>> 
>>>>>>>> On Oct 31, 2017, at 5:24 PM, Alex Harui
>>>>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Renaming thread.
>>>>>>>> 
>>>>>>>> Another option is for the beads themselves to have event
>>> metadata
>>>>>>>> for events they dispatch and either:
>>>>>>>> 1) the bead dispatches both off of itself and its strand, or
>>>>>>>> 2) certain addEventListener calls are passed to the strand.
>>>>>>>> 
>>>>>>>> That's sort of the general pattern for de-composing or
>>> "exploding"
>>>>> a
>>>>>>>> component.  And then the wrapping component doesn't need
>>> metadata
>>>>>>>> that won't apply to the beads declared.
>>>>>>>> 
>>>>>>>> Having a bead that can attach a particular kind of listener
>> and
>>>>> call
>>>>>>>> a  handler also fits in our patterns.  And similarly, a bead
>>>>>>>> that dispatches  platform-specific might be useful as well.
>>>>>>>> 
>>>>>>>> My 2 cents,
>>>>>>>> -Alex
>>>>>>>> 
>>>>>>>> On 10/31/17, 3:15 AM, "Harbs" <harbs.lists@gmail.com <ma...@gmail.com>> wrote:
>>>>>>>> 
>>>>>>>>> Good points.
>>>>>>>>> 
>>>>>>>>>> One issue to consider are whether a container of beads
>> should
>>>>>>>>>> be have  metadata about the events dispatched by its beads
>>> since
>>>>>>>>>> the changing of  beads could make that metadata incorrect.
>>> IMO,
>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
>>>>>>>>>> IDE could figure out what beads are  currently in play and
>>> aggregate
>>>>>>>>>> allowable events from those beads'
>>>>>>>>>> metadata someday.
>>>>>>>>> 
>>>>>>>>> Hmm. Not a simple problem. One approach we can take is to add
>>>>>>>>> metadata to  the component and include documentation on which
>>>>>>>>> beads are required for  the event to fire.
>>>>>>>>> 
>>>>>>>>> Of course this only takes care of more-or-less standard
>> beads.
>>>>>>>>> Optional
>>>>>>>>> beads that are generally not used would need another
>> mechanism
>>>>>>>>> to specify  event handlers in MXML (if that would be
>> supported).
>>>>>>>>> 
>>>>>>>>> Considering the łsmarter IDE approach˛, it seems like thereąs
>>>>>>>>> two
>>>>>>>>> problems:
>>>>>>>>> 1. The compiler needs to know that the attributes are OK.
>>>>>>>>> Currently, the  compiler will complain if you use an
>>> unrecognized
>>>>>>>>> tag.
>>>>>>>>> 2. Thereąs lots of ways to add beads, and itąs hard to know
>> if
>>> a
>>>>>>>>> specific  bead is actually added. They can be added using CSS,
>>> AS
>>>>>>>>> code and MXML.
>>>>>>>>> Dynamically following that flow in tooling seems like a
>>> *really*
>>>>>>>>> hard  problem.
>>>>>>>>> 
>>>>>>>>> Another idea would be to allow specifying event handlers in a
>>>>>>>>> format  something like this:
>>>>>>>>> <js:FooComponent id=łfoo˛>
>>>>>>>>> <js:events>
>>>>>>>>> <js:EventDescriptor type˛layoutNeeded˛
>>>>>>>>> handler=łhandleLayoutNeeded()˛/>
>>>>>>>>> </js:events>
>>>>>>>>> </js:FooComponent>
>>>>>>>>> 
>>>>>>>>> Iąm kind of liking this idea as it follows the pattern we
>>>>> currently
>>>>>>>>> have  for beads and styles. EventDescriptor could be
>> subclassed
>>>>>>>>> to have classes  of events which could offer code completion
>>>>>>>>> for the available event  types. There would not be enforcement
>>>>>>>>> that the events would actually be  dispatched, but I think it
>>>>>>>>> would
>>> be
>>>>>>>>> helpful and would allow users to  specify random event
>> handlers
>>>>>>>>> declaratively.
>>>>>>>>> 
>>>>>>>>>> Another issue to consider is cross-platform.  A component
>> may
>>>>>>>>>> not be able to dispatch the events listed in metadata on all
>>>>>>>>>> platforms.
>>>>>>>>> 
>>>>>>>>> It seems to me that metadata on cross-platform components
>>> should
>>>>>>>>> always  be cross-platform. If there are platform-specific
>>> events,
>>>>>>>>> they should not  be included or there should be a
>>>>>>>>> platform-specific component. Weąve  already solved the problem
>>>>>>>>> with mouse events by renaming the event  strings in the
>>>>>>>>> compiler depending on the
>>>>> target.
>>>>>>>>> (i.e. łdoubleClick˛ in  MXML becomes łdblclick˛ automatically
>>> for
>>>>> JS
>>>>>>>>> output). I think Mouse  events are an exception, but if there
>>> are
>>>>>>>>> any other events that fit this  exception, they should be
>>> handled
>>>>>>>>> the same way.
>>>>>>>>> 
>>>>>>>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
>>>>> <aharui@adobe.com.INVALID <ma...@adobe.com.INVALID>>
>>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Some Metadata is kept in the output, but events probably
>>> aren't.
>>>>>>>>>> 
>>>>>>>>>> One issue to consider are whether a container of beads
>> should
>>>>>>>>>> be have  metadata about the events dispatched by its beads
>>> since
>>>>>>>>>> the changing of  beads could make that metadata incorrect.
>>> IMO,
>>>>>>>>>> this has been a problem  in  Flex forever.  Maybe a smarter
>>>>>>>>>> IDE could figure out what beads are  currently in play and
>>> aggregate
>>>>>>>>>> allowable events from those beads'
>>>>>>>>>> metadata someday.
>>>>>>>>>> 
>>>>>>>>>> Another issue to consider is cross-platform.  A component
>> may
>>>>>>>>>> not be able to dispatch the events listed in metadata on all
>>>>>>>>>> platforms.
>>>>>>>>>> 
>>>>>>>>>> Also consider that on JS, events probably have to be
>>> propagated
>>>>>>>>>> from the  wrapped element to the strand so there is cost
>> there.
>>>>>>>>>> 
>>>>>>>>>> It is hopefully easy enough for anyone who wants to get an
>>>>>>>>>> event that  isn't already in metadata, to subclass, add the
>>>>>>>>>> metadata and any wiring.
>>>>>>>>>> 
>>>>>>>>>> My 2 cents,
>>>>>>>>>> -Alex
>>>>>>>>>> 
>>>>>>>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com <ma...@gmail.com>
>>>>>>>>>> <mailto:harbs.lists@gmail.com <ma...@gmail.com>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> Iąm not talking about adding events. Iąm talking about
>>>>>>>>>>> adding metadata  for *existing events* so they could be
>>>>>>>>>>> addressed in MXML.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>>>>>>>>>> <piotrzarzycki21@gmail.com <ma...@gmail.com>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> If you decide to add event that's fine with me. :) It is
>>> just
>>>>>>>>>>>> the  matter of  thinking about those Basic components from
>>>>>>>>>>>> my sight. I have started to  look  at them as something
>>>>>>>>>>>> which
>>>>> should
>>>>>>>>>>>> be closer to HTML than to the old  Flex  world. Rest of the
>>>>>>>>>>>> features should be provided by beads - if it is  possible
>>>>>>>>>>>> or by Express.
>>>>>>>>>>>> 
>>>>>>>>>>>> The exception could be and MDL from that which I would
>> like
>>>>>>>>>>>> to extend,  but  here I can think about those components as
>>>>>>>>>>>> they
>>>>> are
>>>>>>>>>>>> Express right now.
>>>>>>>>>>>> 
>>>>>>>>>>>> Piotr
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <harbs.lists@gmail.com <ma...@gmail.com>>:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Why? Unless it adds overhead, it seems to me like any
>>>>>>>>>>>>> event that can  be  added using addEventListener() should
>>>>>>>>>>>>> be addressable using MXML.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Iąm just not sure from a technical perspective whether
>> the
>>>>> MXML
>>>>>>>>>>>>> meta  tags  add overhead if not used.
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>>>>>>>>>> <piotrzarzycki21@gmail.com <ma...@gmail.com>>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi Harbs,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Some time ago there were discussion on Flex Dev which
>>> makes
>>>>> me
>>>>>>>>>>>>>> realize
>>>>>>>>>>>>> that
>>>>>>>>>>>>>> we should add event tags as long as they are reflecting
>>>>>>>>>>>>>> some native  HTML  api, unless we are in express. For
>>>>>>>>>>>>>> example we
>>>>> are
>>>>>>>>>>>>>> using in many  places  "change" event which is I believe
>>>>>>>>>>>>>> quite common in JS world, but I  would  avoid any
>>> additional
>>>>>>>>>>>>>> custom one. In the other world Let's answer to  the
>>>>>>>>>>>>>> question in following case - Does "img" in HTML world
>> have
>>> "load"
>>>>>>>>>>>>>> event ?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Piotr
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs
>> <harbs.lists@gmail.com <ma...@gmail.com>>:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> This does raise a good question:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Should we be adding MXML meta tags for all supported
>>> events?
>>>>>>>>>>>>>>> It seems
>>>>>>>>>>>>> like
>>>>>>>>>>>>>>> a desirable thing to have, and there are currently very
>>>>>>>>>>>>>>> few event  tags.
>>>>>>>>>>>>> Iąm
>>>>>>>>>>>>>>> not clear on whether the meta-tags effect the end
>> result
>>>>>>>>>>>>>>> of code size.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <git@apache.org <ma...@apache.org>>
>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> justinmclean commented on issue #60: Image not removed
>>>>>>>>>>>>>>>> when src set to
>>>>>>>>>>>>>>> null
>>>>>>>>>>>>>>>> URL:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>> 
>>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3 <https://na01.safelinks.protection.outlook.com/?url=https%3><
>>> 
>>>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%25 <https://na01.safelinks.protection.outlook.com/?url=https%25>
>>>>>>>>>>>>>> 3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> gi
>>>>>>>>>>>>>>>> th
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> Fg
>>>>>>>>>>>>>>>> ith>
>>>>>>>>>>>>>>>> ub.com <http://ub.com/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> ub
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> .com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>>>>>>>>> %7
>>>>> C
>>>>>>>>>>>>>>>> fa7
>>>>>>>>>>>>>>>> b
>>>>>>>>>>>>>>>> 1b
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>>>>>>>>> at
>>>>> a
>>>>>>>>>>>>>>>> =r6
>>>>>>>>>>>>>>>> H
>>>>>>>>>>>>>>>> O%
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
>>>>>>>>>>>>>>>> 2F
>>>>> a
>>>>>>>>>>>>>>>> pac
>>>>>>>>>>>>>>>> h
>>>>>>>>>>>>>>>> e%
>>>>>>>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
>>>>>>>>>>>>>>>> ec
>>>>> e
>>>>>>>>>>>>>>>> e1%
>>>>>>>>>>>>>>>> 7
>>>>>>>>>>>>>>>> C0
>>>>>>>>>>>>>>>> %7
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
>>>>>>>>>>>>>>>> WV
>>>>> q
>>>>>>>>>>>>>>>> y17
>>>>>>>>>>>>>>>> x
>>>>>>>>>>>>>>>> Fb
>>>>>>>>>>>>>>>> if
>>>>>>>>>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>>>>>>>>>> issuecomment-340524197
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> This code fails to compile:
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> xmlns:fx="https://na01.safelinks.protection.outlook.com/?u <https://na01.safelinks.protection.outlook.com/?u>
>>>>>>>>>>>>>>>> rl
>>>>> =
>>>>>>>>>>>>>>>> htt
>>>>>>>>>>>>>>>> p
>>>>>>>>>>>>>>>> %3
>>>>>>>>>>>>>>>> A%
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>>> 
>>>>>>>>>>>>>>>> 2F%2Fns.adobe.com <http://2fns.adobe.com/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> 2f
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ns.adobe.com <http://ns.adobe.com/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5
>>>>>>>>>>>>>>>> 20
>>>>> 4
>>>>>>>>>>>>>>>> 860
>>>>>>>>>>>>>>>> d
>>>>>>>>>>>>>>>> 3%
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
>>>>>>>>>>>>>>>> 14
>>>>> 1
>>>>>>>>>>>>>>>> 82&
>>>>>>>>>>>>>>>> s
>>>>>>>>>>>>>>>> da
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
>>>>>>>>>>>>>>>> =0
>>>>>> 
>>>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>>>> m
>>>>>>>>>>>>>>>> xm
>>>>>>>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>>>>>> C6
>>>>> 3
>>>>>>>>>>>>>>>> 644
>>>>>>>>>>>>>>>> 9
>>>>>>>>>>>>>>>> 84
>>>>>>>>>>>>>>>> 71
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
>>>>>>>>>>>>>>>> FK
>>>>> d
>>>>>>>>>>>>>>>> zAe
>>>>>>>>>>>>>>>> 4
>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>> Bn
>>>>>>>>>>>>>>>> o%3D&reserved=0"
>>>>>>>>>>>>>>>> 
>>>>> xmlns:js="library://ns.apache.org/royale/basic <library://ns.apache.org/royale/basic>
>>>>>>>>>>>>>>>> <library://ns.apache.org/royale/basic <library://ns.apache.org/royale/basic>>">
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
>>>>>>>>>>>>>>>>      import org.apache.flex.events.IEventDispatcher;
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>      public function blankimage():void {
>>>>>>>>>>>>>>>>          image.visible = false;
>>>>>>>>>>>>>>>>          image.src =
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>> ww
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>> ww>
>>>>>>>>>>>>>>>> .apache.org <http://apache.org/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> ap
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ache.org <http://ache.org/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
>>>>>>>>>>>>>>>> 60
>>>>> d
>>>>>>>>>>>>>>>> 3%7
>>>>>>>>>>>>>>>> C
>>>>>>>>>>>>>>>> fa
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>>>>>>>>>>>>>>>> 2&
>>>>> s
>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>> =w
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>>>>>>>>>>>>>>>> 2F
>>>>> &
>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>> =0
>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>>>>>>>>>>>>>>>> 09
>>>>> &
>>>>>>>>>>>>>>>> sda
>>>>>>>>>>>>>>>> t
>>>>>>>>>>>>>>>> a=
>>>>>>>>>>>>>>>> pn
>>>>>>>>>>>>>>>> 
>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>>>>> foundation/press/kit/
>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>      public function showImage():void {
>>>>>>>>>>>>>>>>          image.visible = true;
>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>      ]]></fx:Script>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>  <js:valuesImpl>
>>>>>>>>>>>>>>>>      <js:SimpleCSSValuesImpl/>
>>>>>>>>>>>>>>>>  </js:valuesImpl>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>  <js:initialView>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>      <js:View>
>>>>>>>>>>>>>>>>          <js:Container id="startPage" visible="true"
>>>>>>>>>>>>>>>> width="100%">
>>>>>>>>>>>>>>>>              <js:beads>
>>>>>>>>>>>>>>>>                  <js:VerticalLayout />
>>>>>>>>>>>>>>>>              </js:beads>
>>>>>>>>>>>>>>>>              <js:Image id="image"
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=ht <https://na01.safelinks.protection.outlook.com/?url=ht>
>>>>>>>>>>>>>>>> tp
>>>>> s
>>>>>>>>>>>>>>>> %3A
>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Fwww.apache.org <http://fwww.apache.org/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> fw
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ww.apache.org <http://ww.apache.org/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
>>>>>>>>>>>>>>>> 52
>>>>> 0
>>>>>>>>>>>>>>>> 486
>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>> d3
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>>>>>>>>>>>>>>>> 61
>>>>> 4
>>>>>>>>>>>>>>>> 182
>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>>>>>>>>>>>>>>>> ve
>>>>> d
>>>>>>>>>>>>>>>> =0>
>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>>>> 35
>>>>> 5
>>>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>>>>> height="50%"
>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>>>>>>>              <js:TextButton text="Blank"
>>>>> click="blankimage()"
>>>>>>>>>>>>>>>> />
>>>>>>>>>>>>>>>>          </js:Container>
>>>>>>>>>>>>>>>>      </js:View>
>>>>>>>>>>>>>>>>  </js:initialView>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> </js:Application>
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> With this error:
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> /Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
>>>>>>>>>>>>>>>> .m
>>>>> x
>>>>>>>>>>>>>>>> ml(
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> 6)
>>>>>>>>>>>>>>>> :
>>>>>>>>>>>>>>> col: 130 This attribute is unexpected. It will be
>>> ignored.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>              <js:Image id="image"
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=ht <https://na01.safelinks.protection.outlook.com/?url=ht>
>>>>>>>>>>>>>>>> tp
>>>>> s
>>>>>>>>>>>>>>>> %3A
>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Fwww.apache.org <http://fwww.apache.org/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> fw
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ww.apache.org <http://ww.apache.org/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
>>>>>>>>>>>>>>>> 52
>>>>> 0
>>>>>>>>>>>>>>>> 486
>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>>> d3
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
>>>>>>>>>>>>>>>> 61
>>>>> 4
>>>>>>>>>>>>>>>> 182
>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
>>>>>>>>>>>>>>>> ve
>>>>> d
>>>>>>>>>>>>>>>> =0>
>>>>>>>>>>>>>>>> %
>>>>>>>>>>>>>>>> 2F
>>>>>>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>>>> 35
>>>>> 5
>>>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>>>> &
>>>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>>>> at
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
>>>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>>>>> height="50%"
>>>>>>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I assume the only way to do this would be to add a
>> hard
>>>>>>>>>>>>>>>> coded event
>>>>>>>>>>>>>>> listener manually like so?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>>  <fx:Script><![CDATA[
>>>>>>>>>>>>>>>>      public function blankimage():void {
>>>>>>>>>>>>>>>>          image.visible = false;
>>>>>>>>>>>>>>>>          image.src =
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>> ww
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https% <https://na01.safelinks.protection.outlook.com/?url=https%>
>>>>>>>>>>>>>>>> 3A
>>>>> %
>>>>>>>>>>>>>>>> 2F%
>>>>>>>>>>>>>>>> 2
>>>>>>>>>>>>>>>> Fw
>>>>>>>>>>>>>>>> ww>
>>>>>>>>>>>>>>>> .apache.org <http://apache.org/>
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3 <https://na01.safelinks.protection.outlook.com/?url=http%3>
>>>>>>>>>>>>>>>> A%
>>>>> 2
>>>>>>>>>>>>>>>> F%2
>>>>>>>>>>>>>>>> F
>>>>>>>>>>>>>>>> ap
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> ache.org <http://ache.org/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
>>>>>>>>>>>>>>>> 60
>>>>> d
>>>>>>>>>>>>>>>> 3%7
>>>>>>>>>>>>>>>> C
>>>>>>>>>>>>>>>> fa
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
>>>>>>>>>>>>>>>> 2&
>>>>> s
>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>> =w
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
>>>>>>>>>>>>>>>> 2F
>>>>> &
>>>>>>>>>>>>>>>> dat
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>> =0
>>>>>>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>>>>>>>>>>>>>>>> 09
>>>>> &
>>>>>>>>>>>>>>>> sda
>>>>>>>>>>>>>>>> t
>>>>>>>>>>>>>>>> a=
>>>>>>>>>>>>>>>> pn
>>>>>>>>>>>>>>>> 
>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>>>>> foundation/press/kit/
>>>>>>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>>>>>>          image.addEventListener("layoutNeeded",
>>>>> showImage);
>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>      public function showImage(event:Event):void {
>>>>>>>>>>>>>>>>          image.visible = true;
>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>      ]]></fx:Script>
>>>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> -------------------------------------------------------
>> -
>>>>>>>>>>>>>>>> -
>>> -
>>>>>>>>>>>>>>>> --
>>>>> -
>>>>>>>>>>>>>>>> ---  This is an automated message from the Apache Git
>>>>>>>>>>>>>>>> Service.
>>>>>>>>>>>>>>>> To respond to the message, please log on GitHub and
>> use
>>>>>>>>>>>>>>>> the URL above to go to the specific comment.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> For queries about this service, please contact
>>>>>>>>>>>>>>>> Infrastructure
>>>>>>>>>>>>>>>> at:
>>>>>>>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org> <mailto:users@infra.apache.org <ma...@infra.apache.org>>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> With regards,
>>>>>>>>>>>>>>>> Apache Git Services
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Piotr Zarzycki
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> mobile: +48 880 859 557
>>>>>>>>>>>>>> skype: zarzycki10
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> LinkedIn:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>> 
>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2 <https://na01.safelinks.protection.outlook.com/?url=http%3A%2><
>>> 
>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%25 <https://na01.safelinks.protection.outlook.com/?url=http%3A%25>
>>>>>>>>>>>> 2>
>>>>>>>>>>>>>> F%
>>>>> 2
>>>>>>>>>>>>>> Fww
>>>>>>>>>>>>>> w
>>>>>>>>>>>>>> .l
>>>>>>>>>>>>>> in
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>> 2F
>>>>> %
>>>>>>>>>>>>>> 2Fw
>>>>>>>>>>>>>> w
>>>>>>>>>>>>>> w.
>>>>>>>>>>>>>> lin>
>>>>>>>>>>>>>> kedin.com <http://kedin.com/>
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>> 2F
>>>>> %
>>>>>>>>>>>>>> 2Fk
>>>>>>>>>>>>>> e
>>>>>>>>>>>>>> di
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> n.com <http://n.com/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
>>>>>>>>>>>>>> 7C
>>>>> f
>>>>>>>>>>>>>> a7b
>>>>>>>>>>>>>> 1
>>>>>>>>>>>>>> b5
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
>>>>>>>>>>>>>> =M
>>>>> m
>>>>>>>>>>>>>> 3Kn
>>>>>>>>>>>>>> X
>>>>>>>>>>>>>> %2
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
>>>>>>>>>>>>>> io
>>>>> t
>>>>>>>>>>>>>> rza
>>>>>>>>>>>>>> r
>>>>>>>>>>>>>> zy
>>>>>>>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> 38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
>>>>>>>>>>>>>> 13
>>>>> 0
>>>>>>>>>>>>>> 355
>>>>>>>>>>>>>> 6
>>>>>>>>>>>>>> 09
>>>>>>>>>>>>>> &s
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
>>>>>>>>>>>>>> se
>>>>> r
>>>>>>>>>>>>>> ved
>>>>>>>>>>>>>> =
>>>>>>>>>>>>>> 0
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A <https://na01.safelinks.protection.outlook.com/?url=https%3A>
>>>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>> p
>>>>>>>>>>>>>> l.
>>>>>>>>>>>>>> li
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A <https://na01.safelinks.protection.outlook.com/?url=https%3A>
>>>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>> p
>>>>>>>>>>>>>> l.
>>>>>>>>>>>>>> li>
>>>>>>>>>>>>>> nkedin.com <http://nkedin.com/>
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>>>>> 2F
>>>>> %
>>>>>>>>>>>>>> 2Fn
>>>>>>>>>>>>>> k
>>>>>>>>>>>>>> ed
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> in.com <http://in.com/>%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>>>>>>> %7
>>>>> C
>>>>>>>>>>>>>> fa7
>>>>>>>>>>>>>> b
>>>>>>>>>>>>>> 1b
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>>>>>>>>>>>>>> a=
>>>>> 4
>>>>>>>>>>>>>> v8C
>>>>>>>>>>>>>> S
>>>>>>>>>>>>>> fu
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
>>>>>>>>>>>>>> io
>>>>> t
>>>>>>>>>>>>>> r-z
>>>>>>>>>>>>>> a
>>>>>>>>>>>>>> rz
>>>>>>>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> 6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>>>>>>>>>>>>> %7
>>>>> C
>>>>>>>>>>>>>> 0%7
>>>>>>>>>>>>>> C
>>>>>>>>>>>>>> 63
>>>>>>>>>>>>>> 64
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> 49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
>>>>>>>>>>>>>> FH
>>>>> q
>>>>>>>>>>>>>> EAK
>>>>>>>>>>>>>> N
>>>>>>>>>>>>>> o%
>>>>>>>>>>>>>> 3D
>>>>>>>>>>>>>> &reserved=0>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> GitHub:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>> 
>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%<
>>> 
>>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>> 5>
>>>>>>>>>>>>>> 2F
>>>>> %
>>>>>>>>>>>>>> 2Fg
>>>>>>>>>>>>>> i
>>>>>>>>>>>>>> th
>>>>>>>>>>>>>> ub
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A
>>>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>>>> %2F
>>>>>>>>>>>>>> g
>>>>>>>>>>>>>> it
>>>>>>>>>>>>>> hub>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> .com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>>>>>> 20
>>>>> 8
>>>>>>>>>>>>>> d51
>>>>>>>>>>>>>> f
>>>>>>>>>>>>>> c3
>>>>>>>>>>>>>> 8b
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> 07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
>>>>>>>>>>>>>> 35
>>>>> 5
>>>>>>>>>>>>>> 609
>>>>>>>>>>>>>> &
>>>>>>>>>>>>>> sd
>>>>>>>>>>>>>> at
>>>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
>>>>>>>>>>>>>> 0
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> 
>>>>>>>>>>>> Piotr Zarzycki
>>>>>>>>>>>> 
>>>>>>>>>>>> mobile: +48 880 859 557
>>>>>>>>>>>> skype: zarzycki10
>>>>>>>>>>>> 
>>>>>>>>>>>> LinkedIn:
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>> 
>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<
>>> 
>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>> 5>
>>>>>>>>>>>> 2F
>>>>> www.
>>>>>>>>>>>> l
>>>>>>>>>>>> in
>>>>>>>>>>>> ke
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>> www
>>>>>>>>>>>> .
>>>>>>>>>>>> li
>>>>>>>>>>>> nke>
>>>>>>>>>>>> din.com
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>> din
>>>>>>>>>>>> .
>>>>>>>>>>>> co
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>>>>>>>>>>>> 1b
>>>>> 5
>>>>>>>>>>>> a7b
>>>>>>>>>>>> 3
>>>>>>>>>>>> 44
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> 38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
>>>>>>>>>>>> HJ
>>>>> t
>>>>>>>>>>>> Y44
>>>>>>>>>>>> X
>>>>>>>>>>>> dR
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
>>>>>>>>>>>> at
>>>>> a
>>>>>>>>>>>> =02
>>>>>>>>>>>> %
>>>>>>>>>>>> 7C
>>>>>>>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> 7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
>>>>>>>>>>>> 60
>>>>> 9
>>>>>>>>>>>> &sd
>>>>>>>>>>>> a
>>>>>>>>>>>> ta
>>>>>>>>>>>> =M
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>> F%
>>>>> 2
>>>>>>>>>>>> Fpl
>>>>>>>>>>>> .
>>>>>>>>>>>> li
>>>>>>>>>>>> nk
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>> F%
>>>>> 2
>>>>>>>>>>>> Fpl
>>>>>>>>>>>> .
>>>>>>>>>>>> li
>>>>>>>>>>>> nk>
>>>>>>>>>>>> edin.com
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>> edi
>>>>>>>>>>>> n
>>>>>>>>>>>> .c
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
>>>>>>>>>>>> b1
>>>>> b
>>>>>>>>>>>> 5a7
>>>>>>>>>>>> b
>>>>>>>>>>>> 34
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> 438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
>>>>>>>>>>>> 3i
>>>>> L
>>>>>>>>>>>> sgF
>>>>>>>>>>>> 8
>>>>>>>>>>>> wv
>>>>>>>>>>>> 
>>>>>>>>>>>> dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
>>>>> zarzycki
>>>>>>>>>>>> -92
>>>>>>>>>>>> a
>>>>>>>>>>>> 53
>>>>>>>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>>>> C6
>>>>> 3
>>>>>>>>>>>> 644
>>>>>>>>>>>> 9
>>>>>>>>>>>> 84
>>>>>>>>>>>> 71
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> 30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
>>>>>>>>>>>> %3
>>>>> D
>>>>>>>>>>>> &re
>>>>>>>>>>>> s
>>>>>>>>>>>> er
>>>>>>>>>>>> ve
>>>>>>>>>>>> d=0>
>>>>>>>>>>>> 
>>>>>>>>>>>> GitHub:
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>>>>> %2
>>>>> F
>>>>>>>>>>>> git
>>>>>>>>>>>> h
>>>>>>>>>>>> ub
>>>>>>>>>>>> .c
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>>>>>>>>>>>> F%
>>>>> 2
>>>>>>>>>>>> Fgi
>>>>>>>>>>>> t
>>>>>>>>>>>> hu
>>>>>>>>>>>> b.c>
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
>>>>>>>>>>>> 51
>>>>> f
>>>>>>>>>>>> c38
>>>>>>>>>>>> b
>>>>>>>>>>>> 07
>>>>>>>>>>>> %7
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>> 
>>>>>>>>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>>>>>>> &s
>>>>> d
>>>>>>>>>>>> ata
>>>>>>>>>>>> =
>>>>>>>>>>>> mi
>>>>>>>>>>>> 12
>>>>>>>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0


RE: Event Metadata

Posted by Idylog - Nicolas Granon <ng...@idylog.com>.
This is not only a "component weight" choice (that would be easy!).

It also pertains to architectural/structural choices (component lifecycle,
ease of styling/theming, events management...).

At this time, we feel that Apache Royale could be viable path, but we
absolutely need a strong (Flex equivalent) localization (resource manager)
solution.

We also need a good understanding of how we can re-develop our (multiple)
custom item renderers/editors. We do not really understand royale components
lifecycle...(compared with Flex lifecycle). And since we often present lists
(datagrid, usually, and advanceddatagrids too with hierarchical datasources)
containing hundreds of items, itemrenderers' virtualization seems mandatory.
We do not have much information about those points...

We would be happy to collaborate with the dev team.

Would you be interested in a "breakdown" of all the classes that we
currently use ? (with a "use count" and a "priority mark" ?)

We have still two months evaluation work before making our decision...

Nicolas Granon




> -----Message d'origine-----
> De : Yishay Weiss [mailto:yishayjobs@hotmail.com]
> Envoyé : jeudi 2 novembre 2017 08:39
> À : dev@royale.apache.org; ngranon@idylog.com
> Objet : RE: Event Metadata
> 
> Hi Nicolas,
> 
> Very good perspective.
> 
> I think Royale’s philosophy is to allow different component sets for
> different user types. The two obvious ones that exist right now are
> Basic and Express. Basic emphasizes small and fast, while Express
> emphasizes usable.
> 
> A lot of the discussions you’ll see on the dev list pertain to the
> Basic set because that should serve as the basis for other sets. In a
> sense it’s the core of the framework and we want to keep it as
> performant as possible.
> 
> I think it’s great that you maintain an app developer’s perspective. It
> should motivate us to invest more time in usability and expand the
> Express component set. Alex has been talking about ‘adopting’ another
> dev team to facilitate their way to a production Royale app. If you
> choose to go on that path, I’m sure the usability issues will receive
> close attention and the Express component set will benefit.
> 
> Thanks,
> Yishay
> 
> From: Idylog - Nicolas Granon<ma...@idylog.com>
> Sent: Thursday, November 2, 2017 12:59 AM
> To: dev@royale.apache.org<ma...@royale.apache.org>
> Subject: RE: Event Metadata
> 
> Thank you for your answer.
> 
> You say that there is no sure way to know which is faster/smaller.
> 
> This somewhat joins your comment about my suggestion regarding
> "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24"
> thread) where you speak about "usability vs code size".
> 
> At some point, you have to choose your target (no pun intended). I
> mean, you have to choose if the SDK main "philosophy" is "small", or
> "fast" or "usable" ("main" meaning that is does not ignore the other
> options, but is considered prevalent).
> 
> Do not forget that (enterprise) Flex Applications have typical long
> load delays : we do not care if an application has a 20s. or 30s. load
> time (2mn would be excessive!).
> We compare with "local install" applications like, say Excel, or
> Photoshop, or accounting/payroll/ or any enterprise integrated
> management software (ERPs).
> We definitely do *not* compare with a web site ! (where we want load
> time under 3 seconds at most).
> 
> Did you ever try to load a Sage(tm) "cloud" application ? (I do not
> blame Sage(tm). It's just an example. I could have talked about SAP(tm)
> or any other "cloud enterprise management software").
> Load time is about 1mn30s at best ! Really.
> Or, check Photoshop (local install) load time.
> 
> Code size, for us, (I insist : "for us, enterprise app developers"), is
> not really an issue. Our first Flex app was created 8 years ago. It's
> now a 2MB SWF (compressed) initial load. We never had any complaint
> from any customer about load time.
> On the other end, runtime performance *is* important (interactive).
> 
> In the end, what will make us choose Apache Royale over other options
> (React being on top of the list) is mainly usability from the
> developers' point of view, and interactive responsiveness, not "small
> footprint".
> 
> If Apache Royale main target is enterprise applications (RIAs) we
> believe it should favor usability over small footprint and short load
> time and avoid "unnecessary" complexity.
> Enterprise apps users do not have the same expectations as
> "individuals" (web surfers). They favor consistency, robustness and
> ergonomics over raw performances (but of course, runtime performance
> must not go against ergonomics). Even on mobile devices, our customers
> accept "long" load time because they know that they are loading an
> enterprise app. Not a widget.
> 
> ***********************************************************************
> ******************************
> Classic Flex was about RIAs. We realize that we do not really know what
> Apache Royale is about.
> Is it RIAs ?
> ***********************************************************************
> ******************************
> 
> We believe that it should be clearly decided, as it will shape the
> evolution of the project.
> 
> Some of us here (applications developers) are in the RIA domain. Others
> might be in other domains where the trade-off are different.
> 
> In classic Flex, code size was not a concern : code was big (really big
> !) but usability was great. It was an assumed choice, and I believe all
> RIAs developers were quite aware of that choice. If code was really too
> big, you could slice the app into modules and load on-demand.
> Believe us, we never heard a user complaining about time lag when
> switching from "payroll module" to "accounting module" (even if it
> meant waiting for 30s.) : when you switch from one "universe" to
> another, everybody think it is normal to have a lag.
> 
> On the other hand, it the dev team's goal is to create a "web site"
> creation tool, please say it clearly ! It's quite a different goal, and
> trade-off output will be quite different !
> 
> To summarize, we believe that, for enterprise application developers,
> the "usability" criterion comes first, "fast" being second, and "small"
> being last.
> 
> I'm pretty sure that all this will raise some comments !
> 
> Best regards,
> 
> Nicolas Granon
> 
> 
> 
> 
> > -----Message d'origine-----
> > De : Alex Harui [mailto:aharui@adobe.com.INVALID] Envoyé : mercredi 1
> > novembre 2017 21:30 À : dev@royale.apache.org; ngranon@idylog.com
> > Objet : Re: Event Metadata
> >
> > That is one of the possible approaches.  The trade-off is, as you
> > mention, having to filter out the right event vs all of the work re-
> > dispatching events.  Right now the strand is the wrapping component.
> > It doesn't have to be and maybe we should change that, but in order
> > for MXML event attributes to work you have to dispatch off the
> > wrapping component and that makes the beads want to dispatch off the
> > strand/component and then you are back to filtering again.
> >
> > One advantage of dispatching off the strand is that a bead that wants
> > to get an event from another bead doesn't have to find that bead.  It
> > can just listen to the strand.  It isn't any different than any other
> > shared communication infrastructure.  You have to spend time
> filtering
> > or figuring out direct hookups.  I'm not sure there is a way to know
> > what is faster/smaller.  It might differ based on the situation.
> >
> > My 2 cents,
> > -Alex
> >
> > On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ng...@idylog.com>
> > wrote:
> >
> > >Excuse my naive comment :
> > >
> > >In my opinion, we have two different situations :
> > >
> > >Case 1 : I use a component, and I add one or more beads to it (in
> the
> > >source code where the component is used) (inlined).
> > >Case 2 : I use a component that is *already* composed of one strand
> > and
> > >a number of beads (or none) (a reusable component)
> > >
> > >Case 1 :
> > >In my mind (as an app developer), I obviously know what I am doing.
> > >
> > >It is quite logical, from my point of view, to have listeners
> > >attached to the "component" (that is, indirectly, to the "strand
> > >part") and other listeners (or same !) attached to the beads I am
> interested in.
> > >After all, if I understood clearly, a bead is a way to "add
> > >functionality", right ?
> > >Then, it is very logical to me to listen to events from that
> specific
> > >functionality bead) since I expressly added that piece of
> > functionality.
> > >I should not be confused by events with same name but from other
> > >beads
> > >: I only have to make sure that I listen to the "target" phase.
> > >
> > >In MXML, component events could be captured from the "component"
> tag,
> > >and bead events from the bead sub-tags.
> > >
> > >If a bead wants to listen to events from another bead, nothing
> > prevents
> > >it from doing so (Im not sure of that ??).
> > >The metatags exposed by the strand as well as the metatags exposed
> by
> > >the beads would then be accessible.
> > >
> > >Case 2 :
> > >Maybe I use a component designed by someone else, or maybe I
> designed
> > >it myself.
> > >It is the component developer's responsibility to manage "internal"
> > >events and then to redispatch "beads" events as "component" events
> if
> > >needed (maybe under another event name).
> > >A developer using a "wrapped" composite component should only listen
> > to
> > >"component" events (public events), not "bead event" (abstraction of
> > >internal representation) The metatags exposed by the "wrapped"
> > >component should be public events only.
> > >
> > >Final case :
> > >The wrapped component is composited from another wrapped component
> > plus
> > >some additional beads. In other words, it expends an reusable
> > component
> > >which already contains some beads.
> > >In that case, the "inner" component (the base class) is considered
> as
> > a
> > >strand and the global logic is the same as in case (2).
> > >
> > >All in all, this is not very different from what happens in classic
> > >Flex when building "complex " components...(which are really
> > >composited, not simple subclasses).
> > >
> > >Too naïve to be useful, maybe ???
> > >
> > >Nicolas Granon
> > >
> > >
> > >
> > >
> > >> -----Message d'origine-----
> > >> De : Peter Ent [mailto:pent@adobe.com.INVALID] Envoyé : mardi 31
> > >> octobre 2017 20:39 À : dev@royale.apache.org Objet : Re: Event
> > >> Metadata (was Re: [GitHub] ...: Image not removed when src set to
> > >> null
> > >>
> > >> I typically use the strand as the central dispatcher for intra-
> bead
> > >> communication. Sometimes an event from a bead conflicts with an
> > event
> > >> dispatched by the strand to the "outside". For example, if a bead
> > >> were to need to send a "change" event and another bead was
> > >> listening for that event, "change" is pretty generic and an app
> > >> writer who is also listening for change on that strand might get
> the wrong event.
> > >>
> > >> I have not developed any protocol to deal with this, but perhaps
> > >> events used internally for components should prefix the event type
> > >> with something (e.g., "_change") unique to indicate the event is
> > internal.
> > >> Events are really the only way we have of beads talking to each
> > other.
> > >>
> > >> We need to document what events a bead is doing to send and what
> it
> > >> is willing to accept and how it will be used. I confess I have not
> > >> done that very often and for Royale to be useful, documentation
> > >> like this has to be done. But we need a pattern of use established
> > >> so there is consistency.
> > >>
> > >> Let's say you have a bead that you do want to put into MXML and
> > >> that bead produces events. The Drag and Drop work comes to mind.
> > >> When you add a DragSource bead to a list, you the app writer,
> might
> > >> want to know when certain things happen, such as DRAG_START. The
> > >> List does not have DRAG_START listed in its event metadata so
> > >> dispatching this event from the List won't work for the app
> writer.
> > >> The app writer
> > wants to do:
> > >> <js:DragSource dragStart="myThing(event)" /> right in MXML.
> > >>
> > >> As it turns out, this DRAG_START is also used internally by the
> > >> drag controller so I think there is another class of events that
> do
> > >> get dispatched by beads but not on the strand, but on themselves.
> > >> In
> > this
> > >> case, these events are not "internal" but public.
> > >>
> > >> Both internal (dispatched by beads targeting the strand) and
> public
> > >> (dispatched by beads targeting themselves) can coexist nicely as
> > long
> > >> as we have some rules.
> > >>
> > >> HTH
> > >> ‹peter
> > >>
> > >> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID>
> wrote:
> > >>
> > >> >For 1) the rule already is that if you want to access an implicit
> > >> >bead you have to explicitly declare it.  So if a bead is normally
> > >> >brought
> > >> in
> > >> >via CSS, you instead declare that bead on the strand and make
> > >> adjustments.
> > >> >UIBase doesn't care how the beads get placed on the strand, and
> > >> >all bead loading code is supposed to check the strand first
> before
> > >> grabbing
> > >> >a default bead from CSS.  IOW, if it wasn't declared in MXML,
> then
> > >> >declare it in MXML in order to access it.
> > >> >
> > >> >For 2) we are learning towards having beads dispatch their
> > important
> > >> >events off the strand instead of off of the bead. Otherwise we
> > >> >have to add event forwarding code if people want to listen to the
> > >> >containing component for events which is pretty normal if you
> > >> >think of the component as a black box.  And then duplicate event
> > >> >names does become
> > >> an issue.
> > >> >
> > >> >It will be interesting to see you try your EventListener bead and
> > >> >see how it feels and if it is a lot of code or not.
> > >> >
> > >> >Thanks,
> > >> >-Alex
> > >> >
> > >> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
> > >> >
> > >> >>The problems that come to mind with attaching the events to the
> > >> >>beads
> > >> >>are:
> > >> >>1. The beads are not necessarily declared in MXML, so that
> leaves
> > >> >>the question of how to address the beads via MXML.
> > >> >>2. More than one bead might dispatch the same event. To get them
> > >> >>all, it seems like it¹s necessary to attach the event listener
> to
> > >> >>the
> > >> strand.
> > >> >>
> > >> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui
> > >> >>><ah...@adobe.com.INVALID>
> > >> >>>wrote:
> > >> >>>
> > >> >>> Renaming thread.
> > >> >>>
> > >> >>> Another option is for the beads themselves to have event
> > metadata
> > >> >>> for events they dispatch and either:
> > >> >>> 1) the bead dispatches both off of itself and its strand, or
> > >> >>> 2) certain addEventListener calls are passed to the strand.
> > >> >>>
> > >> >>> That's sort of the general pattern for de-composing or
> > "exploding"
> > >> a
> > >> >>> component.  And then the wrapping component doesn't need
> > metadata
> > >> >>> that won't apply to the beads declared.
> > >> >>>
> > >> >>> Having a bead that can attach a particular kind of listener
> and
> > >> call
> > >> >>>a  handler also fits in our patterns.  And similarly, a bead
> > >> >>>that dispatches  platform-specific might be useful as well.
> > >> >>>
> > >> >>> My 2 cents,
> > >> >>> -Alex
> > >> >>>
> > >> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
> > >> >>>
> > >> >>>> Good points.
> > >> >>>>
> > >> >>>>> One issue to consider are whether a container of beads
> should
> > >> >>>>>be have  metadata about the events dispatched by its beads
> > since
> > >> >>>>>the changing of  beads could make that metadata incorrect.
> > IMO,
> > >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter
> > >> >>>>>IDE could figure out what beads are  currently in play and
> > aggregate
> > >> >>>>>allowable events from those beads'
> > >> >>>>> metadata someday.
> > >> >>>>
> > >> >>>> Hmm. Not a simple problem. One approach we can take is to add
> > >> >>>>metadata to  the component and include documentation on which
> > >> >>>>beads are required for  the event to fire.
> > >> >>>>
> > >> >>>> Of course this only takes care of more-or-less standard
> beads.
> > >> >>>>Optional
> > >> >>>> beads that are generally not used would need another
> mechanism
> > >> >>>>to specify  event handlers in MXML (if that would be
> supported).
> > >> >>>>
> > >> >>>> Considering the ³smarter IDE approach², it seems like there¹s
> > >> >>>>two
> > >> >>>> problems:
> > >> >>>> 1. The compiler needs to know that the attributes are OK.
> > >> >>>>Currently, the  compiler will complain if you use an
> > unrecognized
> > >> >>>>tag.
> > >> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know
> if
> > a
> > >> >>>>specific  bead is actually added. They can be added using CSS,
> > AS
> > >> >>>>code and MXML.
> > >> >>>> Dynamically following that flow in tooling seems like a
> > *really*
> > >> >>>>hard  problem.
> > >> >>>>
> > >> >>>> Another idea would be to allow specifying event handlers in a
> > >> >>>>format  something like this:
> > >> >>>> <js:FooComponent id=³foo²>
> > >> >>>> <js:events>
> > >> >>>> <js:EventDescriptor type²layoutNeeded²
> > >> >>>>handler=³handleLayoutNeeded()²/>
> > >> >>>> </js:events>
> > >> >>>> </js:FooComponent>
> > >> >>>>
> > >> >>>> I¹m kind of liking this idea as it follows the pattern we
> > >> currently
> > >> >>>>have  for beads and styles. EventDescriptor could be
> subclassed
> > >> >>>>to have classes  of events which could offer code completion
> > >> >>>>for the available event  types. There would not be enforcement
> > >> >>>>that the events would actually be  dispatched, but I think it
> > >> >>>>would
> > be
> > >> >>>>helpful and would allow users to  specify random event
> handlers
> > >> >>>>declaratively.
> > >> >>>>
> > >> >>>>> Another issue to consider is cross-platform.  A component
> may
> > >> >>>>> not be able to dispatch the events listed in metadata on all
> > >> >>>>> platforms.
> > >> >>>>
> > >> >>>> It seems to me that metadata on cross-platform components
> > should
> > >> >>>>always  be cross-platform. If there are platform-specific
> > events,
> > >> >>>>they should not  be included or there should be a
> > >> >>>>platform-specific component. We¹ve  already solved the problem
> > >> >>>>with mouse events by renaming the event  strings in the
> > >> >>>>compiler depending on the
> > >> target.
> > >> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically
> > for
> > >> JS
> > >> >>>>output). I think Mouse  events are an exception, but if there
> > are
> > >> >>>>any other events that fit this  exception, they should be
> > handled
> > >> >>>>the same way.
> > >> >>>>
> > >> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
> > >> <ah...@adobe.com.INVALID>
> > >> >>>>> wrote:
> > >> >>>>>
> > >> >>>>> Some Metadata is kept in the output, but events probably
> > aren't.
> > >> >>>>>
> > >> >>>>> One issue to consider are whether a container of beads
> should
> > >> >>>>>be have  metadata about the events dispatched by its beads
> > since
> > >> >>>>>the changing of  beads could make that metadata incorrect.
> > IMO,
> > >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter
> > >> >>>>>IDE could figure out what beads are  currently in play and
> > aggregate
> > >> >>>>>allowable events from those beads'
> > >> >>>>> metadata someday.
> > >> >>>>>
> > >> >>>>> Another issue to consider is cross-platform.  A component
> may
> > >> >>>>> not be able to dispatch the events listed in metadata on all
> > >> >>>>> platforms.
> > >> >>>>>
> > >> >>>>> Also consider that on JS, events probably have to be
> > propagated
> > >> >>>>>from the  wrapped element to the strand so there is cost
> there.
> > >> >>>>>
> > >> >>>>> It is hopefully easy enough for anyone who wants to get an
> > >> >>>>>event that  isn't already in metadata, to subclass, add the
> > >> >>>>>metadata and any wiring.
> > >> >>>>>
> > >> >>>>> My 2 cents,
> > >> >>>>> -Alex
> > >> >>>>>
> > >> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
> > >> >>>>> <ma...@gmail.com>> wrote:
> > >> >>>>>
> > >> >>>>>> I¹m not talking about adding events. I¹m talking about
> > >> >>>>>>adding metadata  for *existing events* so they could be
> > >> >>>>>>addressed in MXML.
> > >> >>>>>>
> > >> >>>>>>
> > >> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
> > >> >>>>>>> <pi...@gmail.com>
> > >> >>>>>>> wrote:
> > >> >>>>>>>
> > >> >>>>>>> If you decide to add event that's fine with me. :) It is
> > just
> > >> >>>>>>>the  matter of  thinking about those Basic components from
> > >> >>>>>>>my sight. I have started to  look  at them as something
> > >> >>>>>>>which
> > >> should
> > >> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
> > >> >>>>>>>features should be provided by beads - if it is  possible
> > >> >>>>>>>or by Express.
> > >> >>>>>>>
> > >> >>>>>>> The exception could be and MDL from that which I would
> like
> > >> >>>>>>>to extend,  but  here I can think about those components as
> > >> >>>>>>>they
> > >> are
> > >> >>>>>>>Express right now.
> > >> >>>>>>>
> > >> >>>>>>> Piotr
> > >> >>>>>>>
> > >> >>>>>>>
> > >> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
> > >> >>>>>>>
> > >> >>>>>>>> Why? Unless it adds overhead, it seems to me like any
> > >> >>>>>>>>event that can  be  added using addEventListener() should
> > >> >>>>>>>>be addressable using MXML.
> > >> >>>>>>>>
> > >> >>>>>>>> I¹m just not sure from a technical perspective whether
> the
> > >> MXML
> > >> >>>>>>>>meta  tags  add overhead if not used.
> > >> >>>>>>>>
> > >> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
> > >> >>>>>>>>> <pi...@gmail.com>
> > >> >>>>>>>> wrote:
> > >> >>>>>>>>>
> > >> >>>>>>>>> Hi Harbs,
> > >> >>>>>>>>>
> > >> >>>>>>>>> Some time ago there were discussion on Flex Dev which
> > makes
> > >> me
> > >> >>>>>>>>> realize
> > >> >>>>>>>> that
> > >> >>>>>>>>> we should add event tags as long as they are reflecting
> > >> >>>>>>>>>some native  HTML  api, unless we are in express. For
> > >> >>>>>>>>>example we
> > >> are
> > >> >>>>>>>>>using in many  places  "change" event which is I believe
> > >> >>>>>>>>>quite common in JS world, but I  would  avoid any
> > additional
> > >> >>>>>>>>>custom one. In the other world Let's answer to  the
> > >> >>>>>>>>>question in following case - Does "img" in HTML world
> have
> > "load"
> > >> >>>>>>>>> event ?
> > >> >>>>>>>>>
> > >> >>>>>>>>> Piotr
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs
> <ha...@gmail.com>:
> > >> >>>>>>>>>
> > >> >>>>>>>>>> This does raise a good question:
> > >> >>>>>>>>>>
> > >> >>>>>>>>>> Should we be adding MXML meta tags for all supported
> > events?
> > >> >>>>>>>>>> It seems
> > >> >>>>>>>> like
> > >> >>>>>>>>>> a desirable thing to have, and there are currently very
> > >> >>>>>>>>>>few event  tags.
> > >> >>>>>>>> I¹m
> > >> >>>>>>>>>> not clear on whether the meta-tags effect the end
> result
> > >> >>>>>>>>>> of code size.
> > >> >>>>>>>>>>
> > >> >>>>>>>>>> Harbs
> > >> >>>>>>>>>>
> > >> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org>
> > wrote:
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed
> > >> >>>>>>>>>>> when src set to
> > >> >>>>>>>>>> null
> > >> >>>>>>>>>>> URL:
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> >
> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3<
> >
> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%25
> > >>>>>>>>>>>3>
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>gi
> > >> >>>>>>>>>>> th
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>Fg
> > >> >>>>>>>>>>> ith>
> > >> >>>>>>>>>>> ub.com
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>ub
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> > >> >>>>>>>>>>>%7
> > >> C
> > >> >>>>>>>>>>>fa7
> > >> >>>>>>>>>>>b
> > >> >>>>>>>>>>>1b
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
> > >> >>>>>>>>>>>at
> > >> a
> > >> >>>>>>>>>>>=r6
> > >> >>>>>>>>>>>H
> > >> >>>>>>>>>>>O%
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
> > >> >>>>>>>>>>>2F
> > >> a
> > >> >>>>>>>>>>>pac
> > >> >>>>>>>>>>>h
> > >> >>>>>>>>>>>e%
> > >> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
> > >> >>>>>>>>>>>ec
> > >> e
> > >> >>>>>>>>>>>e1%
> > >> >>>>>>>>>>>7
> > >> >>>>>>>>>>>C0
> > >> >>>>>>>>>>> %7
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
> > >> >>>>>>>>>>>WV
> > >> q
> > >> >>>>>>>>>>>y17
> > >> >>>>>>>>>>>x
> > >> >>>>>>>>>>>Fb
> > >> >>>>>>>>>>> if
> > >> >>>>>>>>>>> 9Gknpc%3D&reserved=0
> > >> >>>>>>>>>> issuecomment-340524197
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> This code fails to compile:
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
> > >> >>>>>>>>>>>rl
> > >> =
> > >> >>>>>>>>>>>htt
> > >> >>>>>>>>>>>p
> > >> >>>>>>>>>>>%3
> > >> >>>>>>>>>>> A%
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> >
> > >> >>>>>>>>>>> 2F%2Fns.adobe.com
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>2f
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5
> > >> >>>>>>>>>>>20
> > >> 4
> > >> >>>>>>>>>>>860
> > >> >>>>>>>>>>>d
> > >> >>>>>>>>>>>3%
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
> > >> >>>>>>>>>>>14
> > >> 1
> > >> >>>>>>>>>>>82&
> > >> >>>>>>>>>>>s
> > >> >>>>>>>>>>>da
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
> > >> >>>>>>>>>>>=0
> > >> >
> > >> >>>>>>>>>>>%2F
> > >> >>>>>>>>>>>m
> > >> >>>>>>>>>>>xm
> > >> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> > >> >>>>>>>>>>>C6
> > >> 3
> > >> >>>>>>>>>>>644
> > >> >>>>>>>>>>>9
> > >> >>>>>>>>>>>84
> > >> >>>>>>>>>>> 71
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
> > >> >>>>>>>>>>>FK
> > >> d
> > >> >>>>>>>>>>>zAe
> > >> >>>>>>>>>>>4
> > >> >>>>>>>>>>>%2
> > >> >>>>>>>>>>> Bn
> > >> >>>>>>>>>>> o%3D&reserved=0"
> > >> >>>>>>>>>>>
> > >> xmlns:js="library://ns.apache.org/royale/basic
> > >> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>   <fx:Script><![CDATA[
> > >> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>       public function blankimage():void {
> > >> >>>>>>>>>>>           image.visible = false;
> > >> >>>>>>>>>>>           image.src =
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>Fw
> > >> >>>>>>>>>>> ww
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>Fw
> > >> >>>>>>>>>>> ww>
> > >> >>>>>>>>>>> .apache.org
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>ap
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> > >> >>>>>>>>>>>60
> > >> d
> > >> >>>>>>>>>>>3%7
> > >> >>>>>>>>>>>C
> > >> >>>>>>>>>>>fa
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> > >> >>>>>>>>>>>2&
> > >> s
> > >> >>>>>>>>>>>dat
> > >> >>>>>>>>>>>a
> > >> >>>>>>>>>>>=w
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> > >> >>>>>>>>>>>2F
> > >> &
> > >> >>>>>>>>>>>dat
> > >> >>>>>>>>>>>a
> > >> >>>>>>>>>>>=0
> > >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> > >> >>>>>>>>>>>09
> > >> &
> > >> >>>>>>>>>>>sda
> > >> >>>>>>>>>>>t
> > >> >>>>>>>>>>>a=
> > >> >>>>>>>>>>> pn
> > >> >>>>>>>>>>>
> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> > >> >>>>>>>> foundation/press/kit/
> > >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> > >> >>>>>>>>>>>       }
> > >> >>>>>>>>>>>       public function showImage():void {
> > >> >>>>>>>>>>>           image.visible = true;
> > >> >>>>>>>>>>>       }
> > >> >>>>>>>>>>>       ]]></fx:Script>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>   <js:valuesImpl>
> > >> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
> > >> >>>>>>>>>>>   </js:valuesImpl>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>   <js:initialView>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>       <js:View>
> > >> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
> > >> >>>>>>>>>>> width="100%">
> > >> >>>>>>>>>>>               <js:beads>
> > >> >>>>>>>>>>>                   <js:VerticalLayout />
> > >> >>>>>>>>>>>               </js:beads>
> > >> >>>>>>>>>>>               <js:Image id="image"
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> > >> >>>>>>>>>>>tp
> > >> s
> > >> >>>>>>>>>>>%3A
> > >> >>>>>>>>>>>%
> > >> >>>>>>>>>>>2F
> > >> >>>>>>>>>>> %2
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>>
> > >> >>>>>>>>>>> Fwww.apache.org
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>fw
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> > >> >>>>>>>>>>>52
> > >> 0
> > >> >>>>>>>>>>>486
> > >> >>>>>>>>>>>0
> > >> >>>>>>>>>>>d3
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> > >> >>>>>>>>>>>61
> > >> 4
> > >> >>>>>>>>>>>182
> > >> >>>>>>>>>>>&
> > >> >>>>>>>>>>>sd
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> > >> >>>>>>>>>>>ve
> > >> d
> > >> >>>>>>>>>>>=0>
> > >> >>>>>>>>>>>%
> > >> >>>>>>>>>>>2F
> > >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> > >> >>>>>>>>>>>35
> > >> 5
> > >> >>>>>>>>>>>609
> > >> >>>>>>>>>>>&
> > >> >>>>>>>>>>>sd
> > >> >>>>>>>>>>> at
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> > >> >>>>>>>>>>>0
> > >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> > >> height="50%"
> > >> >>>>>>>>>> layoutNeeded="showImage()" />
> > >> >>>>>>>>>>>               <js:TextButton text="Blank"
> > >> click="blankimage()"
> > >> >>>>>>>>>>>/>
> > >> >>>>>>>>>>>           </js:Container>
> > >> >>>>>>>>>>>       </js:View>
> > >> >>>>>>>>>>>   </js:initialView>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> </js:Application>
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> With this error:
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
> > >> >>>>>>>>>>>.m
> > >> x
> > >> >>>>>>>>>>>ml(
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>6)
> > >> >>>>>>>>>>> :
> > >> >>>>>>>>>> col: 130 This attribute is unexpected. It will be
> > ignored.
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>               <js:Image id="image"
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> > >> >>>>>>>>>>>tp
> > >> s
> > >> >>>>>>>>>>>%3A
> > >> >>>>>>>>>>>%
> > >> >>>>>>>>>>>2F
> > >> >>>>>>>>>>> %2
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>>
> > >> >>>>>>>>>>> Fwww.apache.org
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>fw
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> > >> >>>>>>>>>>>52
> > >> 0
> > >> >>>>>>>>>>>486
> > >> >>>>>>>>>>>0
> > >> >>>>>>>>>>>d3
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> > >> >>>>>>>>>>>61
> > >> 4
> > >> >>>>>>>>>>>182
> > >> >>>>>>>>>>>&
> > >> >>>>>>>>>>>sd
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> > >> >>>>>>>>>>>ve
> > >> d
> > >> >>>>>>>>>>>=0>
> > >> >>>>>>>>>>>%
> > >> >>>>>>>>>>>2F
> > >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> > >> >>>>>>>>>>>35
> > >> 5
> > >> >>>>>>>>>>>609
> > >> >>>>>>>>>>>&
> > >> >>>>>>>>>>>sd
> > >> >>>>>>>>>>> at
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> > >> >>>>>>>>>>>0
> > >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> > >> height="50%"
> > >> >>>>>>>>>> layoutNeeded="showImage()" />
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> I assume the only way to do this would be to add a
> hard
> > >> >>>>>>>>>>> coded event
> > >> >>>>>>>>>> listener manually like so?
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>>   <fx:Script><![CDATA[
> > >> >>>>>>>>>>>       public function blankimage():void {
> > >> >>>>>>>>>>>           image.visible = false;
> > >> >>>>>>>>>>>           image.src =
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>Fw
> > >> >>>>>>>>>>> ww
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> > >> >>>>>>>>>>>3A
> > >> %
> > >> >>>>>>>>>>>2F%
> > >> >>>>>>>>>>>2
> > >> >>>>>>>>>>>Fw
> > >> >>>>>>>>>>> ww>
> > >> >>>>>>>>>>> .apache.org
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> > >> >>>>>>>>>>>A%
> > >> 2
> > >> >>>>>>>>>>>F%2
> > >> >>>>>>>>>>>F
> > >> >>>>>>>>>>>ap
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> > >> >>>>>>>>>>>60
> > >> d
> > >> >>>>>>>>>>>3%7
> > >> >>>>>>>>>>>C
> > >> >>>>>>>>>>>fa
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> > >> >>>>>>>>>>>2&
> > >> s
> > >> >>>>>>>>>>>dat
> > >> >>>>>>>>>>>a
> > >> >>>>>>>>>>>=w
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> > >> >>>>>>>>>>>2F
> > >> &
> > >> >>>>>>>>>>>dat
> > >> >>>>>>>>>>>a
> > >> >>>>>>>>>>>=0
> > >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >>
> > >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> > >> >>>>>>>>>>>09
> > >> &
> > >> >>>>>>>>>>>sda
> > >> >>>>>>>>>>>t
> > >> >>>>>>>>>>>a=
> > >> >>>>>>>>>>> pn
> > >> >>>>>>>>>>>
> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> > >> >>>>>>>> foundation/press/kit/
> > >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> > >> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
> > >> showImage);
> > >> >>>>>>>>>>>       }
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>       public function showImage(event:Event):void {
> > >> >>>>>>>>>>>           image.visible = true;
> > >> >>>>>>>>>>>       }
> > >> >>>>>>>>>>>       ]]></fx:Script>
> > >> >>>>>>>>>>> ```
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>-------------------------------------------------------
> -
> > >> >>>>>>>>>>>-
> > -
> > >> >>>>>>>>>>>--
> > >> -
> > >> >>>>>>>>>>>---  This is an automated message from the Apache Git
> > >> >>>>>>>>>>>Service.
> > >> >>>>>>>>>>> To respond to the message, please log on GitHub and
> use
> > >> >>>>>>>>>>>the URL above to go to the specific comment.
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> For queries about this service, please contact
> > >> >>>>>>>>>>>Infrastructure
> > >> >>>>>>>>>>>at:
> > >> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>>
> > >> >>>>>>>>>>> With regards,
> > >> >>>>>>>>>>> Apache Git Services
> > >> >>>>>>>>>>
> > >> >>>>>>>>>>
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >> >>>>>>>>> --
> > >> >>>>>>>>>
> > >> >>>>>>>>> Piotr Zarzycki
> > >> >>>>>>>>>
> > >> >>>>>>>>> mobile: +48 880 859 557
> > >> >>>>>>>>> skype: zarzycki10
> > >> >>>>>>>>>
> > >> >>>>>>>>> LinkedIn:
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> >
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2<
> >
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%25
> > >>>>>>>>>2>
> > >> >>>>>>>>>F%
> > >> 2
> > >> >>>>>>>>>Fww
> > >> >>>>>>>>>w
> > >> >>>>>>>>>.l
> > >> >>>>>>>>> in
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> > >> >>>>>>>>>2F
> > >> %
> > >> >>>>>>>>>2Fw
> > >> >>>>>>>>>w
> > >> >>>>>>>>>w.
> > >> >>>>>>>>> lin>
> > >> >>>>>>>>> kedin.com
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> > >> >>>>>>>>>2F
> > >> %
> > >> >>>>>>>>>2Fk
> > >> >>>>>>>>>e
> > >> >>>>>>>>>di
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
> > >> >>>>>>>>>7C
> > >> f
> > >> >>>>>>>>>a7b
> > >> >>>>>>>>>1
> > >> >>>>>>>>>b5
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
> > >> >>>>>>>>>=M
> > >> m
> > >> >>>>>>>>>3Kn
> > >> >>>>>>>>>X
> > >> >>>>>>>>>%2
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
> > >> >>>>>>>>>io
> > >> t
> > >> >>>>>>>>>rza
> > >> >>>>>>>>>r
> > >> >>>>>>>>>zy
> > >> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
> > >> >>>>>>>>>13
> > >> 0
> > >> >>>>>>>>>355
> > >> >>>>>>>>>6
> > >> >>>>>>>>>09
> > >> >>>>>>>>> &s
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
> > >> >>>>>>>>>se
> > >> r
> > >> >>>>>>>>>ved
> > >> >>>>>>>>>=
> > >> >>>>>>>>>0
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> > >> >>>>>>>>>%2
> > >> F
> > >> >>>>>>>>>%2F
> > >> >>>>>>>>>p
> > >> >>>>>>>>>l.
> > >> >>>>>>>>> li
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> > >> >>>>>>>>>%2
> > >> F
> > >> >>>>>>>>>%2F
> > >> >>>>>>>>>p
> > >> >>>>>>>>>l.
> > >> >>>>>>>>> li>
> > >> >>>>>>>>> nkedin.com
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> > >> >>>>>>>>>2F
> > >> %
> > >> >>>>>>>>>2Fn
> > >> >>>>>>>>>k
> > >> >>>>>>>>>ed
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> > >> >>>>>>>>>%7
> > >> C
> > >> >>>>>>>>>fa7
> > >> >>>>>>>>>b
> > >> >>>>>>>>>1b
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
> > >> >>>>>>>>>a=
> > >> 4
> > >> >>>>>>>>>v8C
> > >> >>>>>>>>>S
> > >> >>>>>>>>>fu
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
> > >> >>>>>>>>>io
> > >> t
> > >> >>>>>>>>>r-z
> > >> >>>>>>>>>a
> > >> >>>>>>>>>rz
> > >> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
> > >> >>>>>>>>>%7
> > >> C
> > >> >>>>>>>>>0%7
> > >> >>>>>>>>>C
> > >> >>>>>>>>>63
> > >> >>>>>>>>> 64
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
> > >> >>>>>>>>>FH
> > >> q
> > >> >>>>>>>>>EAK
> > >> >>>>>>>>>N
> > >> >>>>>>>>>o%
> > >> >>>>>>>>> 3D
> > >> >>>>>>>>> &reserved=0>
> > >> >>>>>>>>>
> > >> >>>>>>>>> GitHub:
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> >
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%<
> >
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> > >>>>>>>>>5>
> > >> >>>>>>>>>2F
> > >> %
> > >> >>>>>>>>>2Fg
> > >> >>>>>>>>>i
> > >> >>>>>>>>>th
> > >> >>>>>>>>> ub
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> > >> >>>>>>>>>%2
> > >> F
> > >> >>>>>>>>>%2F
> > >> >>>>>>>>>g
> > >> >>>>>>>>>it
> > >> >>>>>>>>> hub>
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> > >> >>>>>>>>>20
> > >> 8
> > >> >>>>>>>>>d51
> > >> >>>>>>>>>f
> > >> >>>>>>>>>c3
> > >> >>>>>>>>> 8b
> > >> >>>>>>>>>
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> > >> >>>>>>>>>35
> > >> 5
> > >> >>>>>>>>>609
> > >> >>>>>>>>>&
> > >> >>>>>>>>>sd
> > >> >>>>>>>>> at
> > >> >>>>>>>>>
> > >>
> > >>>>>>>>>a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
> > >> >>>>>>>>>0
> > >> >>>>>>>>
> > >> >>>>>>>>
> > >> >>>>>>>
> > >> >>>>>>>
> > >> >>>>>>> --
> > >> >>>>>>>
> > >> >>>>>>> Piotr Zarzycki
> > >> >>>>>>>
> > >> >>>>>>> mobile: +48 880 859 557
> > >> >>>>>>> skype: zarzycki10
> > >> >>>>>>>
> > >> >>>>>>> LinkedIn:
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> >
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<
> >
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> > >>>>>>>5>
> > >> >>>>>>>2F
> > >> www.
> > >> >>>>>>>l
> > >> >>>>>>>in
> > >> >>>>>>> ke
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> > >> >>>>>>>%2
> > >> F
> > >> >>>>>>>www
> > >> >>>>>>>.
> > >> >>>>>>>li
> > >> >>>>>>> nke>
> > >> >>>>>>> din.com
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> > >> >>>>>>>%2
> > >> F
> > >> >>>>>>>din
> > >> >>>>>>>.
> > >> >>>>>>>co
> > >> >>>>>>>
> > >>
> > >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
> > >> >>>>>>>1b
> > >> 5
> > >> >>>>>>>a7b
> > >> >>>>>>>3
> > >> >>>>>>>44
> > >> >>>>>>>
> > >>
> > >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
> > >> >>>>>>>HJ
> > >> t
> > >> >>>>>>>Y44
> > >> >>>>>>>X
> > >> >>>>>>>dR
> > >> >>>>>>>
> > >>
> > >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
> > >> >>>>>>>at
> > >> a
> > >> >>>>>>>=02
> > >> >>>>>>>%
> > >> >>>>>>>7C
> > >> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
> > >> >>>>>>>60
> > >> 9
> > >> >>>>>>>&sd
> > >> >>>>>>>a
> > >> >>>>>>>ta
> > >> >>>>>>> =M
> > >> >>>>>>>
> > >>
> > >>>>>>>hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
> > >> >>>>>>>
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> > >> >>>>>>>F%
> > >> 2
> > >> >>>>>>>Fpl
> > >> >>>>>>>.
> > >> >>>>>>>li
> > >> >>>>>>> nk
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> > >> >>>>>>>F%
> > >> 2
> > >> >>>>>>>Fpl
> > >> >>>>>>>.
> > >> >>>>>>>li
> > >> >>>>>>> nk>
> > >> >>>>>>> edin.com
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> > >> >>>>>>>%2
> > >> F
> > >> >>>>>>>edi
> > >> >>>>>>>n
> > >> >>>>>>>.c
> > >> >>>>>>>
> > >>
> > >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
> > >> >>>>>>>b1
> > >> b
> > >> >>>>>>>5a7
> > >> >>>>>>>b
> > >> >>>>>>>34
> > >> >>>>>>>
> > >>
> > >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
> > >> >>>>>>>3i
> > >> L
> > >> >>>>>>>sgF
> > >> >>>>>>>8
> > >> >>>>>>>wv
> > >> >>>>>>>
> > >> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
> > >> zarzycki
> > >> >>>>>>>-92
> > >> >>>>>>>a
> > >> >>>>>>>53
> > >> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> > >> >>>>>>>C6
> > >> 3
> > >> >>>>>>>644
> > >> >>>>>>>9
> > >> >>>>>>>84
> > >> >>>>>>> 71
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
> > >> >>>>>>>%3
> > >> D
> > >> >>>>>>>&re
> > >> >>>>>>>s
> > >> >>>>>>>er
> > >> >>>>>>> ve
> > >> >>>>>>> d=0>
> > >> >>>>>>>
> > >> >>>>>>> GitHub:
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
> > >> >>>>>>>%2
> > >> F
> > >> >>>>>>>git
> > >> >>>>>>>h
> > >> >>>>>>>ub
> > >> >>>>>>> .c
> > >> >>>>>>>
> > >>
> > >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> > >> >>>>>>>F%
> > >> 2
> > >> >>>>>>>Fgi
> > >> >>>>>>>t
> > >> >>>>>>>hu
> > >> >>>>>>> b.c>
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
> > >> >>>>>>>51
> > >> f
> > >> >>>>>>>c38
> > >> >>>>>>>b
> > >> >>>>>>>07
> > >> >>>>>>> %7
> > >> >>>>>>>
> > >> >>>>>>>
> > >>
> > >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> > >> >>>>>>>&s
> > >> d
> > >> >>>>>>>ata
> > >> >>>>>>>=
> > >> >>>>>>>mi
> > >> >>>>>>> 12
> > >> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> > >> >>>>
> > >> >>>
> > >> >>
> > >> >
> > >
> > >
> 
> 




RE: Event Metadata

Posted by Yishay Weiss <yi...@hotmail.com>.
Hi Nicolas,

Very good perspective.

I think Royale’s philosophy is to allow different component sets for different user types. The two obvious ones that exist right now are Basic and Express. Basic emphasizes small and fast, while Express emphasizes usable.

A lot of the discussions you’ll see on the dev list pertain to the Basic set because that should serve as the basis for other sets. In a sense it’s the core of the framework and we want to keep it as performant as possible.

I think it’s great that you maintain an app developer’s perspective. It should motivate us to invest more time in usability and expand the Express component set. Alex has been talking about ‘adopting’ another dev team to facilitate their way to a production Royale app. If you choose to go on that path, I’m sure the usability issues will receive close attention and the Express component set will benefit.

Thanks,
Yishay

From: Idylog - Nicolas Granon<ma...@idylog.com>
Sent: Thursday, November 2, 2017 12:59 AM
To: dev@royale.apache.org<ma...@royale.apache.org>
Subject: RE: Event Metadata

Thank you for your answer.

You say that there is no sure way to know which is faster/smaller.

This somewhat joins your comment about my suggestion regarding "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24" thread) where you speak about "usability vs code size".

At some point, you have to choose your target (no pun intended). I mean, you have to choose if the SDK main "philosophy" is "small", or "fast" or "usable" ("main" meaning that is does not ignore the other options, but is considered prevalent).

Do not forget that (enterprise) Flex Applications have typical long load delays : we do not care if an application has a 20s. or 30s. load time (2mn would be excessive!).
We compare with "local install" applications like, say Excel, or Photoshop, or accounting/payroll/ or any enterprise integrated management software (ERPs).
We definitely do *not* compare with a web site ! (where we want load time under 3 seconds at most).

Did you ever try to load a Sage(tm) "cloud" application ? (I do not blame Sage(tm). It's just an example. I could have talked about SAP(tm) or any other "cloud enterprise management software").
Load time is about 1mn30s at best ! Really.
Or, check Photoshop (local install) load time.

Code size, for us, (I insist : "for us, enterprise app developers"), is not really an issue. Our first Flex app was created 8 years ago. It's now a 2MB SWF (compressed) initial load. We never had any complaint from any customer about load time.
On the other end, runtime performance *is* important (interactive).

In the end, what will make us choose Apache Royale over other options (React being on top of the list) is mainly usability from the developers' point of view, and interactive responsiveness, not "small footprint".

If Apache Royale main target is enterprise applications (RIAs) we believe it should favor usability over small footprint and short load time and avoid "unnecessary" complexity.
Enterprise apps users do not have the same expectations as "individuals" (web surfers). They favor consistency, robustness and ergonomics over raw performances (but of course, runtime performance must not go against ergonomics). Even on mobile devices, our customers accept "long" load time because they know that they are loading an enterprise app. Not a widget.

*****************************************************************************************************
Classic Flex was about RIAs. We realize that we do not really know what Apache Royale is about.
Is it RIAs ?
*****************************************************************************************************

We believe that it should be clearly decided, as it will shape the evolution of the project.

Some of us here (applications developers) are in the RIA domain. Others might be in other domains where the trade-off are different.

In classic Flex, code size was not a concern : code was big (really big !) but usability was great. It was an assumed choice, and I believe all RIAs developers were quite aware of that choice. If code was really too big, you could slice the app into modules and load on-demand.
Believe us, we never heard a user complaining about time lag when switching from "payroll module" to "accounting module" (even if it meant waiting for 30s.) : when you switch from one "universe" to another, everybody think it is normal to have a lag.

On the other hand, it the dev team's goal is to create a "web site" creation tool, please say it clearly ! It's quite a different goal, and trade-off output will be quite different !

To summarize, we believe that, for enterprise application developers, the "usability" criterion comes first, "fast" being second, and "small" being last.

I'm pretty sure that all this will raise some comments !

Best regards,

Nicolas Granon




> -----Message d'origine-----
> De : Alex Harui [mailto:aharui@adobe.com.INVALID]
> Envoyé : mercredi 1 novembre 2017 21:30
> À : dev@royale.apache.org; ngranon@idylog.com
> Objet : Re: Event Metadata
>
> That is one of the possible approaches.  The trade-off is, as you
> mention, having to filter out the right event vs all of the work re-
> dispatching events.  Right now the strand is the wrapping component.
> It doesn't have to be and maybe we should change that, but in order for
> MXML event attributes to work you have to dispatch off the wrapping
> component and that makes the beads want to dispatch off the
> strand/component and then you are back to filtering again.
>
> One advantage of dispatching off the strand is that a bead that wants
> to get an event from another bead doesn't have to find that bead.  It
> can just listen to the strand.  It isn't any different than any other
> shared communication infrastructure.  You have to spend time filtering
> or figuring out direct hookups.  I'm not sure there is a way to know
> what is faster/smaller.  It might differ based on the situation.
>
> My 2 cents,
> -Alex
>
> On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ng...@idylog.com>
> wrote:
>
> >Excuse my naive comment :
> >
> >In my opinion, we have two different situations :
> >
> >Case 1 : I use a component, and I add one or more beads to it (in the
> >source code where the component is used) (inlined).
> >Case 2 : I use a component that is *already* composed of one strand
> and
> >a number of beads (or none) (a reusable component)
> >
> >Case 1 :
> >In my mind (as an app developer), I obviously know what I am doing.
> >
> >It is quite logical, from my point of view, to have listeners attached
> >to the "component" (that is, indirectly, to the "strand part") and
> >other listeners (or same !) attached to the beads I am interested in.
> >After all, if I understood clearly, a bead is a way to "add
> >functionality", right ?
> >Then, it is very logical to me to listen to events from that specific
> >functionality bead) since I expressly added that piece of
> functionality.
> >I should not be confused by events with same name but from other beads
> >: I only have to make sure that I listen to the "target" phase.
> >
> >In MXML, component events could be captured from the "component" tag,
> >and bead events from the bead sub-tags.
> >
> >If a bead wants to listen to events from another bead, nothing
> prevents
> >it from doing so (Im not sure of that ??).
> >The metatags exposed by the strand as well as the metatags exposed by
> >the beads would then be accessible.
> >
> >Case 2 :
> >Maybe I use a component designed by someone else, or maybe I designed
> >it myself.
> >It is the component developer's responsibility to manage "internal"
> >events and then to redispatch "beads" events as "component" events if
> >needed (maybe under another event name).
> >A developer using a "wrapped" composite component should only listen
> to
> >"component" events (public events), not "bead event" (abstraction of
> >internal representation) The metatags exposed by the "wrapped"
> >component should be public events only.
> >
> >Final case :
> >The wrapped component is composited from another wrapped component
> plus
> >some additional beads. In other words, it expends an reusable
> component
> >which already contains some beads.
> >In that case, the "inner" component (the base class) is considered as
> a
> >strand and the global logic is the same as in case (2).
> >
> >All in all, this is not very different from what happens in classic
> >Flex when building "complex " components...(which are really
> >composited, not simple subclasses).
> >
> >Too naïve to be useful, maybe ???
> >
> >Nicolas Granon
> >
> >
> >
> >
> >> -----Message d'origine-----
> >> De : Peter Ent [mailto:pent@adobe.com.INVALID] Envoyé : mardi 31
> >> octobre 2017 20:39 À : dev@royale.apache.org Objet : Re: Event
> >> Metadata (was Re: [GitHub] ...: Image not removed when src set to
> >> null
> >>
> >> I typically use the strand as the central dispatcher for intra-bead
> >> communication. Sometimes an event from a bead conflicts with an
> event
> >> dispatched by the strand to the "outside". For example, if a bead
> >> were to need to send a "change" event and another bead was listening
> >> for that event, "change" is pretty generic and an app writer who is
> >> also listening for change on that strand might get the wrong event.
> >>
> >> I have not developed any protocol to deal with this, but perhaps
> >> events used internally for components should prefix the event type
> >> with something (e.g., "_change") unique to indicate the event is
> internal.
> >> Events are really the only way we have of beads talking to each
> other.
> >>
> >> We need to document what events a bead is doing to send and what it
> >> is willing to accept and how it will be used. I confess I have not
> >> done that very often and for Royale to be useful, documentation like
> >> this has to be done. But we need a pattern of use established so
> >> there is consistency.
> >>
> >> Let's say you have a bead that you do want to put into MXML and that
> >> bead produces events. The Drag and Drop work comes to mind. When you
> >> add a DragSource bead to a list, you the app writer, might want to
> >> know when certain things happen, such as DRAG_START. The List does
> >> not have DRAG_START listed in its event metadata so dispatching this
> >> event from the List won't work for the app writer. The app writer
> wants to do:
> >> <js:DragSource dragStart="myThing(event)" /> right in MXML.
> >>
> >> As it turns out, this DRAG_START is also used internally by the drag
> >> controller so I think there is another class of events that do get
> >> dispatched by beads but not on the strand, but on themselves. In
> this
> >> case, these events are not "internal" but public.
> >>
> >> Both internal (dispatched by beads targeting the strand) and public
> >> (dispatched by beads targeting themselves) can coexist nicely as
> long
> >> as we have some rules.
> >>
> >> HTH
> >> ‹peter
> >>
> >> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID> wrote:
> >>
> >> >For 1) the rule already is that if you want to access an implicit
> >> >bead you have to explicitly declare it.  So if a bead is normally
> >> >brought
> >> in
> >> >via CSS, you instead declare that bead on the strand and make
> >> adjustments.
> >> >UIBase doesn't care how the beads get placed on the strand, and all
> >> >bead loading code is supposed to check the strand first before
> >> grabbing
> >> >a default bead from CSS.  IOW, if it wasn't declared in MXML, then
> >> >declare it in MXML in order to access it.
> >> >
> >> >For 2) we are learning towards having beads dispatch their
> important
> >> >events off the strand instead of off of the bead. Otherwise we have
> >> >to add event forwarding code if people want to listen to the
> >> >containing component for events which is pretty normal if you think
> >> >of the component as a black box.  And then duplicate event names
> >> >does become
> >> an issue.
> >> >
> >> >It will be interesting to see you try your EventListener bead and
> >> >see how it feels and if it is a lot of code or not.
> >> >
> >> >Thanks,
> >> >-Alex
> >> >
> >> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
> >> >
> >> >>The problems that come to mind with attaching the events to the
> >> >>beads
> >> >>are:
> >> >>1. The beads are not necessarily declared in MXML, so that leaves
> >> >>the question of how to address the beads via MXML.
> >> >>2. More than one bead might dispatch the same event. To get them
> >> >>all, it seems like it¹s necessary to attach the event listener to
> >> >>the
> >> strand.
> >> >>
> >> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui
> >> >>><ah...@adobe.com.INVALID>
> >> >>>wrote:
> >> >>>
> >> >>> Renaming thread.
> >> >>>
> >> >>> Another option is for the beads themselves to have event
> metadata
> >> >>> for events they dispatch and either:
> >> >>> 1) the bead dispatches both off of itself and its strand, or
> >> >>> 2) certain addEventListener calls are passed to the strand.
> >> >>>
> >> >>> That's sort of the general pattern for de-composing or
> "exploding"
> >> a
> >> >>> component.  And then the wrapping component doesn't need
> metadata
> >> >>> that won't apply to the beads declared.
> >> >>>
> >> >>> Having a bead that can attach a particular kind of listener and
> >> call
> >> >>>a  handler also fits in our patterns.  And similarly, a bead that
> >> >>>dispatches  platform-specific might be useful as well.
> >> >>>
> >> >>> My 2 cents,
> >> >>> -Alex
> >> >>>
> >> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
> >> >>>
> >> >>>> Good points.
> >> >>>>
> >> >>>>> One issue to consider are whether a container of beads should
> >> >>>>>be have  metadata about the events dispatched by its beads
> since
> >> >>>>>the changing of  beads could make that metadata incorrect.
> IMO,
> >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter IDE
> >> >>>>>could figure out what beads are  currently in play and
> aggregate
> >> >>>>>allowable events from those beads'
> >> >>>>> metadata someday.
> >> >>>>
> >> >>>> Hmm. Not a simple problem. One approach we can take is to add
> >> >>>>metadata to  the component and include documentation on which
> >> >>>>beads are required for  the event to fire.
> >> >>>>
> >> >>>> Of course this only takes care of more-or-less standard beads.
> >> >>>>Optional
> >> >>>> beads that are generally not used would need another mechanism
> >> >>>>to specify  event handlers in MXML (if that would be supported).
> >> >>>>
> >> >>>> Considering the ³smarter IDE approach², it seems like there¹s
> >> >>>>two
> >> >>>> problems:
> >> >>>> 1. The compiler needs to know that the attributes are OK.
> >> >>>>Currently, the  compiler will complain if you use an
> unrecognized
> >> >>>>tag.
> >> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know if
> a
> >> >>>>specific  bead is actually added. They can be added using CSS,
> AS
> >> >>>>code and MXML.
> >> >>>> Dynamically following that flow in tooling seems like a
> *really*
> >> >>>>hard  problem.
> >> >>>>
> >> >>>> Another idea would be to allow specifying event handlers in a
> >> >>>>format  something like this:
> >> >>>> <js:FooComponent id=³foo²>
> >> >>>> <js:events>
> >> >>>> <js:EventDescriptor type²layoutNeeded²
> >> >>>>handler=³handleLayoutNeeded()²/>
> >> >>>> </js:events>
> >> >>>> </js:FooComponent>
> >> >>>>
> >> >>>> I¹m kind of liking this idea as it follows the pattern we
> >> currently
> >> >>>>have  for beads and styles. EventDescriptor could be subclassed
> >> >>>>to have classes  of events which could offer code completion for
> >> >>>>the available event  types. There would not be enforcement that
> >> >>>>the events would actually be  dispatched, but I think it would
> be
> >> >>>>helpful and would allow users to  specify random event handlers
> >> >>>>declaratively.
> >> >>>>
> >> >>>>> Another issue to consider is cross-platform.  A component may
> >> >>>>> not be able to dispatch the events listed in metadata on all
> >> >>>>> platforms.
> >> >>>>
> >> >>>> It seems to me that metadata on cross-platform components
> should
> >> >>>>always  be cross-platform. If there are platform-specific
> events,
> >> >>>>they should not  be included or there should be a
> >> >>>>platform-specific component. We¹ve  already solved the problem
> >> >>>>with mouse events by renaming the event  strings in the compiler
> >> >>>>depending on the
> >> target.
> >> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically
> for
> >> JS
> >> >>>>output). I think Mouse  events are an exception, but if there
> are
> >> >>>>any other events that fit this  exception, they should be
> handled
> >> >>>>the same way.
> >> >>>>
> >> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
> >> <ah...@adobe.com.INVALID>
> >> >>>>> wrote:
> >> >>>>>
> >> >>>>> Some Metadata is kept in the output, but events probably
> aren't.
> >> >>>>>
> >> >>>>> One issue to consider are whether a container of beads should
> >> >>>>>be have  metadata about the events dispatched by its beads
> since
> >> >>>>>the changing of  beads could make that metadata incorrect.
> IMO,
> >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter IDE
> >> >>>>>could figure out what beads are  currently in play and
> aggregate
> >> >>>>>allowable events from those beads'
> >> >>>>> metadata someday.
> >> >>>>>
> >> >>>>> Another issue to consider is cross-platform.  A component may
> >> >>>>> not be able to dispatch the events listed in metadata on all
> >> >>>>> platforms.
> >> >>>>>
> >> >>>>> Also consider that on JS, events probably have to be
> propagated
> >> >>>>>from the  wrapped element to the strand so there is cost there.
> >> >>>>>
> >> >>>>> It is hopefully easy enough for anyone who wants to get an
> >> >>>>>event that  isn't already in metadata, to subclass, add the
> >> >>>>>metadata and any wiring.
> >> >>>>>
> >> >>>>> My 2 cents,
> >> >>>>> -Alex
> >> >>>>>
> >> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
> >> >>>>> <ma...@gmail.com>> wrote:
> >> >>>>>
> >> >>>>>> I¹m not talking about adding events. I¹m talking about adding
> >> >>>>>>metadata  for *existing events* so they could be addressed in
> >> >>>>>>MXML.
> >> >>>>>>
> >> >>>>>>
> >> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
> >> >>>>>>> <pi...@gmail.com>
> >> >>>>>>> wrote:
> >> >>>>>>>
> >> >>>>>>> If you decide to add event that's fine with me. :) It is
> just
> >> >>>>>>>the  matter of  thinking about those Basic components from my
> >> >>>>>>>sight. I have started to  look  at them as something which
> >> should
> >> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
> >> >>>>>>>features should be provided by beads - if it is  possible  or
> >> >>>>>>>by Express.
> >> >>>>>>>
> >> >>>>>>> The exception could be and MDL from that which I would like
> >> >>>>>>>to extend,  but  here I can think about those components as
> >> >>>>>>>they
> >> are
> >> >>>>>>>Express right now.
> >> >>>>>>>
> >> >>>>>>> Piotr
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
> >> >>>>>>>
> >> >>>>>>>> Why? Unless it adds overhead, it seems to me like any event
> >> >>>>>>>>that can  be  added using addEventListener() should be
> >> >>>>>>>>addressable using MXML.
> >> >>>>>>>>
> >> >>>>>>>> I¹m just not sure from a technical perspective whether the
> >> MXML
> >> >>>>>>>>meta  tags  add overhead if not used.
> >> >>>>>>>>
> >> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
> >> >>>>>>>>> <pi...@gmail.com>
> >> >>>>>>>> wrote:
> >> >>>>>>>>>
> >> >>>>>>>>> Hi Harbs,
> >> >>>>>>>>>
> >> >>>>>>>>> Some time ago there were discussion on Flex Dev which
> makes
> >> me
> >> >>>>>>>>> realize
> >> >>>>>>>> that
> >> >>>>>>>>> we should add event tags as long as they are reflecting
> >> >>>>>>>>>some native  HTML  api, unless we are in express. For
> >> >>>>>>>>>example we
> >> are
> >> >>>>>>>>>using in many  places  "change" event which is I believe
> >> >>>>>>>>>quite common in JS world, but I  would  avoid any
> additional
> >> >>>>>>>>>custom one. In the other world Let's answer to  the
> >> >>>>>>>>>question in following case - Does "img" in HTML world have
> "load"
> >> >>>>>>>>> event ?
> >> >>>>>>>>>
> >> >>>>>>>>> Piotr
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
> >> >>>>>>>>>
> >> >>>>>>>>>> This does raise a good question:
> >> >>>>>>>>>>
> >> >>>>>>>>>> Should we be adding MXML meta tags for all supported
> events?
> >> >>>>>>>>>> It seems
> >> >>>>>>>> like
> >> >>>>>>>>>> a desirable thing to have, and there are currently very
> >> >>>>>>>>>>few event  tags.
> >> >>>>>>>> I¹m
> >> >>>>>>>>>> not clear on whether the meta-tags effect the end result
> >> >>>>>>>>>> of code size.
> >> >>>>>>>>>>
> >> >>>>>>>>>> Harbs
> >> >>>>>>>>>>
> >> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org>
> wrote:
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed
> >> >>>>>>>>>>> when src set to
> >> >>>>>>>>>> null
> >> >>>>>>>>>>> URL:
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3<https://na01.safelinks.protection.outlook.com/?url=https%253>
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>gi
> >> >>>>>>>>>>> th
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fg
> >> >>>>>>>>>>> ith>
> >> >>>>>>>>>>> ub.com
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ub
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> >> >>>>>>>>>>>%7
> >> C
> >> >>>>>>>>>>>fa7
> >> >>>>>>>>>>>b
> >> >>>>>>>>>>>1b
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
> >> >>>>>>>>>>>at
> >> a
> >> >>>>>>>>>>>=r6
> >> >>>>>>>>>>>H
> >> >>>>>>>>>>>O%
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> a
> >> >>>>>>>>>>>pac
> >> >>>>>>>>>>>h
> >> >>>>>>>>>>>e%
> >> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
> >> >>>>>>>>>>>ec
> >> e
> >> >>>>>>>>>>>e1%
> >> >>>>>>>>>>>7
> >> >>>>>>>>>>>C0
> >> >>>>>>>>>>> %7
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
> >> >>>>>>>>>>>WV
> >> q
> >> >>>>>>>>>>>y17
> >> >>>>>>>>>>>x
> >> >>>>>>>>>>>Fb
> >> >>>>>>>>>>> if
> >> >>>>>>>>>>> 9Gknpc%3D&reserved=0
> >> >>>>>>>>>> issuecomment-340524197
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> This code fails to compile:
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
> >> >>>>>>>>>>>rl
> >> =
> >> >>>>>>>>>>>htt
> >> >>>>>>>>>>>p
> >> >>>>>>>>>>>%3
> >> >>>>>>>>>>> A%
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> >
> >> >>>>>>>>>>> 2F%2Fns.adobe.com
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>2f
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5
> >> >>>>>>>>>>>20
> >> 4
> >> >>>>>>>>>>>860
> >> >>>>>>>>>>>d
> >> >>>>>>>>>>>3%
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
> >> >>>>>>>>>>>14
> >> 1
> >> >>>>>>>>>>>82&
> >> >>>>>>>>>>>s
> >> >>>>>>>>>>>da
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
> >> >>>>>>>>>>>=0
> >> >
> >> >>>>>>>>>>>%2F
> >> >>>>>>>>>>>m
> >> >>>>>>>>>>>xm
> >> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >> >>>>>>>>>>>C6
> >> 3
> >> >>>>>>>>>>>644
> >> >>>>>>>>>>>9
> >> >>>>>>>>>>>84
> >> >>>>>>>>>>> 71
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
> >> >>>>>>>>>>>FK
> >> d
> >> >>>>>>>>>>>zAe
> >> >>>>>>>>>>>4
> >> >>>>>>>>>>>%2
> >> >>>>>>>>>>> Bn
> >> >>>>>>>>>>> o%3D&reserved=0"
> >> >>>>>>>>>>>
> >> xmlns:js="library://ns.apache.org/royale/basic
> >> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <fx:Script><![CDATA[
> >> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       public function blankimage():void {
> >> >>>>>>>>>>>           image.visible = false;
> >> >>>>>>>>>>>           image.src =
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww>
> >> >>>>>>>>>>> .apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ap
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> >> >>>>>>>>>>>60
> >> d
> >> >>>>>>>>>>>3%7
> >> >>>>>>>>>>>C
> >> >>>>>>>>>>>fa
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >> >>>>>>>>>>>2&
> >> s
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=w
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> &
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=0
> >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >> >>>>>>>>>>>09
> >> &
> >> >>>>>>>>>>>sda
> >> >>>>>>>>>>>t
> >> >>>>>>>>>>>a=
> >> >>>>>>>>>>> pn
> >> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >> >>>>>>>> foundation/press/kit/
> >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       public function showImage():void {
> >> >>>>>>>>>>>           image.visible = true;
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       ]]></fx:Script>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <js:valuesImpl>
> >> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
> >> >>>>>>>>>>>   </js:valuesImpl>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <js:initialView>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       <js:View>
> >> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
> >> >>>>>>>>>>> width="100%">
> >> >>>>>>>>>>>               <js:beads>
> >> >>>>>>>>>>>                   <js:VerticalLayout />
> >> >>>>>>>>>>>               </js:beads>
> >> >>>>>>>>>>>               <js:Image id="image"
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> >> >>>>>>>>>>>tp
> >> s
> >> >>>>>>>>>>>%3A
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> %2
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>> Fwww.apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>fw
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> >> >>>>>>>>>>>52
> >> 0
> >> >>>>>>>>>>>486
> >> >>>>>>>>>>>0
> >> >>>>>>>>>>>d3
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >> >>>>>>>>>>>61
> >> 4
> >> >>>>>>>>>>>182
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >> >>>>>>>>>>>ve
> >> d
> >> >>>>>>>>>>>=0>
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>>>35
> >> 5
> >> >>>>>>>>>>>609
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>> at
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >> >>>>>>>>>>>0
> >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >> height="50%"
> >> >>>>>>>>>> layoutNeeded="showImage()" />
> >> >>>>>>>>>>>               <js:TextButton text="Blank"
> >> click="blankimage()"
> >> >>>>>>>>>>>/>
> >> >>>>>>>>>>>           </js:Container>
> >> >>>>>>>>>>>       </js:View>
> >> >>>>>>>>>>>   </js:initialView>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> </js:Application>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> With this error:
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
> >> >>>>>>>>>>>.m
> >> x
> >> >>>>>>>>>>>ml(
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>6)
> >> >>>>>>>>>>> :
> >> >>>>>>>>>> col: 130 This attribute is unexpected. It will be
> ignored.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>               <js:Image id="image"
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> >> >>>>>>>>>>>tp
> >> s
> >> >>>>>>>>>>>%3A
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> %2
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>> Fwww.apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>fw
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> >> >>>>>>>>>>>52
> >> 0
> >> >>>>>>>>>>>486
> >> >>>>>>>>>>>0
> >> >>>>>>>>>>>d3
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >> >>>>>>>>>>>61
> >> 4
> >> >>>>>>>>>>>182
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >> >>>>>>>>>>>ve
> >> d
> >> >>>>>>>>>>>=0>
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>>>35
> >> 5
> >> >>>>>>>>>>>609
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>> at
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >> >>>>>>>>>>>0
> >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >> height="50%"
> >> >>>>>>>>>> layoutNeeded="showImage()" />
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> I assume the only way to do this would be to add a hard
> >> >>>>>>>>>>> coded event
> >> >>>>>>>>>> listener manually like so?
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>   <fx:Script><![CDATA[
> >> >>>>>>>>>>>       public function blankimage():void {
> >> >>>>>>>>>>>           image.visible = false;
> >> >>>>>>>>>>>           image.src =
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww>
> >> >>>>>>>>>>> .apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ap
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> >> >>>>>>>>>>>60
> >> d
> >> >>>>>>>>>>>3%7
> >> >>>>>>>>>>>C
> >> >>>>>>>>>>>fa
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >> >>>>>>>>>>>2&
> >> s
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=w
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> &
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=0
> >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >> >>>>>>>>>>>09
> >> &
> >> >>>>>>>>>>>sda
> >> >>>>>>>>>>>t
> >> >>>>>>>>>>>a=
> >> >>>>>>>>>>> pn
> >> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >> >>>>>>>> foundation/press/kit/
> >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
> >> showImage);
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       public function showImage(event:Event):void {
> >> >>>>>>>>>>>           image.visible = true;
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       ]]></fx:Script>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>---------------------------------------------------------
> -
> >> >>>>>>>>>>>--
> >> -
> >> >>>>>>>>>>>---  This is an automated message from the Apache Git
> >> >>>>>>>>>>>Service.
> >> >>>>>>>>>>> To respond to the message, please log on GitHub and use
> >> >>>>>>>>>>>the URL above to go to the specific comment.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> For queries about this service, please contact
> >> >>>>>>>>>>>Infrastructure
> >> >>>>>>>>>>>at:
> >> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> With regards,
> >> >>>>>>>>>>> Apache Git Services
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>> --
> >> >>>>>>>>>
> >> >>>>>>>>> Piotr Zarzycki
> >> >>>>>>>>>
> >> >>>>>>>>> mobile: +48 880 859 557
> >> >>>>>>>>> skype: zarzycki10
> >> >>>>>>>>>
> >> >>>>>>>>> LinkedIn:
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2<https://na01.safelinks.protection.outlook.com/?url=http%3A%252>
> >> >>>>>>>>>F%
> >> 2
> >> >>>>>>>>>Fww
> >> >>>>>>>>>w
> >> >>>>>>>>>.l
> >> >>>>>>>>> in
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fw
> >> >>>>>>>>>w
> >> >>>>>>>>>w.
> >> >>>>>>>>> lin>
> >> >>>>>>>>> kedin.com
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fk
> >> >>>>>>>>>e
> >> >>>>>>>>>di
> >> >>>>>>>>>
> >>
> >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
> >> >>>>>>>>>7C
> >> f
> >> >>>>>>>>>a7b
> >> >>>>>>>>>1
> >> >>>>>>>>>b5
> >> >>>>>>>>>
> >>
> >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
> >> >>>>>>>>>=M
> >> m
> >> >>>>>>>>>3Kn
> >> >>>>>>>>>X
> >> >>>>>>>>>%2
> >> >>>>>>>>>
> >>
> >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
> >> >>>>>>>>>io
> >> t
> >> >>>>>>>>>rza
> >> >>>>>>>>>r
> >> >>>>>>>>>zy
> >> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
> >> >>>>>>>>>13
> >> 0
> >> >>>>>>>>>355
> >> >>>>>>>>>6
> >> >>>>>>>>>09
> >> >>>>>>>>> &s
> >> >>>>>>>>>
> >>
> >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
> >> >>>>>>>>>se
> >> r
> >> >>>>>>>>>ved
> >> >>>>>>>>>=
> >> >>>>>>>>>0
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>p
> >> >>>>>>>>>l.
> >> >>>>>>>>> li
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>p
> >> >>>>>>>>>l.
> >> >>>>>>>>> li>
> >> >>>>>>>>> nkedin.com
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fn
> >> >>>>>>>>>k
> >> >>>>>>>>>ed
> >> >>>>>>>>>
> >>
> >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> >> >>>>>>>>>%7
> >> C
> >> >>>>>>>>>fa7
> >> >>>>>>>>>b
> >> >>>>>>>>>1b
> >> >>>>>>>>>
> >>
> >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
> >> >>>>>>>>>a=
> >> 4
> >> >>>>>>>>>v8C
> >> >>>>>>>>>S
> >> >>>>>>>>>fu
> >> >>>>>>>>>
> >>
> >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
> >> >>>>>>>>>io
> >> t
> >> >>>>>>>>>r-z
> >> >>>>>>>>>a
> >> >>>>>>>>>rz
> >> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
> >> >>>>>>>>>%7
> >> C
> >> >>>>>>>>>0%7
> >> >>>>>>>>>C
> >> >>>>>>>>>63
> >> >>>>>>>>> 64
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
> >> >>>>>>>>>FH
> >> q
> >> >>>>>>>>>EAK
> >> >>>>>>>>>N
> >> >>>>>>>>>o%
> >> >>>>>>>>> 3D
> >> >>>>>>>>> &reserved=0>
> >> >>>>>>>>>
> >> >>>>>>>>> GitHub:
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%<https://na01.safelinks.protection.outlook.com/?url=https%3A%25>
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fg
> >> >>>>>>>>>i
> >> >>>>>>>>>th
> >> >>>>>>>>> ub
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>g
> >> >>>>>>>>>it
> >> >>>>>>>>> hub>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >> >>>>>>>>>20
> >> 8
> >> >>>>>>>>>d51
> >> >>>>>>>>>f
> >> >>>>>>>>>c3
> >> >>>>>>>>> 8b
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>35
> >> 5
> >> >>>>>>>>>609
> >> >>>>>>>>>&
> >> >>>>>>>>>sd
> >> >>>>>>>>> at
> >> >>>>>>>>>
> >>
> >>>>>>>>>a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
> >> >>>>>>>>>0
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>> --
> >> >>>>>>>
> >> >>>>>>> Piotr Zarzycki
> >> >>>>>>>
> >> >>>>>>> mobile: +48 880 859 557
> >> >>>>>>> skype: zarzycki10
> >> >>>>>>>
> >> >>>>>>> LinkedIn:
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%25>
> >> >>>>>>>2F
> >> www.
> >> >>>>>>>l
> >> >>>>>>>in
> >> >>>>>>> ke
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>www
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nke>
> >> >>>>>>> din.com
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>din
> >> >>>>>>>.
> >> >>>>>>>co
> >> >>>>>>>
> >>
> >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
> >> >>>>>>>1b
> >> 5
> >> >>>>>>>a7b
> >> >>>>>>>3
> >> >>>>>>>44
> >> >>>>>>>
> >>
> >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
> >> >>>>>>>HJ
> >> t
> >> >>>>>>>Y44
> >> >>>>>>>X
> >> >>>>>>>dR
> >> >>>>>>>
> >>
> >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
> >> >>>>>>>at
> >> a
> >> >>>>>>>=02
> >> >>>>>>>%
> >> >>>>>>>7C
> >> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
> >> >>>>>>>60
> >> 9
> >> >>>>>>>&sd
> >> >>>>>>>a
> >> >>>>>>>ta
> >> >>>>>>> =M
> >> >>>>>>>
> >>
> >>>>>>>hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fpl
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nk
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fpl
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nk>
> >> >>>>>>> edin.com
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>edi
> >> >>>>>>>n
> >> >>>>>>>.c
> >> >>>>>>>
> >>
> >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
> >> >>>>>>>b1
> >> b
> >> >>>>>>>5a7
> >> >>>>>>>b
> >> >>>>>>>34
> >> >>>>>>>
> >>
> >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
> >> >>>>>>>3i
> >> L
> >> >>>>>>>sgF
> >> >>>>>>>8
> >> >>>>>>>wv
> >> >>>>>>>
> >> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
> >> zarzycki
> >> >>>>>>>-92
> >> >>>>>>>a
> >> >>>>>>>53
> >> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >> >>>>>>>C6
> >> 3
> >> >>>>>>>644
> >> >>>>>>>9
> >> >>>>>>>84
> >> >>>>>>> 71
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
> >> >>>>>>>%3
> >> D
> >> >>>>>>>&re
> >> >>>>>>>s
> >> >>>>>>>er
> >> >>>>>>> ve
> >> >>>>>>> d=0>
> >> >>>>>>>
> >> >>>>>>> GitHub:
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>git
> >> >>>>>>>h
> >> >>>>>>>ub
> >> >>>>>>> .c
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fgi
> >> >>>>>>>t
> >> >>>>>>>hu
> >> >>>>>>> b.c>
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
> >> >>>>>>>51
> >> f
> >> >>>>>>>c38
> >> >>>>>>>b
> >> >>>>>>>07
> >> >>>>>>> %7
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> >> >>>>>>>&s
> >> d
> >> >>>>>>>ata
> >> >>>>>>>=
> >> >>>>>>>mi
> >> >>>>>>> 12
> >> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> >> >>>>
> >> >>>
> >> >>
> >> >
> >
> >




RE: Event Metadata

Posted by Idylog - Nicolas Granon <ng...@idylog.com>.
Thank you for your answer.

You say that there is no sure way to know which is faster/smaller.

This somewhat joins your comment about my suggestion regarding "DateChooserEvent" ("[royale-asjs] branch develop updated: Fixes #24" thread) where you speak about "usability vs code size".

At some point, you have to choose your target (no pun intended). I mean, you have to choose if the SDK main "philosophy" is "small", or "fast" or "usable" ("main" meaning that is does not ignore the other options, but is considered prevalent).

Do not forget that (enterprise) Flex Applications have typical long load delays : we do not care if an application has a 20s. or 30s. load time (2mn would be excessive!).
We compare with "local install" applications like, say Excel, or Photoshop, or accounting/payroll/ or any enterprise integrated management software (ERPs).
We definitely do *not* compare with a web site ! (where we want load time under 3 seconds at most).

Did you ever try to load a Sage(tm) "cloud" application ? (I do not blame Sage(tm). It's just an example. I could have talked about SAP(tm) or any other "cloud enterprise management software").
Load time is about 1mn30s at best ! Really.
Or, check Photoshop (local install) load time.

Code size, for us, (I insist : "for us, enterprise app developers"), is not really an issue. Our first Flex app was created 8 years ago. It's now a 2MB SWF (compressed) initial load. We never had any complaint from any customer about load time.
On the other end, runtime performance *is* important (interactive).

In the end, what will make us choose Apache Royale over other options (React being on top of the list) is mainly usability from the developers' point of view, and interactive responsiveness, not "small footprint".

If Apache Royale main target is enterprise applications (RIAs) we believe it should favor usability over small footprint and short load time and avoid "unnecessary" complexity.
Enterprise apps users do not have the same expectations as "individuals" (web surfers). They favor consistency, robustness and ergonomics over raw performances (but of course, runtime performance must not go against ergonomics). Even on mobile devices, our customers accept "long" load time because they know that they are loading an enterprise app. Not a widget.

*****************************************************************************************************
Classic Flex was about RIAs. We realize that we do not really know what Apache Royale is about.
Is it RIAs ?
*****************************************************************************************************

We believe that it should be clearly decided, as it will shape the evolution of the project.

Some of us here (applications developers) are in the RIA domain. Others might be in other domains where the trade-off are different.

In classic Flex, code size was not a concern : code was big (really big !) but usability was great. It was an assumed choice, and I believe all RIAs developers were quite aware of that choice. If code was really too big, you could slice the app into modules and load on-demand.
Believe us, we never heard a user complaining about time lag when switching from "payroll module" to "accounting module" (even if it meant waiting for 30s.) : when you switch from one "universe" to another, everybody think it is normal to have a lag.

On the other hand, it the dev team's goal is to create a "web site" creation tool, please say it clearly ! It's quite a different goal, and trade-off output will be quite different !

To summarize, we believe that, for enterprise application developers, the "usability" criterion comes first, "fast" being second, and "small" being last.

I'm pretty sure that all this will raise some comments !

Best regards,

Nicolas Granon




> -----Message d'origine-----
> De : Alex Harui [mailto:aharui@adobe.com.INVALID]
> Envoyé : mercredi 1 novembre 2017 21:30
> À : dev@royale.apache.org; ngranon@idylog.com
> Objet : Re: Event Metadata
> 
> That is one of the possible approaches.  The trade-off is, as you
> mention, having to filter out the right event vs all of the work re-
> dispatching events.  Right now the strand is the wrapping component.
> It doesn't have to be and maybe we should change that, but in order for
> MXML event attributes to work you have to dispatch off the wrapping
> component and that makes the beads want to dispatch off the
> strand/component and then you are back to filtering again.
> 
> One advantage of dispatching off the strand is that a bead that wants
> to get an event from another bead doesn't have to find that bead.  It
> can just listen to the strand.  It isn't any different than any other
> shared communication infrastructure.  You have to spend time filtering
> or figuring out direct hookups.  I'm not sure there is a way to know
> what is faster/smaller.  It might differ based on the situation.
> 
> My 2 cents,
> -Alex
> 
> On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ng...@idylog.com>
> wrote:
> 
> >Excuse my naive comment :
> >
> >In my opinion, we have two different situations :
> >
> >Case 1 : I use a component, and I add one or more beads to it (in the
> >source code where the component is used) (inlined).
> >Case 2 : I use a component that is *already* composed of one strand
> and
> >a number of beads (or none) (a reusable component)
> >
> >Case 1 :
> >In my mind (as an app developer), I obviously know what I am doing.
> >
> >It is quite logical, from my point of view, to have listeners attached
> >to the "component" (that is, indirectly, to the "strand part") and
> >other listeners (or same !) attached to the beads I am interested in.
> >After all, if I understood clearly, a bead is a way to "add
> >functionality", right ?
> >Then, it is very logical to me to listen to events from that specific
> >functionality bead) since I expressly added that piece of
> functionality.
> >I should not be confused by events with same name but from other beads
> >: I only have to make sure that I listen to the "target" phase.
> >
> >In MXML, component events could be captured from the "component" tag,
> >and bead events from the bead sub-tags.
> >
> >If a bead wants to listen to events from another bead, nothing
> prevents
> >it from doing so (Im not sure of that ??).
> >The metatags exposed by the strand as well as the metatags exposed by
> >the beads would then be accessible.
> >
> >Case 2 :
> >Maybe I use a component designed by someone else, or maybe I designed
> >it myself.
> >It is the component developer's responsibility to manage "internal"
> >events and then to redispatch "beads" events as "component" events if
> >needed (maybe under another event name).
> >A developer using a "wrapped" composite component should only listen
> to
> >"component" events (public events), not "bead event" (abstraction of
> >internal representation) The metatags exposed by the "wrapped"
> >component should be public events only.
> >
> >Final case :
> >The wrapped component is composited from another wrapped component
> plus
> >some additional beads. In other words, it expends an reusable
> component
> >which already contains some beads.
> >In that case, the "inner" component (the base class) is considered as
> a
> >strand and the global logic is the same as in case (2).
> >
> >All in all, this is not very different from what happens in classic
> >Flex when building "complex " components...(which are really
> >composited, not simple subclasses).
> >
> >Too naïve to be useful, maybe ???
> >
> >Nicolas Granon
> >
> >
> >
> >
> >> -----Message d'origine-----
> >> De : Peter Ent [mailto:pent@adobe.com.INVALID] Envoyé : mardi 31
> >> octobre 2017 20:39 À : dev@royale.apache.org Objet : Re: Event
> >> Metadata (was Re: [GitHub] ...: Image not removed when src set to
> >> null
> >>
> >> I typically use the strand as the central dispatcher for intra-bead
> >> communication. Sometimes an event from a bead conflicts with an
> event
> >> dispatched by the strand to the "outside". For example, if a bead
> >> were to need to send a "change" event and another bead was listening
> >> for that event, "change" is pretty generic and an app writer who is
> >> also listening for change on that strand might get the wrong event.
> >>
> >> I have not developed any protocol to deal with this, but perhaps
> >> events used internally for components should prefix the event type
> >> with something (e.g., "_change") unique to indicate the event is
> internal.
> >> Events are really the only way we have of beads talking to each
> other.
> >>
> >> We need to document what events a bead is doing to send and what it
> >> is willing to accept and how it will be used. I confess I have not
> >> done that very often and for Royale to be useful, documentation like
> >> this has to be done. But we need a pattern of use established so
> >> there is consistency.
> >>
> >> Let's say you have a bead that you do want to put into MXML and that
> >> bead produces events. The Drag and Drop work comes to mind. When you
> >> add a DragSource bead to a list, you the app writer, might want to
> >> know when certain things happen, such as DRAG_START. The List does
> >> not have DRAG_START listed in its event metadata so dispatching this
> >> event from the List won't work for the app writer. The app writer
> wants to do:
> >> <js:DragSource dragStart="myThing(event)" /> right in MXML.
> >>
> >> As it turns out, this DRAG_START is also used internally by the drag
> >> controller so I think there is another class of events that do get
> >> dispatched by beads but not on the strand, but on themselves. In
> this
> >> case, these events are not "internal" but public.
> >>
> >> Both internal (dispatched by beads targeting the strand) and public
> >> (dispatched by beads targeting themselves) can coexist nicely as
> long
> >> as we have some rules.
> >>
> >> HTH
> >> ‹peter
> >>
> >> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID> wrote:
> >>
> >> >For 1) the rule already is that if you want to access an implicit
> >> >bead you have to explicitly declare it.  So if a bead is normally
> >> >brought
> >> in
> >> >via CSS, you instead declare that bead on the strand and make
> >> adjustments.
> >> >UIBase doesn't care how the beads get placed on the strand, and all
> >> >bead loading code is supposed to check the strand first before
> >> grabbing
> >> >a default bead from CSS.  IOW, if it wasn't declared in MXML, then
> >> >declare it in MXML in order to access it.
> >> >
> >> >For 2) we are learning towards having beads dispatch their
> important
> >> >events off the strand instead of off of the bead. Otherwise we have
> >> >to add event forwarding code if people want to listen to the
> >> >containing component for events which is pretty normal if you think
> >> >of the component as a black box.  And then duplicate event names
> >> >does become
> >> an issue.
> >> >
> >> >It will be interesting to see you try your EventListener bead and
> >> >see how it feels and if it is a lot of code or not.
> >> >
> >> >Thanks,
> >> >-Alex
> >> >
> >> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
> >> >
> >> >>The problems that come to mind with attaching the events to the
> >> >>beads
> >> >>are:
> >> >>1. The beads are not necessarily declared in MXML, so that leaves
> >> >>the question of how to address the beads via MXML.
> >> >>2. More than one bead might dispatch the same event. To get them
> >> >>all, it seems like it¹s necessary to attach the event listener to
> >> >>the
> >> strand.
> >> >>
> >> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui
> >> >>><ah...@adobe.com.INVALID>
> >> >>>wrote:
> >> >>>
> >> >>> Renaming thread.
> >> >>>
> >> >>> Another option is for the beads themselves to have event
> metadata
> >> >>> for events they dispatch and either:
> >> >>> 1) the bead dispatches both off of itself and its strand, or
> >> >>> 2) certain addEventListener calls are passed to the strand.
> >> >>>
> >> >>> That's sort of the general pattern for de-composing or
> "exploding"
> >> a
> >> >>> component.  And then the wrapping component doesn't need
> metadata
> >> >>> that won't apply to the beads declared.
> >> >>>
> >> >>> Having a bead that can attach a particular kind of listener and
> >> call
> >> >>>a  handler also fits in our patterns.  And similarly, a bead that
> >> >>>dispatches  platform-specific might be useful as well.
> >> >>>
> >> >>> My 2 cents,
> >> >>> -Alex
> >> >>>
> >> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
> >> >>>
> >> >>>> Good points.
> >> >>>>
> >> >>>>> One issue to consider are whether a container of beads should
> >> >>>>>be have  metadata about the events dispatched by its beads
> since
> >> >>>>>the changing of  beads could make that metadata incorrect.
> IMO,
> >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter IDE
> >> >>>>>could figure out what beads are  currently in play and
> aggregate
> >> >>>>>allowable events from those beads'
> >> >>>>> metadata someday.
> >> >>>>
> >> >>>> Hmm. Not a simple problem. One approach we can take is to add
> >> >>>>metadata to  the component and include documentation on which
> >> >>>>beads are required for  the event to fire.
> >> >>>>
> >> >>>> Of course this only takes care of more-or-less standard beads.
> >> >>>>Optional
> >> >>>> beads that are generally not used would need another mechanism
> >> >>>>to specify  event handlers in MXML (if that would be supported).
> >> >>>>
> >> >>>> Considering the ³smarter IDE approach², it seems like there¹s
> >> >>>>two
> >> >>>> problems:
> >> >>>> 1. The compiler needs to know that the attributes are OK.
> >> >>>>Currently, the  compiler will complain if you use an
> unrecognized
> >> >>>>tag.
> >> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know if
> a
> >> >>>>specific  bead is actually added. They can be added using CSS,
> AS
> >> >>>>code and MXML.
> >> >>>> Dynamically following that flow in tooling seems like a
> *really*
> >> >>>>hard  problem.
> >> >>>>
> >> >>>> Another idea would be to allow specifying event handlers in a
> >> >>>>format  something like this:
> >> >>>> <js:FooComponent id=³foo²>
> >> >>>> <js:events>
> >> >>>> <js:EventDescriptor type²layoutNeeded²
> >> >>>>handler=³handleLayoutNeeded()²/>
> >> >>>> </js:events>
> >> >>>> </js:FooComponent>
> >> >>>>
> >> >>>> I¹m kind of liking this idea as it follows the pattern we
> >> currently
> >> >>>>have  for beads and styles. EventDescriptor could be subclassed
> >> >>>>to have classes  of events which could offer code completion for
> >> >>>>the available event  types. There would not be enforcement that
> >> >>>>the events would actually be  dispatched, but I think it would
> be
> >> >>>>helpful and would allow users to  specify random event handlers
> >> >>>>declaratively.
> >> >>>>
> >> >>>>> Another issue to consider is cross-platform.  A component may
> >> >>>>> not be able to dispatch the events listed in metadata on all
> >> >>>>> platforms.
> >> >>>>
> >> >>>> It seems to me that metadata on cross-platform components
> should
> >> >>>>always  be cross-platform. If there are platform-specific
> events,
> >> >>>>they should not  be included or there should be a
> >> >>>>platform-specific component. We¹ve  already solved the problem
> >> >>>>with mouse events by renaming the event  strings in the compiler
> >> >>>>depending on the
> >> target.
> >> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically
> for
> >> JS
> >> >>>>output). I think Mouse  events are an exception, but if there
> are
> >> >>>>any other events that fit this  exception, they should be
> handled
> >> >>>>the same way.
> >> >>>>
> >> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
> >> <ah...@adobe.com.INVALID>
> >> >>>>> wrote:
> >> >>>>>
> >> >>>>> Some Metadata is kept in the output, but events probably
> aren't.
> >> >>>>>
> >> >>>>> One issue to consider are whether a container of beads should
> >> >>>>>be have  metadata about the events dispatched by its beads
> since
> >> >>>>>the changing of  beads could make that metadata incorrect.
> IMO,
> >> >>>>>this has been a problem  in  Flex forever.  Maybe a smarter IDE
> >> >>>>>could figure out what beads are  currently in play and
> aggregate
> >> >>>>>allowable events from those beads'
> >> >>>>> metadata someday.
> >> >>>>>
> >> >>>>> Another issue to consider is cross-platform.  A component may
> >> >>>>> not be able to dispatch the events listed in metadata on all
> >> >>>>> platforms.
> >> >>>>>
> >> >>>>> Also consider that on JS, events probably have to be
> propagated
> >> >>>>>from the  wrapped element to the strand so there is cost there.
> >> >>>>>
> >> >>>>> It is hopefully easy enough for anyone who wants to get an
> >> >>>>>event that  isn't already in metadata, to subclass, add the
> >> >>>>>metadata and any wiring.
> >> >>>>>
> >> >>>>> My 2 cents,
> >> >>>>> -Alex
> >> >>>>>
> >> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
> >> >>>>> <ma...@gmail.com>> wrote:
> >> >>>>>
> >> >>>>>> I¹m not talking about adding events. I¹m talking about adding
> >> >>>>>>metadata  for *existing events* so they could be addressed in
> >> >>>>>>MXML.
> >> >>>>>>
> >> >>>>>>
> >> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
> >> >>>>>>> <pi...@gmail.com>
> >> >>>>>>> wrote:
> >> >>>>>>>
> >> >>>>>>> If you decide to add event that's fine with me. :) It is
> just
> >> >>>>>>>the  matter of  thinking about those Basic components from my
> >> >>>>>>>sight. I have started to  look  at them as something which
> >> should
> >> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
> >> >>>>>>>features should be provided by beads - if it is  possible  or
> >> >>>>>>>by Express.
> >> >>>>>>>
> >> >>>>>>> The exception could be and MDL from that which I would like
> >> >>>>>>>to extend,  but  here I can think about those components as
> >> >>>>>>>they
> >> are
> >> >>>>>>>Express right now.
> >> >>>>>>>
> >> >>>>>>> Piotr
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
> >> >>>>>>>
> >> >>>>>>>> Why? Unless it adds overhead, it seems to me like any event
> >> >>>>>>>>that can  be  added using addEventListener() should be
> >> >>>>>>>>addressable using MXML.
> >> >>>>>>>>
> >> >>>>>>>> I¹m just not sure from a technical perspective whether the
> >> MXML
> >> >>>>>>>>meta  tags  add overhead if not used.
> >> >>>>>>>>
> >> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
> >> >>>>>>>>> <pi...@gmail.com>
> >> >>>>>>>> wrote:
> >> >>>>>>>>>
> >> >>>>>>>>> Hi Harbs,
> >> >>>>>>>>>
> >> >>>>>>>>> Some time ago there were discussion on Flex Dev which
> makes
> >> me
> >> >>>>>>>>> realize
> >> >>>>>>>> that
> >> >>>>>>>>> we should add event tags as long as they are reflecting
> >> >>>>>>>>>some native  HTML  api, unless we are in express. For
> >> >>>>>>>>>example we
> >> are
> >> >>>>>>>>>using in many  places  "change" event which is I believe
> >> >>>>>>>>>quite common in JS world, but I  would  avoid any
> additional
> >> >>>>>>>>>custom one. In the other world Let's answer to  the
> >> >>>>>>>>>question in following case - Does "img" in HTML world have
> "load"
> >> >>>>>>>>> event ?
> >> >>>>>>>>>
> >> >>>>>>>>> Piotr
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
> >> >>>>>>>>>
> >> >>>>>>>>>> This does raise a good question:
> >> >>>>>>>>>>
> >> >>>>>>>>>> Should we be adding MXML meta tags for all supported
> events?
> >> >>>>>>>>>> It seems
> >> >>>>>>>> like
> >> >>>>>>>>>> a desirable thing to have, and there are currently very
> >> >>>>>>>>>>few event  tags.
> >> >>>>>>>> I¹m
> >> >>>>>>>>>> not clear on whether the meta-tags effect the end result
> >> >>>>>>>>>> of code size.
> >> >>>>>>>>>>
> >> >>>>>>>>>> Harbs
> >> >>>>>>>>>>
> >> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org>
> wrote:
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed
> >> >>>>>>>>>>> when src set to
> >> >>>>>>>>>> null
> >> >>>>>>>>>>> URL:
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>gi
> >> >>>>>>>>>>> th
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fg
> >> >>>>>>>>>>> ith>
> >> >>>>>>>>>>> ub.com
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ub
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> >> >>>>>>>>>>>%7
> >> C
> >> >>>>>>>>>>>fa7
> >> >>>>>>>>>>>b
> >> >>>>>>>>>>>1b
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
> >> >>>>>>>>>>>at
> >> a
> >> >>>>>>>>>>>=r6
> >> >>>>>>>>>>>H
> >> >>>>>>>>>>>O%
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> a
> >> >>>>>>>>>>>pac
> >> >>>>>>>>>>>h
> >> >>>>>>>>>>>e%
> >> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178d
> >> >>>>>>>>>>>ec
> >> e
> >> >>>>>>>>>>>e1%
> >> >>>>>>>>>>>7
> >> >>>>>>>>>>>C0
> >> >>>>>>>>>>> %7
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGt
> >> >>>>>>>>>>>WV
> >> q
> >> >>>>>>>>>>>y17
> >> >>>>>>>>>>>x
> >> >>>>>>>>>>>Fb
> >> >>>>>>>>>>> if
> >> >>>>>>>>>>> 9Gknpc%3D&reserved=0
> >> >>>>>>>>>> issuecomment-340524197
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> This code fails to compile:
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?u
> >> >>>>>>>>>>>rl
> >> =
> >> >>>>>>>>>>>htt
> >> >>>>>>>>>>>p
> >> >>>>>>>>>>>%3
> >> >>>>>>>>>>> A%
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> >
> >> >>>>>>>>>>> 2F%2Fns.adobe.com
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>2f
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5
> >> >>>>>>>>>>>20
> >> 4
> >> >>>>>>>>>>>860
> >> >>>>>>>>>>>d
> >> >>>>>>>>>>>3%
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364504176656
> >> >>>>>>>>>>>14
> >> 1
> >> >>>>>>>>>>>82&
> >> >>>>>>>>>>>s
> >> >>>>>>>>>>>da
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved
> >> >>>>>>>>>>>=0
> >> >
> >> >>>>>>>>>>>%2F
> >> >>>>>>>>>>>m
> >> >>>>>>>>>>>xm
> >> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >> >>>>>>>>>>>C6
> >> 3
> >> >>>>>>>>>>>644
> >> >>>>>>>>>>>9
> >> >>>>>>>>>>>84
> >> >>>>>>>>>>> 71
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqL
> >> >>>>>>>>>>>FK
> >> d
> >> >>>>>>>>>>>zAe
> >> >>>>>>>>>>>4
> >> >>>>>>>>>>>%2
> >> >>>>>>>>>>> Bn
> >> >>>>>>>>>>> o%3D&reserved=0"
> >> >>>>>>>>>>>
> >> xmlns:js="library://ns.apache.org/royale/basic
> >> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <fx:Script><![CDATA[
> >> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       public function blankimage():void {
> >> >>>>>>>>>>>           image.visible = false;
> >> >>>>>>>>>>>           image.src =
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww>
> >> >>>>>>>>>>> .apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ap
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> >> >>>>>>>>>>>60
> >> d
> >> >>>>>>>>>>>3%7
> >> >>>>>>>>>>>C
> >> >>>>>>>>>>>fa
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >> >>>>>>>>>>>2&
> >> s
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=w
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> &
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=0
> >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >> >>>>>>>>>>>09
> >> &
> >> >>>>>>>>>>>sda
> >> >>>>>>>>>>>t
> >> >>>>>>>>>>>a=
> >> >>>>>>>>>>> pn
> >> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >> >>>>>>>> foundation/press/kit/
> >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       public function showImage():void {
> >> >>>>>>>>>>>           image.visible = true;
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       ]]></fx:Script>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <js:valuesImpl>
> >> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
> >> >>>>>>>>>>>   </js:valuesImpl>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>   <js:initialView>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       <js:View>
> >> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
> >> >>>>>>>>>>> width="100%">
> >> >>>>>>>>>>>               <js:beads>
> >> >>>>>>>>>>>                   <js:VerticalLayout />
> >> >>>>>>>>>>>               </js:beads>
> >> >>>>>>>>>>>               <js:Image id="image"
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> >> >>>>>>>>>>>tp
> >> s
> >> >>>>>>>>>>>%3A
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> %2
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>> Fwww.apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>fw
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> >> >>>>>>>>>>>52
> >> 0
> >> >>>>>>>>>>>486
> >> >>>>>>>>>>>0
> >> >>>>>>>>>>>d3
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >> >>>>>>>>>>>61
> >> 4
> >> >>>>>>>>>>>182
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >> >>>>>>>>>>>ve
> >> d
> >> >>>>>>>>>>>=0>
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>>>35
> >> 5
> >> >>>>>>>>>>>609
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>> at
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >> >>>>>>>>>>>0
> >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >> height="50%"
> >> >>>>>>>>>> layoutNeeded="showImage()" />
> >> >>>>>>>>>>>               <js:TextButton text="Blank"
> >> click="blankimage()"
> >> >>>>>>>>>>>/>
> >> >>>>>>>>>>>           </js:Container>
> >> >>>>>>>>>>>       </js:View>
> >> >>>>>>>>>>>   </js:initialView>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> </js:Application>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> With this error:
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank
> >> >>>>>>>>>>>.m
> >> x
> >> >>>>>>>>>>>ml(
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>6)
> >> >>>>>>>>>>> :
> >> >>>>>>>>>> col: 130 This attribute is unexpected. It will be
> ignored.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>               <js:Image id="image"
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=ht
> >> >>>>>>>>>>>tp
> >> s
> >> >>>>>>>>>>>%3A
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> %2
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>> Fwww.apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>fw
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d
> >> >>>>>>>>>>>52
> >> 0
> >> >>>>>>>>>>>486
> >> >>>>>>>>>>>0
> >> >>>>>>>>>>>d3
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665
> >> >>>>>>>>>>>61
> >> 4
> >> >>>>>>>>>>>182
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reser
> >> >>>>>>>>>>>ve
> >> d
> >> >>>>>>>>>>>=0>
> >> >>>>>>>>>>>%
> >> >>>>>>>>>>>2F
> >> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>>>35
> >> 5
> >> >>>>>>>>>>>609
> >> >>>>>>>>>>>&
> >> >>>>>>>>>>>sd
> >> >>>>>>>>>>> at
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=
> >> >>>>>>>>>>>0
> >> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> >> height="50%"
> >> >>>>>>>>>> layoutNeeded="showImage()" />
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> I assume the only way to do this would be to add a hard
> >> >>>>>>>>>>> coded event
> >> >>>>>>>>>> listener manually like so?
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>   <fx:Script><![CDATA[
> >> >>>>>>>>>>>       public function blankimage():void {
> >> >>>>>>>>>>>           image.visible = false;
> >> >>>>>>>>>>>           image.src =
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%
> >> >>>>>>>>>>>3A
> >> %
> >> >>>>>>>>>>>2F%
> >> >>>>>>>>>>>2
> >> >>>>>>>>>>>Fw
> >> >>>>>>>>>>> ww>
> >> >>>>>>>>>>> .apache.org
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3
> >> >>>>>>>>>>>A%
> >> 2
> >> >>>>>>>>>>>F%2
> >> >>>>>>>>>>>F
> >> >>>>>>>>>>>ap
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52048
> >> >>>>>>>>>>>60
> >> d
> >> >>>>>>>>>>>3%7
> >> >>>>>>>>>>>C
> >> >>>>>>>>>>>fa
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561418
> >> >>>>>>>>>>>2&
> >> s
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=w
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%
> >> >>>>>>>>>>>2F
> >> &
> >> >>>>>>>>>>>dat
> >> >>>>>>>>>>>a
> >> >>>>>>>>>>>=0
> >> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
> >> >>>>>>>>>>>09
> >> &
> >> >>>>>>>>>>>sda
> >> >>>>>>>>>>>t
> >> >>>>>>>>>>>a=
> >> >>>>>>>>>>> pn
> >> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >> >>>>>>>> foundation/press/kit/
> >> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
> >> showImage);
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>       public function showImage(event:Event):void {
> >> >>>>>>>>>>>           image.visible = true;
> >> >>>>>>>>>>>       }
> >> >>>>>>>>>>>       ]]></fx:Script>
> >> >>>>>>>>>>> ```
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>---------------------------------------------------------
> -
> >> >>>>>>>>>>>--
> >> -
> >> >>>>>>>>>>>---  This is an automated message from the Apache Git
> >> >>>>>>>>>>>Service.
> >> >>>>>>>>>>> To respond to the message, please log on GitHub and use
> >> >>>>>>>>>>>the URL above to go to the specific comment.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> For queries about this service, please contact
> >> >>>>>>>>>>>Infrastructure
> >> >>>>>>>>>>>at:
> >> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> With regards,
> >> >>>>>>>>>>> Apache Git Services
> >> >>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>> --
> >> >>>>>>>>>
> >> >>>>>>>>> Piotr Zarzycki
> >> >>>>>>>>>
> >> >>>>>>>>> mobile: +48 880 859 557
> >> >>>>>>>>> skype: zarzycki10
> >> >>>>>>>>>
> >> >>>>>>>>> LinkedIn:
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2
> >> >>>>>>>>>F%
> >> 2
> >> >>>>>>>>>Fww
> >> >>>>>>>>>w
> >> >>>>>>>>>.l
> >> >>>>>>>>> in
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fw
> >> >>>>>>>>>w
> >> >>>>>>>>>w.
> >> >>>>>>>>> lin>
> >> >>>>>>>>> kedin.com
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fk
> >> >>>>>>>>>e
> >> >>>>>>>>>di
> >> >>>>>>>>>
> >>
> >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
> >> >>>>>>>>>7C
> >> f
> >> >>>>>>>>>a7b
> >> >>>>>>>>>1
> >> >>>>>>>>>b5
> >> >>>>>>>>>
> >>
> >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
> >> >>>>>>>>>=M
> >> m
> >> >>>>>>>>>3Kn
> >> >>>>>>>>>X
> >> >>>>>>>>>%2
> >> >>>>>>>>>
> >>
> >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fp
> >> >>>>>>>>>io
> >> t
> >> >>>>>>>>>rza
> >> >>>>>>>>>r
> >> >>>>>>>>>zy
> >> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847
> >> >>>>>>>>>13
> >> 0
> >> >>>>>>>>>355
> >> >>>>>>>>>6
> >> >>>>>>>>>09
> >> >>>>>>>>> &s
> >> >>>>>>>>>
> >>
> >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&re
> >> >>>>>>>>>se
> >> r
> >> >>>>>>>>>ved
> >> >>>>>>>>>=
> >> >>>>>>>>>0
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>p
> >> >>>>>>>>>l.
> >> >>>>>>>>> li
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>p
> >> >>>>>>>>>l.
> >> >>>>>>>>> li>
> >> >>>>>>>>> nkedin.com
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fn
> >> >>>>>>>>>k
> >> >>>>>>>>>ed
> >> >>>>>>>>>
> >>
> >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
> >> >>>>>>>>>%7
> >> C
> >> >>>>>>>>>fa7
> >> >>>>>>>>>b
> >> >>>>>>>>>1b
> >> >>>>>>>>>
> >>
> >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
> >> >>>>>>>>>a=
> >> 4
> >> >>>>>>>>>v8C
> >> >>>>>>>>>S
> >> >>>>>>>>>fu
> >> >>>>>>>>>
> >>
> >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fp
> >> >>>>>>>>>io
> >> t
> >> >>>>>>>>>r-z
> >> >>>>>>>>>a
> >> >>>>>>>>>rz
> >> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
> >> >>>>>>>>>%7
> >> C
> >> >>>>>>>>>0%7
> >> >>>>>>>>>C
> >> >>>>>>>>>63
> >> >>>>>>>>> 64
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2
> >> >>>>>>>>>FH
> >> q
> >> >>>>>>>>>EAK
> >> >>>>>>>>>N
> >> >>>>>>>>>o%
> >> >>>>>>>>> 3D
> >> >>>>>>>>> &reserved=0>
> >> >>>>>>>>>
> >> >>>>>>>>> GitHub:
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%
> >> >>>>>>>>>2F
> >> %
> >> >>>>>>>>>2Fg
> >> >>>>>>>>>i
> >> >>>>>>>>>th
> >> >>>>>>>>> ub
> >> >>>>>>>>>
> >>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> >> >>>>>>>>>%2
> >> F
> >> >>>>>>>>>%2F
> >> >>>>>>>>>g
> >> >>>>>>>>>it
> >> >>>>>>>>> hub>
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >> >>>>>>>>>20
> >> 8
> >> >>>>>>>>>d51
> >> >>>>>>>>>f
> >> >>>>>>>>>c3
> >> >>>>>>>>> 8b
> >> >>>>>>>>>
> >> >>>>>>>>>
> >>
> >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130
> >> >>>>>>>>>35
> >> 5
> >> >>>>>>>>>609
> >> >>>>>>>>>&
> >> >>>>>>>>>sd
> >> >>>>>>>>> at
> >> >>>>>>>>>
> >>
> >>>>>>>>>a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=
> >> >>>>>>>>>0
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>> --
> >> >>>>>>>
> >> >>>>>>> Piotr Zarzycki
> >> >>>>>>>
> >> >>>>>>> mobile: +48 880 859 557
> >> >>>>>>> skype: zarzycki10
> >> >>>>>>>
> >> >>>>>>> LinkedIn:
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%
> >> >>>>>>>2F
> >> www.
> >> >>>>>>>l
> >> >>>>>>>in
> >> >>>>>>> ke
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>www
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nke>
> >> >>>>>>> din.com
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>din
> >> >>>>>>>.
> >> >>>>>>>co
> >> >>>>>>>
> >>
> >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
> >> >>>>>>>1b
> >> 5
> >> >>>>>>>a7b
> >> >>>>>>>3
> >> >>>>>>>44
> >> >>>>>>>
> >>
> >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0
> >> >>>>>>>HJ
> >> t
> >> >>>>>>>Y44
> >> >>>>>>>X
> >> >>>>>>>dR
> >> >>>>>>>
> >>
> >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&d
> >> >>>>>>>at
> >> a
> >> >>>>>>>=02
> >> >>>>>>>%
> >> >>>>>>>7C
> >> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
> >> >>>>>>>60
> >> 9
> >> >>>>>>>&sd
> >> >>>>>>>a
> >> >>>>>>>ta
> >> >>>>>>> =M
> >> >>>>>>>
> >>
> >>>>>>>hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
> >> >>>>>>>
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fpl
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nk
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fpl
> >> >>>>>>>.
> >> >>>>>>>li
> >> >>>>>>> nk>
> >> >>>>>>> edin.com
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>edi
> >> >>>>>>>n
> >> >>>>>>>.c
> >> >>>>>>>
> >>
> >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
> >> >>>>>>>b1
> >> b
> >> >>>>>>>5a7
> >> >>>>>>>b
> >> >>>>>>>34
> >> >>>>>>>
> >>
> >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN
> >> >>>>>>>3i
> >> L
> >> >>>>>>>sgF
> >> >>>>>>>8
> >> >>>>>>>wv
> >> >>>>>>>
> >> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
> >> zarzycki
> >> >>>>>>>-92
> >> >>>>>>>a
> >> >>>>>>>53
> >> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
> >> >>>>>>>C6
> >> 3
> >> >>>>>>>644
> >> >>>>>>>9
> >> >>>>>>>84
> >> >>>>>>> 71
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo
> >> >>>>>>>%3
> >> D
> >> >>>>>>>&re
> >> >>>>>>>s
> >> >>>>>>>er
> >> >>>>>>> ve
> >> >>>>>>> d=0>
> >> >>>>>>>
> >> >>>>>>> GitHub:
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
> >> >>>>>>>%2
> >> F
> >> >>>>>>>git
> >> >>>>>>>h
> >> >>>>>>>ub
> >> >>>>>>> .c
> >> >>>>>>>
> >>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> >> >>>>>>>F%
> >> 2
> >> >>>>>>>Fgi
> >> >>>>>>>t
> >> >>>>>>>hu
> >> >>>>>>> b.c>
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d
> >> >>>>>>>51
> >> f
> >> >>>>>>>c38
> >> >>>>>>>b
> >> >>>>>>>07
> >> >>>>>>> %7
> >> >>>>>>>
> >> >>>>>>>
> >>
> >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> >> >>>>>>>&s
> >> d
> >> >>>>>>>ata
> >> >>>>>>>=
> >> >>>>>>>mi
> >> >>>>>>> 12
> >> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> >> >>>>
> >> >>>
> >> >>
> >> >
> >
> >




Re: Event Metadata

Posted by Alex Harui <ah...@adobe.com.INVALID>.
That is one of the possible approaches.  The trade-off is, as you mention,
having to filter out the right event vs all of the work re-dispatching
events.  Right now the strand is the wrapping component.  It doesn't have
to be and maybe we should change that, but in order for MXML event
attributes to work you have to dispatch off the wrapping component and
that makes the beads want to dispatch off the strand/component and then
you are back to filtering again.

One advantage of dispatching off the strand is that a bead that wants to
get an event from another bead doesn't have to find that bead.  It can
just listen to the strand.  It isn't any different than any other shared
communication infrastructure.  You have to spend time filtering or
figuring out direct hookups.  I'm not sure there is a way to know what is
faster/smaller.  It might differ based on the situation.

My 2 cents,
-Alex

On 11/1/17, 12:15 PM, "Idylog - Nicolas Granon" <ng...@idylog.com> wrote:

>Excuse my naive comment :
>
>In my opinion, we have two different situations :
>
>Case 1 : I use a component, and I add one or more beads to it (in the
>source
>code where the component is used) (inlined).
>Case 2 : I use a component that is *already* composed of one strand and a
>number of beads (or none) (a reusable component)
>
>Case 1 :
>In my mind (as an app developer), I obviously know what I am doing.
>
>It is quite logical, from my point of view, to have listeners attached to
>the "component" (that is, indirectly, to the "strand part") and other
>listeners (or same !) attached to the beads I am interested in.
>After all, if I understood clearly, a bead is a way to "add
>functionality",
>right ?
>Then, it is very logical to me to listen to events from that specific
>functionality bead) since I expressly added that piece of functionality.
>I should not be confused by events with same name but from other beads : I
>only have to make sure that I listen to the "target" phase.
>
>In MXML, component events could be captured from the "component" tag, and
>bead events from the bead sub-tags.
>
>If a bead wants to listen to events from another bead, nothing prevents it
>from doing so (Im not sure of that ??).
>The metatags exposed by the strand as well as the metatags exposed by the
>beads would then be accessible.
>
>Case 2 :
>Maybe I use a component designed by someone else, or maybe I designed it
>myself.
>It is the component developer's responsibility to manage "internal" events
>and then to redispatch "beads" events as "component" events if needed
>(maybe
>under another event name).
>A developer using a "wrapped" composite component should only listen to
>"component" events (public events), not "bead event" (abstraction of
>internal representation)
>The metatags exposed by the "wrapped" component should be public events
>only.
>
>Final case :
>The wrapped component is composited from another wrapped component plus
>some
>additional beads. In other words, it expends an reusable component which
>already contains some beads.
>In that case, the "inner" component (the base class) is considered as a
>strand and the global logic is the same as in case (2).
>
>All in all, this is not very different from what happens in classic Flex
>when building "complex " components...(which are really composited, not
>simple subclasses).
>
>Too naïve to be useful, maybe ???
>
>Nicolas Granon
>
>
>
>
>> -----Message d'origine-----
>> De : Peter Ent [mailto:pent@adobe.com.INVALID]
>> Envoyé : mardi 31 octobre 2017 20:39
>> À : dev@royale.apache.org
>> Objet : Re: Event Metadata (was Re: [GitHub] ...: Image not removed
>> when src set to null
>> 
>> I typically use the strand as the central dispatcher for intra-bead
>> communication. Sometimes an event from a bead conflicts with an event
>> dispatched by the strand to the "outside". For example, if a bead were
>> to need to send a "change" event and another bead was listening for
>> that event, "change" is pretty generic and an app writer who is also
>> listening for change on that strand might get the wrong event.
>> 
>> I have not developed any protocol to deal with this, but perhaps events
>> used internally for components should prefix the event type with
>> something (e.g., "_change") unique to indicate the event is internal.
>> Events are really the only way we have of beads talking to each other.
>> 
>> We need to document what events a bead is doing to send and what it is
>> willing to accept and how it will be used. I confess I have not done
>> that very often and for Royale to be useful, documentation like this
>> has to be done. But we need a pattern of use established so there is
>> consistency.
>> 
>> Let's say you have a bead that you do want to put into MXML and that
>> bead produces events. The Drag and Drop work comes to mind. When you
>> add a DragSource bead to a list, you the app writer, might want to know
>> when certain things happen, such as DRAG_START. The List does not have
>> DRAG_START listed in its event metadata so dispatching this event from
>> the List won't work for the app writer. The app writer wants to do:
>> <js:DragSource dragStart="myThing(event)" /> right in MXML.
>> 
>> As it turns out, this DRAG_START is also used internally by the drag
>> controller so I think there is another class of events that do get
>> dispatched by beads but not on the strand, but on themselves. In this
>> case, these events are not "internal" but public.
>> 
>> Both internal (dispatched by beads targeting the strand) and public
>> (dispatched by beads targeting themselves) can coexist nicely as long
>> as we have some rules.
>> 
>> HTH
>> ‹peter
>> 
>> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID> wrote:
>> 
>> >For 1) the rule already is that if you want to access an implicit bead
>> >you have to explicitly declare it.  So if a bead is normally brought
>> in
>> >via CSS, you instead declare that bead on the strand and make
>> adjustments.
>> >UIBase doesn't care how the beads get placed on the strand, and all
>> >bead loading code is supposed to check the strand first before
>> grabbing
>> >a default bead from CSS.  IOW, if it wasn't declared in MXML, then
>> >declare it in MXML in order to access it.
>> >
>> >For 2) we are learning towards having beads dispatch their important
>> >events off the strand instead of off of the bead. Otherwise we have to
>> >add event forwarding code if people want to listen to the containing
>> >component for events which is pretty normal if you think of the
>> >component as a black box.  And then duplicate event names does become
>> an issue.
>> >
>> >It will be interesting to see you try your EventListener bead and see
>> >how it feels and if it is a lot of code or not.
>> >
>> >Thanks,
>> >-Alex
>> >
>> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
>> >
>> >>The problems that come to mind with attaching the events to the beads
>> >>are:
>> >>1. The beads are not necessarily declared in MXML, so that leaves the
>> >>question of how to address the beads via MXML.
>> >>2. More than one bead might dispatch the same event. To get them all,
>> >>it seems like it¹s necessary to attach the event listener to the
>> strand.
>> >>
>> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui <ah...@adobe.com.INVALID>
>> >>>wrote:
>> >>>
>> >>> Renaming thread.
>> >>>
>> >>> Another option is for the beads themselves to have event metadata
>> >>> for events they dispatch and either:
>> >>> 1) the bead dispatches both off of itself and its strand, or
>> >>> 2) certain addEventListener calls are passed to the strand.
>> >>>
>> >>> That's sort of the general pattern for de-composing or "exploding"
>> a
>> >>> component.  And then the wrapping component doesn't need metadata
>> >>> that won't apply to the beads declared.
>> >>>
>> >>> Having a bead that can attach a particular kind of listener and
>> call
>> >>>a  handler also fits in our patterns.  And similarly, a bead that
>> >>>dispatches  platform-specific might be useful as well.
>> >>>
>> >>> My 2 cents,
>> >>> -Alex
>> >>>
>> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
>> >>>
>> >>>> Good points.
>> >>>>
>> >>>>> One issue to consider are whether a container of beads should be
>> >>>>>have  metadata about the events dispatched by its beads since the
>> >>>>>changing of  beads could make that metadata incorrect.  IMO, this
>> >>>>>has been a problem  in  Flex forever.  Maybe a smarter IDE could
>> >>>>>figure out what beads are  currently in play and aggregate
>> >>>>>allowable events from those beads'
>> >>>>> metadata someday.
>> >>>>
>> >>>> Hmm. Not a simple problem. One approach we can take is to add
>> >>>>metadata to  the component and include documentation on which beads
>> >>>>are required for  the event to fire.
>> >>>>
>> >>>> Of course this only takes care of more-or-less standard beads.
>> >>>>Optional
>> >>>> beads that are generally not used would need another mechanism to
>> >>>>specify  event handlers in MXML (if that would be supported).
>> >>>>
>> >>>> Considering the ³smarter IDE approach², it seems like there¹s two
>> >>>> problems:
>> >>>> 1. The compiler needs to know that the attributes are OK.
>> >>>>Currently, the  compiler will complain if you use an unrecognized
>> >>>>tag.
>> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know if a
>> >>>>specific  bead is actually added. They can be added using CSS, AS
>> >>>>code and MXML.
>> >>>> Dynamically following that flow in tooling seems like a *really*
>> >>>>hard  problem.
>> >>>>
>> >>>> Another idea would be to allow specifying event handlers in a
>> >>>>format  something like this:
>> >>>> <js:FooComponent id=³foo²>
>> >>>> <js:events>
>> >>>> <js:EventDescriptor type²layoutNeeded²
>> >>>>handler=³handleLayoutNeeded()²/>
>> >>>> </js:events>
>> >>>> </js:FooComponent>
>> >>>>
>> >>>> I¹m kind of liking this idea as it follows the pattern we
>> currently
>> >>>>have  for beads and styles. EventDescriptor could be subclassed to
>> >>>>have classes  of events which could offer code completion for the
>> >>>>available event  types. There would not be enforcement that the
>> >>>>events would actually be  dispatched, but I think it would be
>> >>>>helpful and would allow users to  specify random event handlers
>> >>>>declaratively.
>> >>>>
>> >>>>> Another issue to consider is cross-platform.  A component may not
>> >>>>> be able to dispatch the events listed in metadata on all
>> >>>>> platforms.
>> >>>>
>> >>>> It seems to me that metadata on cross-platform components should
>> >>>>always  be cross-platform. If there are platform-specific events,
>> >>>>they should not  be included or there should be a platform-specific
>> >>>>component. We¹ve  already solved the problem with mouse events by
>> >>>>renaming the event  strings in the compiler depending on the
>> target.
>> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically for
>> JS
>> >>>>output). I think Mouse  events are an exception, but if there are
>> >>>>any other events that fit this  exception, they should be handled
>> >>>>the same way.
>> >>>>
>> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
>> <ah...@adobe.com.INVALID>
>> >>>>> wrote:
>> >>>>>
>> >>>>> Some Metadata is kept in the output, but events probably aren't.
>> >>>>>
>> >>>>> One issue to consider are whether a container of beads should be
>> >>>>>have  metadata about the events dispatched by its beads since the
>> >>>>>changing of  beads could make that metadata incorrect.  IMO, this
>> >>>>>has been a problem  in  Flex forever.  Maybe a smarter IDE could
>> >>>>>figure out what beads are  currently in play and aggregate
>> >>>>>allowable events from those beads'
>> >>>>> metadata someday.
>> >>>>>
>> >>>>> Another issue to consider is cross-platform.  A component may not
>> >>>>> be able to dispatch the events listed in metadata on all
>> >>>>> platforms.
>> >>>>>
>> >>>>> Also consider that on JS, events probably have to be propagated
>> >>>>>from the  wrapped element to the strand so there is cost there.
>> >>>>>
>> >>>>> It is hopefully easy enough for anyone who wants to get an event
>> >>>>>that  isn't already in metadata, to subclass, add the metadata and
>> >>>>>any wiring.
>> >>>>>
>> >>>>> My 2 cents,
>> >>>>> -Alex
>> >>>>>
>> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>> >>>>> <ma...@gmail.com>> wrote:
>> >>>>>
>> >>>>>> I¹m not talking about adding events. I¹m talking about adding
>> >>>>>>metadata  for *existing events* so they could be addressed in
>> >>>>>>MXML.
>> >>>>>>
>> >>>>>>
>> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>> >>>>>>> <pi...@gmail.com>
>> >>>>>>> wrote:
>> >>>>>>>
>> >>>>>>> If you decide to add event that's fine with me. :) It is just
>> >>>>>>>the  matter of  thinking about those Basic components from my
>> >>>>>>>sight. I have started to  look  at them as something which
>> should
>> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
>> >>>>>>>features should be provided by beads - if it is  possible  or by
>> >>>>>>>Express.
>> >>>>>>>
>> >>>>>>> The exception could be and MDL from that which I would like to
>> >>>>>>>extend,  but  here I can think about those components as they
>> are
>> >>>>>>>Express right now.
>> >>>>>>>
>> >>>>>>> Piotr
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>> >>>>>>>
>> >>>>>>>> Why? Unless it adds overhead, it seems to me like any event
>> >>>>>>>>that can  be  added using addEventListener() should be
>> >>>>>>>>addressable using MXML.
>> >>>>>>>>
>> >>>>>>>> I¹m just not sure from a technical perspective whether the
>> MXML
>> >>>>>>>>meta  tags  add overhead if not used.
>> >>>>>>>>
>> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>> >>>>>>>>> <pi...@gmail.com>
>> >>>>>>>> wrote:
>> >>>>>>>>>
>> >>>>>>>>> Hi Harbs,
>> >>>>>>>>>
>> >>>>>>>>> Some time ago there were discussion on Flex Dev which makes
>> me
>> >>>>>>>>> realize
>> >>>>>>>> that
>> >>>>>>>>> we should add event tags as long as they are reflecting some
>> >>>>>>>>>native  HTML  api, unless we are in express. For example we
>> are
>> >>>>>>>>>using in many  places  "change" event which is I believe quite
>> >>>>>>>>>common in JS world, but I  would  avoid any additional custom
>> >>>>>>>>>one. In the other world Let's answer to  the  question in
>> >>>>>>>>>following case - Does "img" in HTML world have "load"
>> >>>>>>>>> event ?
>> >>>>>>>>>
>> >>>>>>>>> Piotr
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
>> >>>>>>>>>
>> >>>>>>>>>> This does raise a good question:
>> >>>>>>>>>>
>> >>>>>>>>>> Should we be adding MXML meta tags for all supported events?
>> >>>>>>>>>> It seems
>> >>>>>>>> like
>> >>>>>>>>>> a desirable thing to have, and there are currently very few
>> >>>>>>>>>>event  tags.
>> >>>>>>>> I¹m
>> >>>>>>>>>> not clear on whether the meta-tags effect the end result of
>> >>>>>>>>>> code size.
>> >>>>>>>>>>
>> >>>>>>>>>> Harbs
>> >>>>>>>>>>
>> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
>> >>>>>>>>>>>
>> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed when
>> >>>>>>>>>>> src set to
>> >>>>>>>>>> null
>> >>>>>>>>>>> URL:
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>gi
>> >>>>>>>>>>> th
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>Fg
>> >>>>>>>>>>> ith>
>> >>>>>>>>>>> ub.com
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>ub
>> >>>>>>>>>>>
>> >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
>> C
>> >>>>>>>>>>>fa7
>> >>>>>>>>>>>b
>> >>>>>>>>>>>1b
>> >>>>>>>>>>>
>> >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>> a
>> >>>>>>>>>>>=r6
>> >>>>>>>>>>>H
>> >>>>>>>>>>>O%
>> >>>>>>>>>>>
>> >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2F
>> a
>> >>>>>>>>>>>pac
>> >>>>>>>>>>>h
>> >>>>>>>>>>>e%
>> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178dec
>> e
>> >>>>>>>>>>>e1%
>> >>>>>>>>>>>7
>> >>>>>>>>>>>C0
>> >>>>>>>>>>> %7
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWV
>> q
>> >>>>>>>>>>>y17
>> >>>>>>>>>>>x
>> >>>>>>>>>>>Fb
>> >>>>>>>>>>> if
>> >>>>>>>>>>> 9Gknpc%3D&reserved=0
>> >>>>>>>>>> issuecomment-340524197
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>> This code fails to compile:
>> >>>>>>>>>>> ```
>> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?url
>> =
>> >>>>>>>>>>>htt
>> >>>>>>>>>>>p
>> >>>>>>>>>>>%3
>> >>>>>>>>>>> A%
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> >
>> >>>>>>>>>>> 2F%2Fns.adobe.com
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>2f
>> >>>>>>>>>>>
>> >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d520
>> 4
>> >>>>>>>>>>>860
>> >>>>>>>>>>>d
>> >>>>>>>>>>>3%
>> >>>>>>>>>>>
>> >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614
>> 1
>> >>>>>>>>>>>82&
>> >>>>>>>>>>>s
>> >>>>>>>>>>>da
>> >>>>>>>>>>>
>> >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0
>> >
>> >>>>>>>>>>>%2F
>> >>>>>>>>>>>m
>> >>>>>>>>>>>xm
>> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6
>> 3
>> >>>>>>>>>>>644
>> >>>>>>>>>>>9
>> >>>>>>>>>>>84
>> >>>>>>>>>>> 71
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFK
>> d
>> >>>>>>>>>>>zAe
>> >>>>>>>>>>>4
>> >>>>>>>>>>>%2
>> >>>>>>>>>>> Bn
>> >>>>>>>>>>> o%3D&reserved=0"
>> >>>>>>>>>>>
>> xmlns:js="library://ns.apache.org/royale/basic
>> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
>> >>>>>>>>>>>
>> >>>>>>>>>>>   <fx:Script><![CDATA[
>> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
>> >>>>>>>>>>>
>> >>>>>>>>>>>       public function blankimage():void {
>> >>>>>>>>>>>           image.visible = false;
>> >>>>>>>>>>>           image.src =
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>Fw
>> >>>>>>>>>>> ww
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>Fw
>> >>>>>>>>>>> ww>
>> >>>>>>>>>>> .apache.org
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>ap
>> >>>>>>>>>>>
>> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
>> d
>> >>>>>>>>>>>3%7
>> >>>>>>>>>>>C
>> >>>>>>>>>>>fa
>> >>>>>>>>>>>
>> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
>> s
>> >>>>>>>>>>>dat
>> >>>>>>>>>>>a
>> >>>>>>>>>>>=w
>> >>>>>>>>>>>
>> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F
>> &
>> >>>>>>>>>>>dat
>> >>>>>>>>>>>a
>> >>>>>>>>>>>=0
>> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>> &
>> >>>>>>>>>>>sda
>> >>>>>>>>>>>t
>> >>>>>>>>>>>a=
>> >>>>>>>>>>> pn
>> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> >>>>>>>> foundation/press/kit/
>> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>> >>>>>>>>>>>       }
>> >>>>>>>>>>>       public function showImage():void {
>> >>>>>>>>>>>           image.visible = true;
>> >>>>>>>>>>>       }
>> >>>>>>>>>>>       ]]></fx:Script>
>> >>>>>>>>>>>
>> >>>>>>>>>>>   <js:valuesImpl>
>> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
>> >>>>>>>>>>>   </js:valuesImpl>
>> >>>>>>>>>>>
>> >>>>>>>>>>>   <js:initialView>
>> >>>>>>>>>>>
>> >>>>>>>>>>>       <js:View>
>> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
>> >>>>>>>>>>> width="100%">
>> >>>>>>>>>>>               <js:beads>
>> >>>>>>>>>>>                   <js:VerticalLayout />
>> >>>>>>>>>>>               </js:beads>
>> >>>>>>>>>>>               <js:Image id="image"
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=http
>> s
>> >>>>>>>>>>>%3A
>> >>>>>>>>>>>%
>> >>>>>>>>>>>2F
>> >>>>>>>>>>> %2
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>>
>> >>>>>>>>>>> Fwww.apache.org
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>fw
>> >>>>>>>>>>>
>> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52
>> 0
>> >>>>>>>>>>>486
>> >>>>>>>>>>>0
>> >>>>>>>>>>>d3
>> >>>>>>>>>>>
>> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561
>> 4
>> >>>>>>>>>>>182
>> >>>>>>>>>>>&
>> >>>>>>>>>>>sd
>> >>>>>>>>>>>
>> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserve
>> d
>> >>>>>>>>>>>=0>
>> >>>>>>>>>>>%
>> >>>>>>>>>>>2F
>> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
>> 5
>> >>>>>>>>>>>609
>> >>>>>>>>>>>&
>> >>>>>>>>>>>sd
>> >>>>>>>>>>> at
>> >>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>> height="50%"
>> >>>>>>>>>> layoutNeeded="showImage()" />
>> >>>>>>>>>>>               <js:TextButton text="Blank"
>> click="blankimage()"
>> >>>>>>>>>>>/>
>> >>>>>>>>>>>           </js:Container>
>> >>>>>>>>>>>       </js:View>
>> >>>>>>>>>>>   </js:initialView>
>> >>>>>>>>>>>
>> >>>>>>>>>>> </js:Application>
>> >>>>>>>>>>> ```
>> >>>>>>>>>>>
>> >>>>>>>>>>> With this error:
>> >>>>>>>>>>> ```
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.m
>> x
>> >>>>>>>>>>>ml(
>> >>>>>>>>>>>2
>> >>>>>>>>>>>6)
>> >>>>>>>>>>> :
>> >>>>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
>> >>>>>>>>>>>
>> >>>>>>>>>>>               <js:Image id="image"
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=http
>> s
>> >>>>>>>>>>>%3A
>> >>>>>>>>>>>%
>> >>>>>>>>>>>2F
>> >>>>>>>>>>> %2
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>>
>> >>>>>>>>>>> Fwww.apache.org
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>fw
>> >>>>>>>>>>>
>> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52
>> 0
>> >>>>>>>>>>>486
>> >>>>>>>>>>>0
>> >>>>>>>>>>>d3
>> >>>>>>>>>>>
>> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561
>> 4
>> >>>>>>>>>>>182
>> >>>>>>>>>>>&
>> >>>>>>>>>>>sd
>> >>>>>>>>>>>
>> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserve
>> d
>> >>>>>>>>>>>=0>
>> >>>>>>>>>>>%
>> >>>>>>>>>>>2F
>> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
>> 5
>> >>>>>>>>>>>609
>> >>>>>>>>>>>&
>> >>>>>>>>>>>sd
>> >>>>>>>>>>> at
>> >>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
>> height="50%"
>> >>>>>>>>>> layoutNeeded="showImage()" />
>> >>>>>>>>>>> ```
>> >>>>>>>>>>>
>> >>>>>>>>>>> I assume the only way to do this would be to add a hard
>> >>>>>>>>>>> coded event
>> >>>>>>>>>> listener manually like so?
>> >>>>>>>>>>>
>> >>>>>>>>>>> ```
>> >>>>>>>>>>>   <fx:Script><![CDATA[
>> >>>>>>>>>>>       public function blankimage():void {
>> >>>>>>>>>>>           image.visible = false;
>> >>>>>>>>>>>           image.src =
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>Fw
>> >>>>>>>>>>> ww
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
>> %
>> >>>>>>>>>>>2F%
>> >>>>>>>>>>>2
>> >>>>>>>>>>>Fw
>> >>>>>>>>>>> ww>
>> >>>>>>>>>>> .apache.org
>> >>>>>>>>>>>
>> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
>> 2
>> >>>>>>>>>>>F%2
>> >>>>>>>>>>>F
>> >>>>>>>>>>>ap
>> >>>>>>>>>>>
>> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
>> d
>> >>>>>>>>>>>3%7
>> >>>>>>>>>>>C
>> >>>>>>>>>>>fa
>> >>>>>>>>>>>
>> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
>> s
>> >>>>>>>>>>>dat
>> >>>>>>>>>>>a
>> >>>>>>>>>>>=w
>> >>>>>>>>>>>
>> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F
>> &
>> >>>>>>>>>>>dat
>> >>>>>>>>>>>a
>> >>>>>>>>>>>=0
>> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>> &
>> >>>>>>>>>>>sda
>> >>>>>>>>>>>t
>> >>>>>>>>>>>a=
>> >>>>>>>>>>> pn
>> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>> >>>>>>>> foundation/press/kit/
>> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
>> showImage);
>> >>>>>>>>>>>       }
>> >>>>>>>>>>>
>> >>>>>>>>>>>       public function showImage(event:Event):void {
>> >>>>>>>>>>>           image.visible = true;
>> >>>>>>>>>>>       }
>> >>>>>>>>>>>       ]]></fx:Script>
>> >>>>>>>>>>> ```
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>------------------------------------------------------------
>> -
>> >>>>>>>>>>>---  This is an automated message from the Apache Git
>> >>>>>>>>>>>Service.
>> >>>>>>>>>>> To respond to the message, please log on GitHub and use the
>> >>>>>>>>>>>URL above to go to the specific comment.
>> >>>>>>>>>>>
>> >>>>>>>>>>> For queries about this service, please contact
>> >>>>>>>>>>>Infrastructure
>> >>>>>>>>>>>at:
>> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>> With regards,
>> >>>>>>>>>>> Apache Git Services
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> --
>> >>>>>>>>>
>> >>>>>>>>> Piotr Zarzycki
>> >>>>>>>>>
>> >>>>>>>>> mobile: +48 880 859 557
>> >>>>>>>>> skype: zarzycki10
>> >>>>>>>>>
>> >>>>>>>>> LinkedIn:
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%
>> 2
>> >>>>>>>>>Fww
>> >>>>>>>>>w
>> >>>>>>>>>.l
>> >>>>>>>>> in
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> %
>> >>>>>>>>>2Fw
>> >>>>>>>>>w
>> >>>>>>>>>w.
>> >>>>>>>>> lin>
>> >>>>>>>>> kedin.com
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> %
>> >>>>>>>>>2Fk
>> >>>>>>>>>e
>> >>>>>>>>>di
>> >>>>>>>>>
>> >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7C
>> f
>> >>>>>>>>>a7b
>> >>>>>>>>>1
>> >>>>>>>>>b5
>> >>>>>>>>>
>> >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=M
>> m
>> >>>>>>>>>3Kn
>> >>>>>>>>>X
>> >>>>>>>>>%2
>> >>>>>>>>>
>> >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpio
>> t
>> >>>>>>>>>rza
>> >>>>>>>>>r
>> >>>>>>>>>zy
>> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713
>> 0
>> >>>>>>>>>355
>> >>>>>>>>>6
>> >>>>>>>>>09
>> >>>>>>>>> &s
>> >>>>>>>>>
>> >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&rese
>> r
>> >>>>>>>>>ved
>> >>>>>>>>>=
>> >>>>>>>>>0
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> F
>> >>>>>>>>>%2F
>> >>>>>>>>>p
>> >>>>>>>>>l.
>> >>>>>>>>> li
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> F
>> >>>>>>>>>%2F
>> >>>>>>>>>p
>> >>>>>>>>>l.
>> >>>>>>>>> li>
>> >>>>>>>>> nkedin.com
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
>> %
>> >>>>>>>>>2Fn
>> >>>>>>>>>k
>> >>>>>>>>>ed
>> >>>>>>>>>
>> >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
>> C
>> >>>>>>>>>fa7
>> >>>>>>>>>b
>> >>>>>>>>>1b
>> >>>>>>>>>
>> >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=
>> 4
>> >>>>>>>>>v8C
>> >>>>>>>>>S
>> >>>>>>>>>fu
>> >>>>>>>>>
>> >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpio
>> t
>> >>>>>>>>>r-z
>> >>>>>>>>>a
>> >>>>>>>>>rz
>> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
>> C
>> >>>>>>>>>0%7
>> >>>>>>>>>C
>> >>>>>>>>>63
>> >>>>>>>>> 64
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FH
>> q
>> >>>>>>>>>EAK
>> >>>>>>>>>N
>> >>>>>>>>>o%
>> >>>>>>>>> 3D
>> >>>>>>>>> &reserved=0>
>> >>>>>>>>>
>> >>>>>>>>> GitHub:
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>> %
>> >>>>>>>>>2Fg
>> >>>>>>>>>i
>> >>>>>>>>>th
>> >>>>>>>>> ub
>> >>>>>>>>>
>> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
>> F
>> >>>>>>>>>%2F
>> >>>>>>>>>g
>> >>>>>>>>>it
>> >>>>>>>>> hub>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba5520
>> 8
>> >>>>>>>>>d51
>> >>>>>>>>>f
>> >>>>>>>>>c3
>> >>>>>>>>> 8b
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
>> 5
>> >>>>>>>>>609
>> >>>>>>>>>&
>> >>>>>>>>>sd
>> >>>>>>>>> at
>> >>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>>
>> >>>>>>> Piotr Zarzycki
>> >>>>>>>
>> >>>>>>> mobile: +48 880 859 557
>> >>>>>>> skype: zarzycki10
>> >>>>>>>
>> >>>>>>> LinkedIn:
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>> www.
>> >>>>>>>l
>> >>>>>>>in
>> >>>>>>> ke
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>> F
>> >>>>>>>www
>> >>>>>>>.
>> >>>>>>>li
>> >>>>>>> nke>
>> >>>>>>> din.com
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>> F
>> >>>>>>>din
>> >>>>>>>.
>> >>>>>>>co
>> >>>>>>>
>> >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
>> 5
>> >>>>>>>a7b
>> >>>>>>>3
>> >>>>>>>44
>> >>>>>>>
>> >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJ
>> t
>> >>>>>>>Y44
>> >>>>>>>X
>> >>>>>>>dR
>> >>>>>>>
>> >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&dat
>> a
>> >>>>>>>=02
>> >>>>>>>%
>> >>>>>>>7C
>> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035560
>> 9
>> >>>>>>>&sd
>> >>>>>>>a
>> >>>>>>>ta
>> >>>>>>> =M
>> >>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>> 2
>> >>>>>>>Fpl
>> >>>>>>>.
>> >>>>>>>li
>> >>>>>>> nk
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>> 2
>> >>>>>>>Fpl
>> >>>>>>>.
>> >>>>>>>li
>> >>>>>>> nk>
>> >>>>>>> edin.com
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>> F
>> >>>>>>>edi
>> >>>>>>>n
>> >>>>>>>.c
>> >>>>>>>
>> >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1
>> b
>> >>>>>>>5a7
>> >>>>>>>b
>> >>>>>>>34
>> >>>>>>>
>> >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3i
>> L
>> >>>>>>>sgF
>> >>>>>>>8
>> >>>>>>>wv
>> >>>>>>>
>> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
>> zarzycki
>> >>>>>>>-92
>> >>>>>>>a
>> >>>>>>>53
>> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6
>> 3
>> >>>>>>>644
>> >>>>>>>9
>> >>>>>>>84
>> >>>>>>> 71
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3
>> D
>> >>>>>>>&re
>> >>>>>>>s
>> >>>>>>>er
>> >>>>>>> ve
>> >>>>>>> d=0>
>> >>>>>>>
>> >>>>>>> GitHub:
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>> F
>> >>>>>>>git
>> >>>>>>>h
>> >>>>>>>ub
>> >>>>>>> .c
>> >>>>>>>
>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>> 2
>> >>>>>>>Fgi
>> >>>>>>>t
>> >>>>>>>hu
>> >>>>>>> b.c>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51
>> f
>> >>>>>>>c38
>> >>>>>>>b
>> >>>>>>>07
>> >>>>>>> %7
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&s
>> d
>> >>>>>>>ata
>> >>>>>>>=
>> >>>>>>>mi
>> >>>>>>> 12
>> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>> >>>>
>> >>>
>> >>
>> >
>
>


RE: Event Metadata

Posted by Idylog - Nicolas Granon <ng...@idylog.com>.
Excuse my naive comment :

In my opinion, we have two different situations :

Case 1 : I use a component, and I add one or more beads to it (in the source
code where the component is used) (inlined).
Case 2 : I use a component that is *already* composed of one strand and a
number of beads (or none) (a reusable component)

Case 1 :
In my mind (as an app developer), I obviously know what I am doing.

It is quite logical, from my point of view, to have listeners attached to
the "component" (that is, indirectly, to the "strand part") and other
listeners (or same !) attached to the beads I am interested in.
After all, if I understood clearly, a bead is a way to "add functionality",
right ?
Then, it is very logical to me to listen to events from that specific
functionality bead) since I expressly added that piece of functionality.
I should not be confused by events with same name but from other beads : I
only have to make sure that I listen to the "target" phase.

In MXML, component events could be captured from the "component" tag, and
bead events from the bead sub-tags.

If a bead wants to listen to events from another bead, nothing prevents it
from doing so (Im not sure of that ??).
The metatags exposed by the strand as well as the metatags exposed by the
beads would then be accessible.

Case 2 :
Maybe I use a component designed by someone else, or maybe I designed it
myself.
It is the component developer's responsibility to manage "internal" events
and then to redispatch "beads" events as "component" events if needed (maybe
under another event name).
A developer using a "wrapped" composite component should only listen to
"component" events (public events), not "bead event" (abstraction of
internal representation)
The metatags exposed by the "wrapped" component should be public events
only.

Final case :
The wrapped component is composited from another wrapped component plus some
additional beads. In other words, it expends an reusable component which
already contains some beads.
In that case, the "inner" component (the base class) is considered as a
strand and the global logic is the same as in case (2).

All in all, this is not very different from what happens in classic Flex
when building "complex " components...(which are really composited, not
simple subclasses).

Too naïve to be useful, maybe ???

Nicolas Granon




> -----Message d'origine-----
> De : Peter Ent [mailto:pent@adobe.com.INVALID]
> Envoyé : mardi 31 octobre 2017 20:39
> À : dev@royale.apache.org
> Objet : Re: Event Metadata (was Re: [GitHub] ...: Image not removed
> when src set to null
> 
> I typically use the strand as the central dispatcher for intra-bead
> communication. Sometimes an event from a bead conflicts with an event
> dispatched by the strand to the "outside". For example, if a bead were
> to need to send a "change" event and another bead was listening for
> that event, "change" is pretty generic and an app writer who is also
> listening for change on that strand might get the wrong event.
> 
> I have not developed any protocol to deal with this, but perhaps events
> used internally for components should prefix the event type with
> something (e.g., "_change") unique to indicate the event is internal.
> Events are really the only way we have of beads talking to each other.
> 
> We need to document what events a bead is doing to send and what it is
> willing to accept and how it will be used. I confess I have not done
> that very often and for Royale to be useful, documentation like this
> has to be done. But we need a pattern of use established so there is
> consistency.
> 
> Let's say you have a bead that you do want to put into MXML and that
> bead produces events. The Drag and Drop work comes to mind. When you
> add a DragSource bead to a list, you the app writer, might want to know
> when certain things happen, such as DRAG_START. The List does not have
> DRAG_START listed in its event metadata so dispatching this event from
> the List won't work for the app writer. The app writer wants to do:
> <js:DragSource dragStart="myThing(event)" /> right in MXML.
> 
> As it turns out, this DRAG_START is also used internally by the drag
> controller so I think there is another class of events that do get
> dispatched by beads but not on the strand, but on themselves. In this
> case, these events are not "internal" but public.
> 
> Both internal (dispatched by beads targeting the strand) and public
> (dispatched by beads targeting themselves) can coexist nicely as long
> as we have some rules.
> 
> HTH
> ‹peter
> 
> On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID> wrote:
> 
> >For 1) the rule already is that if you want to access an implicit bead
> >you have to explicitly declare it.  So if a bead is normally brought
> in
> >via CSS, you instead declare that bead on the strand and make
> adjustments.
> >UIBase doesn't care how the beads get placed on the strand, and all
> >bead loading code is supposed to check the strand first before
> grabbing
> >a default bead from CSS.  IOW, if it wasn't declared in MXML, then
> >declare it in MXML in order to access it.
> >
> >For 2) we are learning towards having beads dispatch their important
> >events off the strand instead of off of the bead. Otherwise we have to
> >add event forwarding code if people want to listen to the containing
> >component for events which is pretty normal if you think of the
> >component as a black box.  And then duplicate event names does become
> an issue.
> >
> >It will be interesting to see you try your EventListener bead and see
> >how it feels and if it is a lot of code or not.
> >
> >Thanks,
> >-Alex
> >
> >On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
> >
> >>The problems that come to mind with attaching the events to the beads
> >>are:
> >>1. The beads are not necessarily declared in MXML, so that leaves the
> >>question of how to address the beads via MXML.
> >>2. More than one bead might dispatch the same event. To get them all,
> >>it seems like it¹s necessary to attach the event listener to the
> strand.
> >>
> >>> On Oct 31, 2017, at 5:24 PM, Alex Harui <ah...@adobe.com.INVALID>
> >>>wrote:
> >>>
> >>> Renaming thread.
> >>>
> >>> Another option is for the beads themselves to have event metadata
> >>> for events they dispatch and either:
> >>> 1) the bead dispatches both off of itself and its strand, or
> >>> 2) certain addEventListener calls are passed to the strand.
> >>>
> >>> That's sort of the general pattern for de-composing or "exploding"
> a
> >>> component.  And then the wrapping component doesn't need metadata
> >>> that won't apply to the beads declared.
> >>>
> >>> Having a bead that can attach a particular kind of listener and
> call
> >>>a  handler also fits in our patterns.  And similarly, a bead that
> >>>dispatches  platform-specific might be useful as well.
> >>>
> >>> My 2 cents,
> >>> -Alex
> >>>
> >>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
> >>>
> >>>> Good points.
> >>>>
> >>>>> One issue to consider are whether a container of beads should be
> >>>>>have  metadata about the events dispatched by its beads since the
> >>>>>changing of  beads could make that metadata incorrect.  IMO, this
> >>>>>has been a problem  in  Flex forever.  Maybe a smarter IDE could
> >>>>>figure out what beads are  currently in play and aggregate
> >>>>>allowable events from those beads'
> >>>>> metadata someday.
> >>>>
> >>>> Hmm. Not a simple problem. One approach we can take is to add
> >>>>metadata to  the component and include documentation on which beads
> >>>>are required for  the event to fire.
> >>>>
> >>>> Of course this only takes care of more-or-less standard beads.
> >>>>Optional
> >>>> beads that are generally not used would need another mechanism to
> >>>>specify  event handlers in MXML (if that would be supported).
> >>>>
> >>>> Considering the ³smarter IDE approach², it seems like there¹s two
> >>>> problems:
> >>>> 1. The compiler needs to know that the attributes are OK.
> >>>>Currently, the  compiler will complain if you use an unrecognized
> >>>>tag.
> >>>> 2. There¹s lots of ways to add beads, and it¹s hard to know if a
> >>>>specific  bead is actually added. They can be added using CSS, AS
> >>>>code and MXML.
> >>>> Dynamically following that flow in tooling seems like a *really*
> >>>>hard  problem.
> >>>>
> >>>> Another idea would be to allow specifying event handlers in a
> >>>>format  something like this:
> >>>> <js:FooComponent id=³foo²>
> >>>> <js:events>
> >>>> <js:EventDescriptor type²layoutNeeded²
> >>>>handler=³handleLayoutNeeded()²/>
> >>>> </js:events>
> >>>> </js:FooComponent>
> >>>>
> >>>> I¹m kind of liking this idea as it follows the pattern we
> currently
> >>>>have  for beads and styles. EventDescriptor could be subclassed to
> >>>>have classes  of events which could offer code completion for the
> >>>>available event  types. There would not be enforcement that the
> >>>>events would actually be  dispatched, but I think it would be
> >>>>helpful and would allow users to  specify random event handlers
> >>>>declaratively.
> >>>>
> >>>>> Another issue to consider is cross-platform.  A component may not
> >>>>> be able to dispatch the events listed in metadata on all
> >>>>> platforms.
> >>>>
> >>>> It seems to me that metadata on cross-platform components should
> >>>>always  be cross-platform. If there are platform-specific events,
> >>>>they should not  be included or there should be a platform-specific
> >>>>component. We¹ve  already solved the problem with mouse events by
> >>>>renaming the event  strings in the compiler depending on the
> target.
> >>>>(i.e. ³doubleClick² in  MXML becomes ³dblclick² automatically for
> JS
> >>>>output). I think Mouse  events are an exception, but if there are
> >>>>any other events that fit this  exception, they should be handled
> >>>>the same way.
> >>>>
> >>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui
> <ah...@adobe.com.INVALID>
> >>>>> wrote:
> >>>>>
> >>>>> Some Metadata is kept in the output, but events probably aren't.
> >>>>>
> >>>>> One issue to consider are whether a container of beads should be
> >>>>>have  metadata about the events dispatched by its beads since the
> >>>>>changing of  beads could make that metadata incorrect.  IMO, this
> >>>>>has been a problem  in  Flex forever.  Maybe a smarter IDE could
> >>>>>figure out what beads are  currently in play and aggregate
> >>>>>allowable events from those beads'
> >>>>> metadata someday.
> >>>>>
> >>>>> Another issue to consider is cross-platform.  A component may not
> >>>>> be able to dispatch the events listed in metadata on all
> >>>>> platforms.
> >>>>>
> >>>>> Also consider that on JS, events probably have to be propagated
> >>>>>from the  wrapped element to the strand so there is cost there.
> >>>>>
> >>>>> It is hopefully easy enough for anyone who wants to get an event
> >>>>>that  isn't already in metadata, to subclass, add the metadata and
> >>>>>any wiring.
> >>>>>
> >>>>> My 2 cents,
> >>>>> -Alex
> >>>>>
> >>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
> >>>>> <ma...@gmail.com>> wrote:
> >>>>>
> >>>>>> I¹m not talking about adding events. I¹m talking about adding
> >>>>>>metadata  for *existing events* so they could be addressed in
> >>>>>>MXML.
> >>>>>>
> >>>>>>
> >>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
> >>>>>>> <pi...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>> If you decide to add event that's fine with me. :) It is just
> >>>>>>>the  matter of  thinking about those Basic components from my
> >>>>>>>sight. I have started to  look  at them as something which
> should
> >>>>>>>be closer to HTML than to the old  Flex  world. Rest of the
> >>>>>>>features should be provided by beads - if it is  possible  or by
> >>>>>>>Express.
> >>>>>>>
> >>>>>>> The exception could be and MDL from that which I would like to
> >>>>>>>extend,  but  here I can think about those components as they
> are
> >>>>>>>Express right now.
> >>>>>>>
> >>>>>>> Piotr
> >>>>>>>
> >>>>>>>
> >>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
> >>>>>>>
> >>>>>>>> Why? Unless it adds overhead, it seems to me like any event
> >>>>>>>>that can  be  added using addEventListener() should be
> >>>>>>>>addressable using MXML.
> >>>>>>>>
> >>>>>>>> I¹m just not sure from a technical perspective whether the
> MXML
> >>>>>>>>meta  tags  add overhead if not used.
> >>>>>>>>
> >>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
> >>>>>>>>> <pi...@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>> Hi Harbs,
> >>>>>>>>>
> >>>>>>>>> Some time ago there were discussion on Flex Dev which makes
> me
> >>>>>>>>> realize
> >>>>>>>> that
> >>>>>>>>> we should add event tags as long as they are reflecting some
> >>>>>>>>>native  HTML  api, unless we are in express. For example we
> are
> >>>>>>>>>using in many  places  "change" event which is I believe quite
> >>>>>>>>>common in JS world, but I  would  avoid any additional custom
> >>>>>>>>>one. In the other world Let's answer to  the  question in
> >>>>>>>>>following case - Does "img" in HTML world have "load"
> >>>>>>>>> event ?
> >>>>>>>>>
> >>>>>>>>> Piotr
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
> >>>>>>>>>
> >>>>>>>>>> This does raise a good question:
> >>>>>>>>>>
> >>>>>>>>>> Should we be adding MXML meta tags for all supported events?
> >>>>>>>>>> It seems
> >>>>>>>> like
> >>>>>>>>>> a desirable thing to have, and there are currently very few
> >>>>>>>>>>event  tags.
> >>>>>>>> I¹m
> >>>>>>>>>> not clear on whether the meta-tags effect the end result of
> >>>>>>>>>> code size.
> >>>>>>>>>>
> >>>>>>>>>> Harbs
> >>>>>>>>>>
> >>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>> justinmclean commented on issue #60: Image not removed when
> >>>>>>>>>>> src set to
> >>>>>>>>>> null
> >>>>>>>>>>> URL:
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>gi
> >>>>>>>>>>> th
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>Fg
> >>>>>>>>>>> ith>
> >>>>>>>>>>> ub.com
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>ub
> >>>>>>>>>>>
> >>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
> C
> >>>>>>>>>>>fa7
> >>>>>>>>>>>b
> >>>>>>>>>>>1b
> >>>>>>>>>>>
> >>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
> a
> >>>>>>>>>>>=r6
> >>>>>>>>>>>H
> >>>>>>>>>>>O%
> >>>>>>>>>>>
> >>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2F
> a
> >>>>>>>>>>>pac
> >>>>>>>>>>>h
> >>>>>>>>>>>e%
> >>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178dec
> e
> >>>>>>>>>>>e1%
> >>>>>>>>>>>7
> >>>>>>>>>>>C0
> >>>>>>>>>>> %7
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWV
> q
> >>>>>>>>>>>y17
> >>>>>>>>>>>x
> >>>>>>>>>>>Fb
> >>>>>>>>>>> if
> >>>>>>>>>>> 9Gknpc%3D&reserved=0
> >>>>>>>>>> issuecomment-340524197
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> This code fails to compile:
> >>>>>>>>>>> ```
> >>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> <js:Application
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?url
> =
> >>>>>>>>>>>htt
> >>>>>>>>>>>p
> >>>>>>>>>>>%3
> >>>>>>>>>>> A%
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> >
> >>>>>>>>>>> 2F%2Fns.adobe.com
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>2f
> >>>>>>>>>>>
> >>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d520
> 4
> >>>>>>>>>>>860
> >>>>>>>>>>>d
> >>>>>>>>>>>3%
> >>>>>>>>>>>
> >>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614
> 1
> >>>>>>>>>>>82&
> >>>>>>>>>>>s
> >>>>>>>>>>>da
> >>>>>>>>>>>
> >>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0
> >
> >>>>>>>>>>>%2F
> >>>>>>>>>>>m
> >>>>>>>>>>>xm
> >>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6
> 3
> >>>>>>>>>>>644
> >>>>>>>>>>>9
> >>>>>>>>>>>84
> >>>>>>>>>>> 71
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFK
> d
> >>>>>>>>>>>zAe
> >>>>>>>>>>>4
> >>>>>>>>>>>%2
> >>>>>>>>>>> Bn
> >>>>>>>>>>> o%3D&reserved=0"
> >>>>>>>>>>>
> xmlns:js="library://ns.apache.org/royale/basic
> >>>>>>>>>>> <library://ns.apache.org/royale/basic>">
> >>>>>>>>>>>
> >>>>>>>>>>>   <fx:Script><![CDATA[
> >>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
> >>>>>>>>>>>
> >>>>>>>>>>>       public function blankimage():void {
> >>>>>>>>>>>           image.visible = false;
> >>>>>>>>>>>           image.src =
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>Fw
> >>>>>>>>>>> ww
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>Fw
> >>>>>>>>>>> ww>
> >>>>>>>>>>> .apache.org
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>ap
> >>>>>>>>>>>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
> d
> >>>>>>>>>>>3%7
> >>>>>>>>>>>C
> >>>>>>>>>>>fa
> >>>>>>>>>>>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
> s
> >>>>>>>>>>>dat
> >>>>>>>>>>>a
> >>>>>>>>>>>=w
> >>>>>>>>>>>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F
> &
> >>>>>>>>>>>dat
> >>>>>>>>>>>a
> >>>>>>>>>>>=0
> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> &
> >>>>>>>>>>>sda
> >>>>>>>>>>>t
> >>>>>>>>>>>a=
> >>>>>>>>>>> pn
> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>> foundation/press/kit/
> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >>>>>>>>>>>       }
> >>>>>>>>>>>       public function showImage():void {
> >>>>>>>>>>>           image.visible = true;
> >>>>>>>>>>>       }
> >>>>>>>>>>>       ]]></fx:Script>
> >>>>>>>>>>>
> >>>>>>>>>>>   <js:valuesImpl>
> >>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
> >>>>>>>>>>>   </js:valuesImpl>
> >>>>>>>>>>>
> >>>>>>>>>>>   <js:initialView>
> >>>>>>>>>>>
> >>>>>>>>>>>       <js:View>
> >>>>>>>>>>>           <js:Container id="startPage" visible="true"
> >>>>>>>>>>> width="100%">
> >>>>>>>>>>>               <js:beads>
> >>>>>>>>>>>                   <js:VerticalLayout />
> >>>>>>>>>>>               </js:beads>
> >>>>>>>>>>>               <js:Image id="image"
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=http
> s
> >>>>>>>>>>>%3A
> >>>>>>>>>>>%
> >>>>>>>>>>>2F
> >>>>>>>>>>> %2
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>>
> >>>>>>>>>>> Fwww.apache.org
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>fw
> >>>>>>>>>>>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52
> 0
> >>>>>>>>>>>486
> >>>>>>>>>>>0
> >>>>>>>>>>>d3
> >>>>>>>>>>>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561
> 4
> >>>>>>>>>>>182
> >>>>>>>>>>>&
> >>>>>>>>>>>sd
> >>>>>>>>>>>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserve
> d
> >>>>>>>>>>>=0>
> >>>>>>>>>>>%
> >>>>>>>>>>>2F
> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
> 5
> >>>>>>>>>>>609
> >>>>>>>>>>>&
> >>>>>>>>>>>sd
> >>>>>>>>>>> at
> >>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> height="50%"
> >>>>>>>>>> layoutNeeded="showImage()" />
> >>>>>>>>>>>               <js:TextButton text="Blank"
> click="blankimage()"
> >>>>>>>>>>>/>
> >>>>>>>>>>>           </js:Container>
> >>>>>>>>>>>       </js:View>
> >>>>>>>>>>>   </js:initialView>
> >>>>>>>>>>>
> >>>>>>>>>>> </js:Application>
> >>>>>>>>>>> ```
> >>>>>>>>>>>
> >>>>>>>>>>> With this error:
> >>>>>>>>>>> ```
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.m
> x
> >>>>>>>>>>>ml(
> >>>>>>>>>>>2
> >>>>>>>>>>>6)
> >>>>>>>>>>> :
> >>>>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
> >>>>>>>>>>>
> >>>>>>>>>>>               <js:Image id="image"
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=http
> s
> >>>>>>>>>>>%3A
> >>>>>>>>>>>%
> >>>>>>>>>>>2F
> >>>>>>>>>>> %2
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>>
> >>>>>>>>>>> Fwww.apache.org
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>fw
> >>>>>>>>>>>
> >>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d52
> 0
> >>>>>>>>>>>486
> >>>>>>>>>>>0
> >>>>>>>>>>>d3
> >>>>>>>>>>>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645041766561
> 4
> >>>>>>>>>>>182
> >>>>>>>>>>>&
> >>>>>>>>>>>sd
> >>>>>>>>>>>
> >>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserve
> d
> >>>>>>>>>>>=0>
> >>>>>>>>>>>%
> >>>>>>>>>>>2F
> >>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
> 5
> >>>>>>>>>>>609
> >>>>>>>>>>>&
> >>>>>>>>>>>sd
> >>>>>>>>>>> at
> >>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%"
> height="50%"
> >>>>>>>>>> layoutNeeded="showImage()" />
> >>>>>>>>>>> ```
> >>>>>>>>>>>
> >>>>>>>>>>> I assume the only way to do this would be to add a hard
> >>>>>>>>>>> coded event
> >>>>>>>>>> listener manually like so?
> >>>>>>>>>>>
> >>>>>>>>>>> ```
> >>>>>>>>>>>   <fx:Script><![CDATA[
> >>>>>>>>>>>       public function blankimage():void {
> >>>>>>>>>>>           image.visible = false;
> >>>>>>>>>>>           image.src =
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>Fw
> >>>>>>>>>>> ww
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A
> %
> >>>>>>>>>>>2F%
> >>>>>>>>>>>2
> >>>>>>>>>>>Fw
> >>>>>>>>>>> ww>
> >>>>>>>>>>> .apache.org
> >>>>>>>>>>>
> >>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%
> 2
> >>>>>>>>>>>F%2
> >>>>>>>>>>>F
> >>>>>>>>>>>ap
> >>>>>>>>>>>
> >>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
> d
> >>>>>>>>>>>3%7
> >>>>>>>>>>>C
> >>>>>>>>>>>fa
> >>>>>>>>>>>
> >>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
> s
> >>>>>>>>>>>dat
> >>>>>>>>>>>a
> >>>>>>>>>>>=w
> >>>>>>>>>>>
> >>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F
> &
> >>>>>>>>>>>dat
> >>>>>>>>>>>a
> >>>>>>>>>>>=0
> >>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
> &
> >>>>>>>>>>>sda
> >>>>>>>>>>>t
> >>>>>>>>>>>a=
> >>>>>>>>>>> pn
> >>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
> >>>>>>>> foundation/press/kit/
> >>>>>>>>>> poweredBy/Apache_PoweredBy.png";
> >>>>>>>>>>>           image.addEventListener("layoutNeeded",
> showImage);
> >>>>>>>>>>>       }
> >>>>>>>>>>>
> >>>>>>>>>>>       public function showImage(event:Event):void {
> >>>>>>>>>>>           image.visible = true;
> >>>>>>>>>>>       }
> >>>>>>>>>>>       ]]></fx:Script>
> >>>>>>>>>>> ```
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>------------------------------------------------------------
> -
> >>>>>>>>>>>---  This is an automated message from the Apache Git
> >>>>>>>>>>>Service.
> >>>>>>>>>>> To respond to the message, please log on GitHub and use the
> >>>>>>>>>>>URL above to go to the specific comment.
> >>>>>>>>>>>
> >>>>>>>>>>> For queries about this service, please contact
> >>>>>>>>>>>Infrastructure
> >>>>>>>>>>>at:
> >>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> With regards,
> >>>>>>>>>>> Apache Git Services
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>>
> >>>>>>>>> Piotr Zarzycki
> >>>>>>>>>
> >>>>>>>>> mobile: +48 880 859 557
> >>>>>>>>> skype: zarzycki10
> >>>>>>>>>
> >>>>>>>>> LinkedIn:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%
> 2
> >>>>>>>>>Fww
> >>>>>>>>>w
> >>>>>>>>>.l
> >>>>>>>>> in
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> %
> >>>>>>>>>2Fw
> >>>>>>>>>w
> >>>>>>>>>w.
> >>>>>>>>> lin>
> >>>>>>>>> kedin.com
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> %
> >>>>>>>>>2Fk
> >>>>>>>>>e
> >>>>>>>>>di
> >>>>>>>>>
> >>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7C
> f
> >>>>>>>>>a7b
> >>>>>>>>>1
> >>>>>>>>>b5
> >>>>>>>>>
> >>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=M
> m
> >>>>>>>>>3Kn
> >>>>>>>>>X
> >>>>>>>>>%2
> >>>>>>>>>
> >>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpio
> t
> >>>>>>>>>rza
> >>>>>>>>>r
> >>>>>>>>>zy
> >>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713
> 0
> >>>>>>>>>355
> >>>>>>>>>6
> >>>>>>>>>09
> >>>>>>>>> &s
> >>>>>>>>>
> >>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&rese
> r
> >>>>>>>>>ved
> >>>>>>>>>=
> >>>>>>>>>0
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> F
> >>>>>>>>>%2F
> >>>>>>>>>p
> >>>>>>>>>l.
> >>>>>>>>> li
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> F
> >>>>>>>>>%2F
> >>>>>>>>>p
> >>>>>>>>>l.
> >>>>>>>>> li>
> >>>>>>>>> nkedin.com
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F
> %
> >>>>>>>>>2Fn
> >>>>>>>>>k
> >>>>>>>>>ed
> >>>>>>>>>
> >>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
> C
> >>>>>>>>>fa7
> >>>>>>>>>b
> >>>>>>>>>1b
> >>>>>>>>>
> >>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=
> 4
> >>>>>>>>>v8C
> >>>>>>>>>S
> >>>>>>>>>fu
> >>>>>>>>>
> >>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpio
> t
> >>>>>>>>>r-z
> >>>>>>>>>a
> >>>>>>>>>rz
> >>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7
> C
> >>>>>>>>>0%7
> >>>>>>>>>C
> >>>>>>>>>63
> >>>>>>>>> 64
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FH
> q
> >>>>>>>>>EAK
> >>>>>>>>>N
> >>>>>>>>>o%
> >>>>>>>>> 3D
> >>>>>>>>> &reserved=0>
> >>>>>>>>>
> >>>>>>>>> GitHub:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
> %
> >>>>>>>>>2Fg
> >>>>>>>>>i
> >>>>>>>>>th
> >>>>>>>>> ub
> >>>>>>>>>
> >>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2
> F
> >>>>>>>>>%2F
> >>>>>>>>>g
> >>>>>>>>>it
> >>>>>>>>> hub>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba5520
> 8
> >>>>>>>>>d51
> >>>>>>>>>f
> >>>>>>>>>c3
> >>>>>>>>> 8b
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035
> 5
> >>>>>>>>>609
> >>>>>>>>>&
> >>>>>>>>>sd
> >>>>>>>>> at
> >>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>>
> >>>>>>> Piotr Zarzycki
> >>>>>>>
> >>>>>>> mobile: +48 880 859 557
> >>>>>>> skype: zarzycki10
> >>>>>>>
> >>>>>>> LinkedIn:
> >>>>>>>
> >>>>>>>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
> www.
> >>>>>>>l
> >>>>>>>in
> >>>>>>> ke
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> F
> >>>>>>>www
> >>>>>>>.
> >>>>>>>li
> >>>>>>> nke>
> >>>>>>> din.com
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> F
> >>>>>>>din
> >>>>>>>.
> >>>>>>>co
> >>>>>>>
> >>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
> 5
> >>>>>>>a7b
> >>>>>>>3
> >>>>>>>44
> >>>>>>>
> >>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJ
> t
> >>>>>>>Y44
> >>>>>>>X
> >>>>>>>dR
> >>>>>>>
> >>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&dat
> a
> >>>>>>>=02
> >>>>>>>%
> >>>>>>>7C
> >>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
> >>>>>>>
> >>>>>>>
> >>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984713035560
> 9
> >>>>>>>&sd
> >>>>>>>a
> >>>>>>>ta
> >>>>>>> =M
> >>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
> 2
> >>>>>>>Fpl
> >>>>>>>.
> >>>>>>>li
> >>>>>>> nk
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
> 2
> >>>>>>>Fpl
> >>>>>>>.
> >>>>>>>li
> >>>>>>> nk>
> >>>>>>> edin.com
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
> F
> >>>>>>>edi
> >>>>>>>n
> >>>>>>>.c
> >>>>>>>
> >>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1
> b
> >>>>>>>5a7
> >>>>>>>b
> >>>>>>>34
> >>>>>>>
> >>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3i
> L
> >>>>>>>sgF
> >>>>>>>8
> >>>>>>>wv
> >>>>>>>
> >>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-
> zarzycki
> >>>>>>>-92
> >>>>>>>a
> >>>>>>>53
> >>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
> >>>>>>>
> >>>>>>>
> >>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6
> 3
> >>>>>>>644
> >>>>>>>9
> >>>>>>>84
> >>>>>>> 71
> >>>>>>>
> >>>>>>>
> >>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3
> D
> >>>>>>>&re
> >>>>>>>s
> >>>>>>>er
> >>>>>>> ve
> >>>>>>> d=0>
> >>>>>>>
> >>>>>>> GitHub:
> >>>>>>>
> >>>>>>>
> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
> F
> >>>>>>>git
> >>>>>>>h
> >>>>>>>ub
> >>>>>>> .c
> >>>>>>>
> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
> 2
> >>>>>>>Fgi
> >>>>>>>t
> >>>>>>>hu
> >>>>>>> b.c>
> >>>>>>>
> >>>>>>>
> >>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51
> f
> >>>>>>>c38
> >>>>>>>b
> >>>>>>>07
> >>>>>>> %7
> >>>>>>>
> >>>>>>>
> >>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&s
> d
> >>>>>>>ata
> >>>>>>>=
> >>>>>>>mi
> >>>>>>> 12
> >>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
> >>>>
> >>>
> >>
> >



Re: Event Metadata (was Re: [GitHub] ...: Image not removed when src set to null

Posted by Peter Ent <pe...@adobe.com.INVALID>.
I typically use the strand as the central dispatcher for intra-bead
communication. Sometimes an event from a bead conflicts with an event
dispatched by the strand to the "outside". For example, if a bead were to
need to send a "change" event and another bead was listening for that
event, "change" is pretty generic and an app writer who is also listening
for change on that strand might get the wrong event.

I have not developed any protocol to deal with this, but perhaps events
used internally for components should prefix the event type with something
(e.g., "_change") unique to indicate the event is internal. Events are
really the only way we have of beads talking to each other.

We need to document what events a bead is doing to send and what it is
willing to accept and how it will be used. I confess I have not done that
very often and for Royale to be useful, documentation like this has to be
done. But we need a pattern of use established so there is consistency.

Let's say you have a bead that you do want to put into MXML and that bead
produces events. The Drag and Drop work comes to mind. When you add a
DragSource bead to a list, you the app writer, might want to know when
certain things happen, such as DRAG_START. The List does not have
DRAG_START listed in its event metadata so dispatching this event from the
List won't work for the app writer. The app writer wants to do:
<js:DragSource dragStart="myThing(event)" /> right in MXML.

As it turns out, this DRAG_START is also used internally by the drag
controller so I think there is another class of events that do get
dispatched by beads but not on the strand, but on themselves. In this
case, these events are not "internal" but public.

Both internal (dispatched by beads targeting the strand) and public
(dispatched by beads targeting themselves) can coexist nicely as long as
we have some rules.

HTH
‹peter

On 10/31/17, 1:46 PM, "Alex Harui" <ah...@adobe.com.INVALID> wrote:

>For 1) the rule already is that if you want to access an implicit bead you
>have to explicitly declare it.  So if a bead is normally brought in via
>CSS, you instead declare that bead on the strand and make adjustments.
>UIBase doesn't care how the beads get placed on the strand, and all bead
>loading code is supposed to check the strand first before grabbing a
>default bead from CSS.  IOW, if it wasn't declared in MXML, then declare
>it in MXML in order to access it.
>
>For 2) we are learning towards having beads dispatch their important
>events off the strand instead of off of the bead. Otherwise we have to add
>event forwarding code if people want to listen to the containing component
>for events which is pretty normal if you think of the component as a black
>box.  And then duplicate event names does become an issue.
>
>It will be interesting to see you try your EventListener bead and see how
>it feels and if it is a lot of code or not.
>
>Thanks,
>-Alex
>
>On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:
>
>>The problems that come to mind with attaching the events to the beads
>>are:
>>1. The beads are not necessarily declared in MXML, so that leaves the
>>question of how to address the beads via MXML.
>>2. More than one bead might dispatch the same event. To get them all, it
>>seems like it¹s necessary to attach the event listener to the strand.
>>
>>> On Oct 31, 2017, at 5:24 PM, Alex Harui <ah...@adobe.com.INVALID>
>>>wrote:
>>> 
>>> Renaming thread.
>>> 
>>> Another option is for the beads themselves to have event metadata for
>>> events they dispatch and either:
>>> 1) the bead dispatches both off of itself and its strand, or
>>> 2) certain addEventListener calls are passed to the strand.
>>> 
>>> That's sort of the general pattern for de-composing or "exploding" a
>>> component.  And then the wrapping component doesn't need metadata that
>>> won't apply to the beads declared.
>>> 
>>> Having a bead that can attach a particular kind of listener and call a
>>> handler also fits in our patterns.  And similarly, a bead that
>>>dispatches
>>> platform-specific might be useful as well.
>>> 
>>> My 2 cents,
>>> -Alex
>>> 
>>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
>>> 
>>>> Good points.
>>>> 
>>>>> One issue to consider are whether a container of beads should be have
>>>>> metadata about the events dispatched by its beads since the changing
>>>>>of
>>>>> beads could make that metadata incorrect.  IMO, this has been a
>>>>>problem
>>>>> in
>>>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>>>> currently in play and aggregate allowable events from those beads'
>>>>> metadata someday.
>>>> 
>>>> Hmm. Not a simple problem. One approach we can take is to add metadata
>>>>to
>>>> the component and include documentation on which beads are required
>>>>for
>>>> the event to fire.
>>>> 
>>>> Of course this only takes care of more-or-less standard beads.
>>>>Optional
>>>> beads that are generally not used would need another mechanism to
>>>>specify
>>>> event handlers in MXML (if that would be supported).
>>>> 
>>>> Considering the ³smarter IDE approach², it seems like there¹s two
>>>> problems:
>>>> 1. The compiler needs to know that the attributes are OK. Currently,
>>>>the
>>>> compiler will complain if you use an unrecognized tag.
>>>> 2. There¹s lots of ways to add beads, and it¹s hard to know if a
>>>>specific
>>>> bead is actually added. They can be added using CSS, AS code and MXML.
>>>> Dynamically following that flow in tooling seems like a *really* hard
>>>> problem.
>>>> 
>>>> Another idea would be to allow specifying event handlers in a format
>>>> something like this:
>>>> <js:FooComponent id=³foo²>
>>>> <js:events>
>>>> <js:EventDescriptor type²layoutNeeded²
>>>>handler=³handleLayoutNeeded()²/>
>>>> </js:events>
>>>> </js:FooComponent>
>>>> 
>>>> I¹m kind of liking this idea as it follows the pattern we currently
>>>>have
>>>> for beads and styles. EventDescriptor could be subclassed to have
>>>>classes
>>>> of events which could offer code completion for the available event
>>>> types. There would not be enforcement that the events would actually
>>>>be
>>>> dispatched, but I think it would be helpful and would allow users to
>>>> specify random event handlers declaratively.
>>>> 
>>>>> Another issue to consider is cross-platform.  A component may not be
>>>>> able
>>>>> to dispatch the events listed in metadata on all platforms.
>>>> 
>>>> It seems to me that metadata on cross-platform components should
>>>>always
>>>> be cross-platform. If there are platform-specific events, they should
>>>>not
>>>> be included or there should be a platform-specific component. We¹ve
>>>> already solved the problem with mouse events by renaming the event
>>>> strings in the compiler depending on the target. (i.e. ³doubleClick²
>>>>in
>>>> MXML becomes ³dblclick² automatically for JS output). I think Mouse
>>>> events are an exception, but if there are any other events that fit
>>>>this
>>>> exception, they should be handled the same way.
>>>> 
>>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui <ah...@adobe.com.INVALID>
>>>>> wrote:
>>>>> 
>>>>> Some Metadata is kept in the output, but events probably aren't.
>>>>> 
>>>>> One issue to consider are whether a container of beads should be have
>>>>> metadata about the events dispatched by its beads since the changing
>>>>>of
>>>>> beads could make that metadata incorrect.  IMO, this has been a
>>>>>problem
>>>>> in
>>>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>>>> currently in play and aggregate allowable events from those beads'
>>>>> metadata someday.
>>>>> 
>>>>> Another issue to consider is cross-platform.  A component may not be
>>>>> able
>>>>> to dispatch the events listed in metadata on all platforms.
>>>>> 
>>>>> Also consider that on JS, events probably have to be propagated from
>>>>>the
>>>>> wrapped element to the strand so there is cost there.
>>>>> 
>>>>> It is hopefully easy enough for anyone who wants to get an event that
>>>>> isn't already in metadata, to subclass, add the metadata and any
>>>>>wiring.
>>>>> 
>>>>> My 2 cents,
>>>>> -Alex
>>>>> 
>>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>>>>> <ma...@gmail.com>> wrote:
>>>>> 
>>>>>> I¹m not talking about adding events. I¹m talking about adding
>>>>>>metadata
>>>>>> for *existing events* so they could be addressed in MXML.
>>>>>> 
>>>>>> 
>>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>>>>> <pi...@gmail.com>
>>>>>>> wrote:
>>>>>>> 
>>>>>>> If you decide to add event that's fine with me. :) It is just the
>>>>>>> matter of
>>>>>>> thinking about those Basic components from my sight. I have started
>>>>>>>to
>>>>>>> look
>>>>>>> at them as something which should be closer to HTML than to the old
>>>>>>> Flex
>>>>>>> world. Rest of the features should be provided by beads - if it is
>>>>>>> possible
>>>>>>> or by Express.
>>>>>>> 
>>>>>>> The exception could be and MDL from that which I would like to
>>>>>>>extend,
>>>>>>> but
>>>>>>> here I can think about those components as they are Express right
>>>>>>>now.
>>>>>>> 
>>>>>>> Piotr
>>>>>>> 
>>>>>>> 
>>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>>> 
>>>>>>>> Why? Unless it adds overhead, it seems to me like any event that
>>>>>>>>can
>>>>>>>> be
>>>>>>>> added using addEventListener() should be addressable using MXML.
>>>>>>>> 
>>>>>>>> I¹m just not sure from a technical perspective whether the MXML
>>>>>>>>meta
>>>>>>>> tags
>>>>>>>> add overhead if not used.
>>>>>>>> 
>>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>>>>> <pi...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi Harbs,
>>>>>>>>> 
>>>>>>>>> Some time ago there were discussion on Flex Dev which makes me
>>>>>>>>> realize
>>>>>>>> that
>>>>>>>>> we should add event tags as long as they are reflecting some
>>>>>>>>>native
>>>>>>>>> HTML
>>>>>>>>> api, unless we are in express. For example we are using in many
>>>>>>>>> places
>>>>>>>>> "change" event which is I believe quite common in JS world, but I
>>>>>>>>> would
>>>>>>>>> avoid any additional custom one. In the other world Let's answer
>>>>>>>>>to
>>>>>>>>> the
>>>>>>>>> question in following case - Does "img" in HTML world have "load"
>>>>>>>>> event ?
>>>>>>>>> 
>>>>>>>>> Piotr
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>>>>> 
>>>>>>>>>> This does raise a good question:
>>>>>>>>>> 
>>>>>>>>>> Should we be adding MXML meta tags for all supported events? It
>>>>>>>>>> seems
>>>>>>>> like
>>>>>>>>>> a desirable thing to have, and there are currently very few
>>>>>>>>>>event
>>>>>>>>>> tags.
>>>>>>>> I¹m
>>>>>>>>>> not clear on whether the meta-tags effect the end result of code
>>>>>>>>>> size.
>>>>>>>>>> 
>>>>>>>>>> Harbs
>>>>>>>>>> 
>>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> justinmclean commented on issue #60: Image not removed when src
>>>>>>>>>>> set
>>>>>>>>>>> to
>>>>>>>>>> null
>>>>>>>>>>> URL: 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>gi
>>>>>>>>>>> th 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>Fg
>>>>>>>>>>> ith>
>>>>>>>>>>> ub.com 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>ub
>>>>>>>>>>> 
>>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
>>>>>>>>>>>b
>>>>>>>>>>>1b
>>>>>>>>>>> 
>>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=r6
>>>>>>>>>>>H
>>>>>>>>>>>O%
>>>>>>>>>>> 
>>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2Fapac
>>>>>>>>>>>h
>>>>>>>>>>>e%
>>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%
>>>>>>>>>>>7
>>>>>>>>>>>C0
>>>>>>>>>>> %7
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWVqy17
>>>>>>>>>>>x
>>>>>>>>>>>Fb
>>>>>>>>>>> if
>>>>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>>>>> issuecomment-340524197
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> This code fails to compile:
>>>>>>>>>>> ```
>>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>>>>>>>> <js:Application
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?url=htt
>>>>>>>>>>>p
>>>>>>>>>>>%3
>>>>>>>>>>> A% 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>>> 2F%2Fns.adobe.com
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>2f
>>>>>>>>>>> 
>>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
>>>>>>>>>>>d
>>>>>>>>>>>3%
>>>>>>>>>>> 
>>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
>>>>>>>>>>>s
>>>>>>>>>>>da
>>>>>>>>>>> 
>>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0>%2F
>>>>>>>>>>>m
>>>>>>>>>>>xm
>>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644
>>>>>>>>>>>9
>>>>>>>>>>>84
>>>>>>>>>>> 71
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFKdzAe
>>>>>>>>>>>4
>>>>>>>>>>>%2
>>>>>>>>>>> Bn
>>>>>>>>>>> o%3D&reserved=0"
>>>>>>>>>>>               xmlns:js="library://ns.apache.org/royale/basic
>>>>>>>>>>> <library://ns.apache.org/royale/basic>">
>>>>>>>>>>> 
>>>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
>>>>>>>>>>> 
>>>>>>>>>>>       public function blankimage():void {
>>>>>>>>>>>           image.visible = false;
>>>>>>>>>>>           image.src =
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>Fw
>>>>>>>>>>> ww 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>Fw
>>>>>>>>>>> ww>
>>>>>>>>>>> .apache.org
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>ap
>>>>>>>>>>> 
>>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
>>>>>>>>>>>C
>>>>>>>>>>>fa
>>>>>>>>>>> 
>>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>>>>>>>>>>>a
>>>>>>>>>>>=w
>>>>>>>>>>> 
>>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&dat
>>>>>>>>>>>a
>>>>>>>>>>>=0
>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sda
>>>>>>>>>>>t
>>>>>>>>>>>a=
>>>>>>>>>>> pn
>>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>> foundation/press/kit/
>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>       }
>>>>>>>>>>>       public function showImage():void {
>>>>>>>>>>>           image.visible = true;
>>>>>>>>>>>       }
>>>>>>>>>>>       ]]></fx:Script>
>>>>>>>>>>> 
>>>>>>>>>>>   <js:valuesImpl>
>>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
>>>>>>>>>>>   </js:valuesImpl>
>>>>>>>>>>> 
>>>>>>>>>>>   <js:initialView>
>>>>>>>>>>> 
>>>>>>>>>>>       <js:View>
>>>>>>>>>>>           <js:Container id="startPage" visible="true"
>>>>>>>>>>> width="100%">
>>>>>>>>>>>               <js:beads>
>>>>>>>>>>>                   <js:VerticalLayout />
>>>>>>>>>>>               </js:beads>
>>>>>>>>>>>               <js:Image id="image"
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A
>>>>>>>>>>>%
>>>>>>>>>>>2F
>>>>>>>>>>> %2 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>>
>>>>>>>>>>> Fwww.apache.org
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>fw
>>>>>>>>>>> 
>>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d520486
>>>>>>>>>>>0
>>>>>>>>>>>d3
>>>>>>>>>>> 
>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182
>>>>>>>>>>>&
>>>>>>>>>>>sd
>>>>>>>>>>> 
>>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>
>>>>>>>>>>>%
>>>>>>>>>>>2F
>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>>>>>>&
>>>>>>>>>>>sd
>>>>>>>>>>> at
>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>>               <js:TextButton text="Blank" click="blankimage()"
>>>>>>>>>>>/>
>>>>>>>>>>>           </js:Container>
>>>>>>>>>>>       </js:View>
>>>>>>>>>>>   </js:initialView>
>>>>>>>>>>> 
>>>>>>>>>>> </js:Application>
>>>>>>>>>>> ```
>>>>>>>>>>> 
>>>>>>>>>>> With this error:
>>>>>>>>>>> ```
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.mxml(
>>>>>>>>>>>2
>>>>>>>>>>>6)
>>>>>>>>>>> :
>>>>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
>>>>>>>>>>> 
>>>>>>>>>>>               <js:Image id="image"
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A
>>>>>>>>>>>%
>>>>>>>>>>>2F
>>>>>>>>>>> %2 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>>
>>>>>>>>>>> Fwww.apache.org
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>fw
>>>>>>>>>>> 
>>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d520486
>>>>>>>>>>>0
>>>>>>>>>>>d3
>>>>>>>>>>> 
>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182
>>>>>>>>>>>&
>>>>>>>>>>>sd
>>>>>>>>>>> 
>>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>
>>>>>>>>>>>%
>>>>>>>>>>>2F
>>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>>>>>>&
>>>>>>>>>>>sd
>>>>>>>>>>> at
>>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>> ```
>>>>>>>>>>> 
>>>>>>>>>>> I assume the only way to do this would be to add a hard coded
>>>>>>>>>>> event
>>>>>>>>>> listener manually like so?
>>>>>>>>>>> 
>>>>>>>>>>> ```
>>>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>>>       public function blankimage():void {
>>>>>>>>>>>           image.visible = false;
>>>>>>>>>>>           image.src =
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>Fw
>>>>>>>>>>> ww 
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%
>>>>>>>>>>>2
>>>>>>>>>>>Fw
>>>>>>>>>>> ww>
>>>>>>>>>>> .apache.org
>>>>>>>>>>> 
>>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2
>>>>>>>>>>>F
>>>>>>>>>>>ap
>>>>>>>>>>> 
>>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7
>>>>>>>>>>>C
>>>>>>>>>>>fa
>>>>>>>>>>> 
>>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdat
>>>>>>>>>>>a
>>>>>>>>>>>=w
>>>>>>>>>>> 
>>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&dat
>>>>>>>>>>>a
>>>>>>>>>>>=0
>>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sda
>>>>>>>>>>>t
>>>>>>>>>>>a=
>>>>>>>>>>> pn
>>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>> foundation/press/kit/
>>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>>           image.addEventListener("layoutNeeded", showImage);
>>>>>>>>>>>       }
>>>>>>>>>>> 
>>>>>>>>>>>       public function showImage(event:Event):void {
>>>>>>>>>>>           image.visible = true;
>>>>>>>>>>>       }
>>>>>>>>>>>       ]]></fx:Script>
>>>>>>>>>>> ```
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>----------------------------------------------------------------
>>>>>>>>>>> This is an automated message from the Apache Git Service.
>>>>>>>>>>> To respond to the message, please log on GitHub and use the
>>>>>>>>>>> URL above to go to the specific comment.
>>>>>>>>>>> 
>>>>>>>>>>> For queries about this service, please contact Infrastructure
>>>>>>>>>>>at:
>>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> With regards,
>>>>>>>>>>> Apache Git Services
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> 
>>>>>>>>> Piotr Zarzycki
>>>>>>>>> 
>>>>>>>>> mobile: +48 880 859 557
>>>>>>>>> skype: zarzycki10
>>>>>>>>> 
>>>>>>>>> LinkedIn:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww
>>>>>>>>>w
>>>>>>>>>.l
>>>>>>>>> in 
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fw
>>>>>>>>>w
>>>>>>>>>w.
>>>>>>>>> lin>
>>>>>>>>> kedin.com
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fk
>>>>>>>>>e
>>>>>>>>>di
>>>>>>>>> 
>>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>>>>>>>>>1
>>>>>>>>>b5
>>>>>>>>> 
>>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Mm3Kn
>>>>>>>>>X
>>>>>>>>>%2
>>>>>>>>> 
>>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpiotrza
>>>>>>>>>r
>>>>>>>>>zy
>>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355
>>>>>>>>>6
>>>>>>>>>09
>>>>>>>>> &s
>>>>>>>>> 
>>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved
>>>>>>>>>=
>>>>>>>>>0
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2F
>>>>>>>>>p
>>>>>>>>>l.
>>>>>>>>> li 
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2F
>>>>>>>>>p
>>>>>>>>>l.
>>>>>>>>> li>
>>>>>>>>> nkedin.com
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fn
>>>>>>>>>k
>>>>>>>>>ed
>>>>>>>>> 
>>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7
>>>>>>>>>b
>>>>>>>>>1b
>>>>>>>>> 
>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=4v8C
>>>>>>>>>S
>>>>>>>>>fu
>>>>>>>>> 
>>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpiotr-z
>>>>>>>>>a
>>>>>>>>>rz
>>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7
>>>>>>>>>C
>>>>>>>>>63
>>>>>>>>> 64
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAK
>>>>>>>>>N
>>>>>>>>>o%
>>>>>>>>> 3D
>>>>>>>>> &reserved=0>
>>>>>>>>> 
>>>>>>>>> GitHub: 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fg
>>>>>>>>>i
>>>>>>>>>th
>>>>>>>>> ub 
>>>>>>>>> 
>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2F
>>>>>>>>>g
>>>>>>>>>it
>>>>>>>>> hub>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51
>>>>>>>>>f
>>>>>>>>>c3
>>>>>>>>> 8b
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>>>>&
>>>>>>>>>sd
>>>>>>>>> at
>>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> 
>>>>>>> Piotr Zarzycki
>>>>>>> 
>>>>>>> mobile: +48 880 859 557
>>>>>>> skype: zarzycki10
>>>>>>> 
>>>>>>> LinkedIn: 
>>>>>>> 
>>>>>>> 
>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
>>>>>>>l
>>>>>>>in
>>>>>>> ke 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww
>>>>>>>.
>>>>>>>li
>>>>>>> nke>
>>>>>>> din.com 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin
>>>>>>>.
>>>>>>>co
>>>>>>> 
>>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b
>>>>>>>3
>>>>>>>44
>>>>>>> 
>>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJtY44
>>>>>>>X
>>>>>>>dR
>>>>>>> 
>>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&data=02
>>>>>>>%
>>>>>>>7C
>>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>>>>> 
>>>>>>> 
>>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>>a
>>>>>>>ta
>>>>>>> =M
>>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl
>>>>>>>.
>>>>>>>li
>>>>>>> nk 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl
>>>>>>>.
>>>>>>>li
>>>>>>> nk>
>>>>>>> edin.com 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedi
>>>>>>>n
>>>>>>>.c
>>>>>>> 
>>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7
>>>>>>>b
>>>>>>>34
>>>>>>> 
>>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3iLsgF
>>>>>>>8
>>>>>>>wv
>>>>>>> 
>>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-zarzycki-92
>>>>>>>a
>>>>>>>53
>>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>>>>> 
>>>>>>> 
>>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644
>>>>>>>9
>>>>>>>84
>>>>>>> 71
>>>>>>> 
>>>>>>> 
>>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3D&re
>>>>>>>s
>>>>>>>er
>>>>>>> ve
>>>>>>> d=0>
>>>>>>> 
>>>>>>> GitHub: 
>>>>>>> 
>>>>>>> 
>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
>>>>>>>h
>>>>>>>ub
>>>>>>> .c 
>>>>>>> 
>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
>>>>>>>t
>>>>>>>hu
>>>>>>> b.c>
>>>>>>> 
>>>>>>> 
>>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38
>>>>>>>b
>>>>>>>07
>>>>>>> %7
>>>>>>> 
>>>>>>> 
>>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata
>>>>>>>=
>>>>>>>mi
>>>>>>> 12
>>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>>> 
>>> 
>>
>


Re: Event Metadata (was Re: [GitHub] ...: Image not removed when src set to null

Posted by Alex Harui <ah...@adobe.com.INVALID>.
For 1) the rule already is that if you want to access an implicit bead you
have to explicitly declare it.  So if a bead is normally brought in via
CSS, you instead declare that bead on the strand and make adjustments.
UIBase doesn't care how the beads get placed on the strand, and all bead
loading code is supposed to check the strand first before grabbing a
default bead from CSS.  IOW, if it wasn't declared in MXML, then declare
it in MXML in order to access it.

For 2) we are learning towards having beads dispatch their important
events off the strand instead of off of the bead. Otherwise we have to add
event forwarding code if people want to listen to the containing component
for events which is pretty normal if you think of the component as a black
box.  And then duplicate event names does become an issue.

It will be interesting to see you try your EventListener bead and see how
it feels and if it is a lot of code or not.

Thanks,
-Alex

On 10/31/17, 10:08 AM, "Harbs" <ha...@gmail.com> wrote:

>The problems that come to mind with attaching the events to the beads are:
>1. The beads are not necessarily declared in MXML, so that leaves the
>question of how to address the beads via MXML.
>2. More than one bead might dispatch the same event. To get them all, it
>seems like it’s necessary to attach the event listener to the strand.
>
>> On Oct 31, 2017, at 5:24 PM, Alex Harui <ah...@adobe.com.INVALID>
>>wrote:
>> 
>> Renaming thread.
>> 
>> Another option is for the beads themselves to have event metadata for
>> events they dispatch and either:
>> 1) the bead dispatches both off of itself and its strand, or
>> 2) certain addEventListener calls are passed to the strand.
>> 
>> That's sort of the general pattern for de-composing or "exploding" a
>> component.  And then the wrapping component doesn't need metadata that
>> won't apply to the beads declared.
>> 
>> Having a bead that can attach a particular kind of listener and call a
>> handler also fits in our patterns.  And similarly, a bead that
>>dispatches
>> platform-specific might be useful as well.
>> 
>> My 2 cents,
>> -Alex
>> 
>> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
>> 
>>> Good points.
>>> 
>>>> One issue to consider are whether a container of beads should be have
>>>> metadata about the events dispatched by its beads since the changing
>>>>of
>>>> beads could make that metadata incorrect.  IMO, this has been a
>>>>problem
>>>> in
>>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>>> currently in play and aggregate allowable events from those beads'
>>>> metadata someday.
>>> 
>>> Hmm. Not a simple problem. One approach we can take is to add metadata
>>>to
>>> the component and include documentation on which beads are required for
>>> the event to fire.
>>> 
>>> Of course this only takes care of more-or-less standard beads. Optional
>>> beads that are generally not used would need another mechanism to
>>>specify
>>> event handlers in MXML (if that would be supported).
>>> 
>>> Considering the “smarter IDE approach”, it seems like there’s two
>>> problems:
>>> 1. The compiler needs to know that the attributes are OK. Currently,
>>>the
>>> compiler will complain if you use an unrecognized tag.
>>> 2. There’s lots of ways to add beads, and it’s hard to know if a
>>>specific
>>> bead is actually added. They can be added using CSS, AS code and MXML.
>>> Dynamically following that flow in tooling seems like a *really* hard
>>> problem.
>>> 
>>> Another idea would be to allow specifying event handlers in a format
>>> something like this:
>>> <js:FooComponent id=“foo”>
>>> <js:events>
>>> <js:EventDescriptor type”layoutNeeded” handler=“handleLayoutNeeded()”/>
>>> </js:events>
>>> </js:FooComponent>
>>> 
>>> I’m kind of liking this idea as it follows the pattern we currently
>>>have
>>> for beads and styles. EventDescriptor could be subclassed to have
>>>classes
>>> of events which could offer code completion for the available event
>>> types. There would not be enforcement that the events would actually be
>>> dispatched, but I think it would be helpful and would allow users to
>>> specify random event handlers declaratively.
>>> 
>>>> Another issue to consider is cross-platform.  A component may not be
>>>> able
>>>> to dispatch the events listed in metadata on all platforms.
>>> 
>>> It seems to me that metadata on cross-platform components should always
>>> be cross-platform. If there are platform-specific events, they should
>>>not
>>> be included or there should be a platform-specific component. We’ve
>>> already solved the problem with mouse events by renaming the event
>>> strings in the compiler depending on the target. (i.e. “doubleClick” in
>>> MXML becomes “dblclick” automatically for JS output). I think Mouse
>>> events are an exception, but if there are any other events that fit
>>>this
>>> exception, they should be handled the same way.
>>> 
>>>> On Oct 30, 2017, at 8:41 PM, Alex Harui <ah...@adobe.com.INVALID>
>>>> wrote:
>>>> 
>>>> Some Metadata is kept in the output, but events probably aren't.
>>>> 
>>>> One issue to consider are whether a container of beads should be have
>>>> metadata about the events dispatched by its beads since the changing
>>>>of
>>>> beads could make that metadata incorrect.  IMO, this has been a
>>>>problem
>>>> in
>>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>>> currently in play and aggregate allowable events from those beads'
>>>> metadata someday.
>>>> 
>>>> Another issue to consider is cross-platform.  A component may not be
>>>> able
>>>> to dispatch the events listed in metadata on all platforms.
>>>> 
>>>> Also consider that on JS, events probably have to be propagated from
>>>>the
>>>> wrapped element to the strand so there is cost there.
>>>> 
>>>> It is hopefully easy enough for anyone who wants to get an event that
>>>> isn't already in metadata, to subclass, add the metadata and any
>>>>wiring.
>>>> 
>>>> My 2 cents,
>>>> -Alex
>>>> 
>>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>>>> <ma...@gmail.com>> wrote:
>>>> 
>>>>> I’m not talking about adding events. I’m talking about adding
>>>>>metadata
>>>>> for *existing events* so they could be addressed in MXML.
>>>>> 
>>>>> 
>>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>>>> <pi...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>> If you decide to add event that's fine with me. :) It is just the
>>>>>> matter of
>>>>>> thinking about those Basic components from my sight. I have started
>>>>>>to
>>>>>> look
>>>>>> at them as something which should be closer to HTML than to the old
>>>>>> Flex
>>>>>> world. Rest of the features should be provided by beads - if it is
>>>>>> possible
>>>>>> or by Express.
>>>>>> 
>>>>>> The exception could be and MDL from that which I would like to
>>>>>>extend,
>>>>>> but
>>>>>> here I can think about those components as they are Express right
>>>>>>now.
>>>>>> 
>>>>>> Piotr
>>>>>> 
>>>>>> 
>>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>> 
>>>>>>> Why? Unless it adds overhead, it seems to me like any event that
>>>>>>>can
>>>>>>> be
>>>>>>> added using addEventListener() should be addressable using MXML.
>>>>>>> 
>>>>>>> I’m just not sure from a technical perspective whether the MXML
>>>>>>>meta
>>>>>>> tags
>>>>>>> add overhead if not used.
>>>>>>> 
>>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>>>> <pi...@gmail.com>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Hi Harbs,
>>>>>>>> 
>>>>>>>> Some time ago there were discussion on Flex Dev which makes me
>>>>>>>> realize
>>>>>>> that
>>>>>>>> we should add event tags as long as they are reflecting some
>>>>>>>>native
>>>>>>>> HTML
>>>>>>>> api, unless we are in express. For example we are using in many
>>>>>>>> places
>>>>>>>> "change" event which is I believe quite common in JS world, but I
>>>>>>>> would
>>>>>>>> avoid any additional custom one. In the other world Let's answer
>>>>>>>>to
>>>>>>>> the
>>>>>>>> question in following case - Does "img" in HTML world have "load"
>>>>>>>> event ?
>>>>>>>> 
>>>>>>>> Piotr
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>>>> 
>>>>>>>>> This does raise a good question:
>>>>>>>>> 
>>>>>>>>> Should we be adding MXML meta tags for all supported events? It
>>>>>>>>> seems
>>>>>>> like
>>>>>>>>> a desirable thing to have, and there are currently very few event
>>>>>>>>> tags.
>>>>>>> I’m
>>>>>>>>> not clear on whether the meta-tags effect the end result of code
>>>>>>>>> size.
>>>>>>>>> 
>>>>>>>>> Harbs
>>>>>>>>> 
>>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
>>>>>>>>>> 
>>>>>>>>>> justinmclean commented on issue #60: Image not removed when src
>>>>>>>>>> set
>>>>>>>>>> to
>>>>>>>>> null
>>>>>>>>>> URL: 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2F
>>>>>>>>>>gi
>>>>>>>>>> th 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>Fg
>>>>>>>>>> ith>
>>>>>>>>>> ub.com 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>ub
>>>>>>>>>> 
>>>>>>>>>>.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>>>>>>>>>>1b
>>>>>>>>>> 
>>>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=r6H
>>>>>>>>>>O%
>>>>>>>>>> 
>>>>>>>>>>2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2Fapach
>>>>>>>>>>e%
>>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7
>>>>>>>>>>C0
>>>>>>>>>> %7
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWVqy17x
>>>>>>>>>>Fb
>>>>>>>>>> if
>>>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>>>> issuecomment-340524197
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> This code fails to compile:
>>>>>>>>>> ```
>>>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>>>>>>> <js:Application
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>xmlns:fx="https://na01.safelinks.protection.outlook.com/?url=http
>>>>>>>>>>%3
>>>>>>>>>> A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>>> 2F%2Fns.adobe.com
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>2f
>>>>>>>>>> 
>>>>>>>>>>ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d
>>>>>>>>>>3%
>>>>>>>>>> 
>>>>>>>>>>7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&s
>>>>>>>>>>da
>>>>>>>>>> 
>>>>>>>>>>ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0>%2Fm
>>>>>>>>>>xm
>>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449
>>>>>>>>>>84
>>>>>>>>>> 71
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFKdzAe4
>>>>>>>>>>%2
>>>>>>>>>> Bn
>>>>>>>>>> o%3D&reserved=0"
>>>>>>>>>>               xmlns:js="library://ns.apache.org/royale/basic
>>>>>>>>>> <library://ns.apache.org/royale/basic>">
>>>>>>>>>> 
>>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
>>>>>>>>>> 
>>>>>>>>>>       public function blankimage():void {
>>>>>>>>>>           image.visible = false;
>>>>>>>>>>           image.src =
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>Fw
>>>>>>>>>> ww 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>Fw
>>>>>>>>>> ww>
>>>>>>>>>> .apache.org
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>ap
>>>>>>>>>> 
>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7C
>>>>>>>>>>fa
>>>>>>>>>> 
>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
>>>>>>>>>>=w
>>>>>>>>>> 
>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data
>>>>>>>>>>=0
>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdat
>>>>>>>>>>a=
>>>>>>>>>> pn
>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>> foundation/press/kit/
>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>       }
>>>>>>>>>>       public function showImage():void {
>>>>>>>>>>           image.visible = true;
>>>>>>>>>>       }
>>>>>>>>>>       ]]></fx:Script>
>>>>>>>>>> 
>>>>>>>>>>   <js:valuesImpl>
>>>>>>>>>>       <js:SimpleCSSValuesImpl/>
>>>>>>>>>>   </js:valuesImpl>
>>>>>>>>>> 
>>>>>>>>>>   <js:initialView>
>>>>>>>>>> 
>>>>>>>>>>       <js:View>
>>>>>>>>>>           <js:Container id="startPage" visible="true"
>>>>>>>>>> width="100%">
>>>>>>>>>>               <js:beads>
>>>>>>>>>>                   <js:VerticalLayout />
>>>>>>>>>>               </js:beads>
>>>>>>>>>>               <js:Image id="image"
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A%
>>>>>>>>>>2F
>>>>>>>>>> %2 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>>
>>>>>>>>>> Fwww.apache.org
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>fw
>>>>>>>>>> 
>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
>>>>>>>>>>d3
>>>>>>>>>> 
>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
>>>>>>>>>>sd
>>>>>>>>>> 
>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%
>>>>>>>>>>2F
>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&
>>>>>>>>>>sd
>>>>>>>>>> at
>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>>               <js:TextButton text="Blank" click="blankimage()"
>>>>>>>>>>/>
>>>>>>>>>>           </js:Container>
>>>>>>>>>>       </js:View>
>>>>>>>>>>   </js:initialView>
>>>>>>>>>> 
>>>>>>>>>> </js:Application>
>>>>>>>>>> ```
>>>>>>>>>> 
>>>>>>>>>> With this error:
>>>>>>>>>> ```
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>/Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.mxml(2
>>>>>>>>>>6)
>>>>>>>>>> :
>>>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
>>>>>>>>>> 
>>>>>>>>>>               <js:Image id="image"
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>src="https://na01.safelinks.protection.outlook.com/?url=https%3A%
>>>>>>>>>>2F
>>>>>>>>>> %2 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>>
>>>>>>>>>> Fwww.apache.org
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>fw
>>>>>>>>>> 
>>>>>>>>>>ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860
>>>>>>>>>>d3
>>>>>>>>>> 
>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&
>>>>>>>>>>sd
>>>>>>>>>> 
>>>>>>>>>>ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%
>>>>>>>>>>2F
>>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&
>>>>>>>>>>sd
>>>>>>>>>> at
>>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>> ```
>>>>>>>>>> 
>>>>>>>>>> I assume the only way to do this would be to add a hard coded
>>>>>>>>>> event
>>>>>>>>> listener manually like so?
>>>>>>>>>> 
>>>>>>>>>> ```
>>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>>       public function blankimage():void {
>>>>>>>>>>           image.visible = false;
>>>>>>>>>>           image.src =
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>"https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>Fw
>>>>>>>>>> ww 
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2
>>>>>>>>>>Fw
>>>>>>>>>> ww>
>>>>>>>>>> .apache.org
>>>>>>>>>> 
>>>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
>>>>>>>>>>ap
>>>>>>>>>> 
>>>>>>>>>>ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7C
>>>>>>>>>>fa
>>>>>>>>>> 
>>>>>>>>>>7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata
>>>>>>>>>>=w
>>>>>>>>>> 
>>>>>>>>>>CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data
>>>>>>>>>>=0
>>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdat
>>>>>>>>>>a=
>>>>>>>>>> pn
>>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>> foundation/press/kit/
>>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>>           image.addEventListener("layoutNeeded", showImage);
>>>>>>>>>>       }
>>>>>>>>>> 
>>>>>>>>>>       public function showImage(event:Event):void {
>>>>>>>>>>           image.visible = true;
>>>>>>>>>>       }
>>>>>>>>>>       ]]></fx:Script>
>>>>>>>>>> ```
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>>> This is an automated message from the Apache Git Service.
>>>>>>>>>> To respond to the message, please log on GitHub and use the
>>>>>>>>>> URL above to go to the specific comment.
>>>>>>>>>> 
>>>>>>>>>> For queries about this service, please contact Infrastructure
>>>>>>>>>>at:
>>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> With regards,
>>>>>>>>>> Apache Git Services
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> 
>>>>>>>> Piotr Zarzycki
>>>>>>>> 
>>>>>>>> mobile: +48 880 859 557
>>>>>>>> skype: zarzycki10
>>>>>>>> 
>>>>>>>> LinkedIn: 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww
>>>>>>>>.l
>>>>>>>> in 
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww
>>>>>>>>w.
>>>>>>>> lin>
>>>>>>>> kedin.com 
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fke
>>>>>>>>di
>>>>>>>> 
>>>>>>>>n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1
>>>>>>>>b5
>>>>>>>> 
>>>>>>>>a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Mm3KnX
>>>>>>>>%2
>>>>>>>> 
>>>>>>>>Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpiotrzar
>>>>>>>>zy
>>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>>>> 
>>>>>>>> 
>>>>>>>>38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364498471303556
>>>>>>>>09
>>>>>>>> &s
>>>>>>>> 
>>>>>>>>data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=
>>>>>>>>0
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fp
>>>>>>>>l.
>>>>>>>> li 
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fp
>>>>>>>>l.
>>>>>>>> li>
>>>>>>>> nkedin.com
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnk
>>>>>>>>ed
>>>>>>>> 
>>>>>>>>in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b
>>>>>>>>1b
>>>>>>>> 
>>>>>>>>5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=4v8CS
>>>>>>>>fu
>>>>>>>> 
>>>>>>>>TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpiotr-za
>>>>>>>>rz
>>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>>>> 
>>>>>>>> 
>>>>>>>>6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C
>>>>>>>>63
>>>>>>>> 64
>>>>>>>> 
>>>>>>>> 
>>>>>>>>49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKN
>>>>>>>>o%
>>>>>>>> 3D
>>>>>>>> &reserved=0>
>>>>>>>> 
>>>>>>>> GitHub: 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
>>>>>>>>th
>>>>>>>> ub 
>>>>>>>> 
>>>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fg
>>>>>>>>it
>>>>>>>> hub>
>>>>>>>> 
>>>>>>>> 
>>>>>>>>.com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51f
>>>>>>>>c3
>>>>>>>> 8b
>>>>>>>> 
>>>>>>>> 
>>>>>>>>07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&
>>>>>>>>sd
>>>>>>>> at
>>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> 
>>>>>> Piotr Zarzycki
>>>>>> 
>>>>>> mobile: +48 880 859 557
>>>>>> skype: zarzycki10
>>>>>> 
>>>>>> LinkedIn: 
>>>>>> 
>>>>>> 
>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.l
>>>>>>in
>>>>>> ke 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
>>>>>>li
>>>>>> nke>
>>>>>> din.com 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin.
>>>>>>co
>>>>>> 
>>>>>>m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b3
>>>>>>44
>>>>>> 
>>>>>>38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJtY44X
>>>>>>dR
>>>>>> 
>>>>>>L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&data=02%
>>>>>>7C
>>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>>>> 
>>>>>> 
>>>>>>7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sda
>>>>>>ta
>>>>>> =M
>>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>li
>>>>>> nk 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>li
>>>>>> nk>
>>>>>> edin.com 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedin
>>>>>>.c
>>>>>> 
>>>>>>om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b
>>>>>>34
>>>>>> 
>>>>>>438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3iLsgF8
>>>>>>wv
>>>>>> 
>>>>>>dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-zarzycki-92a
>>>>>>53
>>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>>>> 
>>>>>> 
>>>>>>ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449
>>>>>>84
>>>>>> 71
>>>>>> 
>>>>>> 
>>>>>>30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3D&res
>>>>>>er
>>>>>> ve
>>>>>> d=0>
>>>>>> 
>>>>>> GitHub: 
>>>>>> 
>>>>>> 
>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
>>>>>>ub
>>>>>> .c 
>>>>>> 
>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
>>>>>>hu
>>>>>> b.c>
>>>>>> 
>>>>>> 
>>>>>>om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b
>>>>>>07
>>>>>> %7
>>>>>> 
>>>>>> 
>>>>>>Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=
>>>>>>mi
>>>>>> 12
>>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>> 
>> 
>


Re: Event Metadata (was Re: [GitHub] ...: Image not removed when src set to null

Posted by Harbs <ha...@gmail.com>.
The problems that come to mind with attaching the events to the beads are:
1. The beads are not necessarily declared in MXML, so that leaves the question of how to address the beads via MXML.
2. More than one bead might dispatch the same event. To get them all, it seems like it’s necessary to attach the event listener to the strand.

> On Oct 31, 2017, at 5:24 PM, Alex Harui <ah...@adobe.com.INVALID> wrote:
> 
> Renaming thread.
> 
> Another option is for the beads themselves to have event metadata for
> events they dispatch and either:
> 1) the bead dispatches both off of itself and its strand, or
> 2) certain addEventListener calls are passed to the strand.
> 
> That's sort of the general pattern for de-composing or "exploding" a
> component.  And then the wrapping component doesn't need metadata that
> won't apply to the beads declared.
> 
> Having a bead that can attach a particular kind of listener and call a
> handler also fits in our patterns.  And similarly, a bead that dispatches
> platform-specific might be useful as well.
> 
> My 2 cents,
> -Alex
> 
> On 10/31/17, 3:15 AM, "Harbs" <ha...@gmail.com> wrote:
> 
>> Good points.
>> 
>>> One issue to consider are whether a container of beads should be have
>>> metadata about the events dispatched by its beads since the changing of
>>> beads could make that metadata incorrect.  IMO, this has been a problem
>>> in
>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>> currently in play and aggregate allowable events from those beads'
>>> metadata someday.
>> 
>> Hmm. Not a simple problem. One approach we can take is to add metadata to
>> the component and include documentation on which beads are required for
>> the event to fire.
>> 
>> Of course this only takes care of more-or-less standard beads. Optional
>> beads that are generally not used would need another mechanism to specify
>> event handlers in MXML (if that would be supported).
>> 
>> Considering the “smarter IDE approach”, it seems like there’s two
>> problems:
>> 1. The compiler needs to know that the attributes are OK. Currently, the
>> compiler will complain if you use an unrecognized tag.
>> 2. There’s lots of ways to add beads, and it’s hard to know if a specific
>> bead is actually added. They can be added using CSS, AS code and MXML.
>> Dynamically following that flow in tooling seems like a *really* hard
>> problem.
>> 
>> Another idea would be to allow specifying event handlers in a format
>> something like this:
>> <js:FooComponent id=“foo”>
>> <js:events>
>> <js:EventDescriptor type”layoutNeeded” handler=“handleLayoutNeeded()”/>
>> </js:events>
>> </js:FooComponent>
>> 
>> I’m kind of liking this idea as it follows the pattern we currently have
>> for beads and styles. EventDescriptor could be subclassed to have classes
>> of events which could offer code completion for the available event
>> types. There would not be enforcement that the events would actually be
>> dispatched, but I think it would be helpful and would allow users to
>> specify random event handlers declaratively.
>> 
>>> Another issue to consider is cross-platform.  A component may not be
>>> able
>>> to dispatch the events listed in metadata on all platforms.
>> 
>> It seems to me that metadata on cross-platform components should always
>> be cross-platform. If there are platform-specific events, they should not
>> be included or there should be a platform-specific component. We’ve
>> already solved the problem with mouse events by renaming the event
>> strings in the compiler depending on the target. (i.e. “doubleClick” in
>> MXML becomes “dblclick” automatically for JS output). I think Mouse
>> events are an exception, but if there are any other events that fit this
>> exception, they should be handled the same way.
>> 
>>> On Oct 30, 2017, at 8:41 PM, Alex Harui <ah...@adobe.com.INVALID>
>>> wrote:
>>> 
>>> Some Metadata is kept in the output, but events probably aren't.
>>> 
>>> One issue to consider are whether a container of beads should be have
>>> metadata about the events dispatched by its beads since the changing of
>>> beads could make that metadata incorrect.  IMO, this has been a problem
>>> in
>>> Flex forever.  Maybe a smarter IDE could figure out what beads are
>>> currently in play and aggregate allowable events from those beads'
>>> metadata someday.
>>> 
>>> Another issue to consider is cross-platform.  A component may not be
>>> able
>>> to dispatch the events listed in metadata on all platforms.
>>> 
>>> Also consider that on JS, events probably have to be propagated from the
>>> wrapped element to the strand so there is cost there.
>>> 
>>> It is hopefully easy enough for anyone who wants to get an event that
>>> isn't already in metadata, to subclass, add the metadata and any wiring.
>>> 
>>> My 2 cents,
>>> -Alex
>>> 
>>> On 10/30/17, 11:24 AM, "Harbs" <harbs.lists@gmail.com
>>> <ma...@gmail.com>> wrote:
>>> 
>>>> I’m not talking about adding events. I’m talking about adding metadata
>>>> for *existing events* so they could be addressed in MXML.
>>>> 
>>>> 
>>>>> On Oct 30, 2017, at 8:18 PM, Piotr Zarzycki
>>>>> <pi...@gmail.com>
>>>>> wrote:
>>>>> 
>>>>> If you decide to add event that's fine with me. :) It is just the
>>>>> matter of
>>>>> thinking about those Basic components from my sight. I have started to
>>>>> look
>>>>> at them as something which should be closer to HTML than to the old
>>>>> Flex
>>>>> world. Rest of the features should be provided by beads - if it is
>>>>> possible
>>>>> or by Express.
>>>>> 
>>>>> The exception could be and MDL from that which I would like to extend,
>>>>> but
>>>>> here I can think about those components as they are Express right now.
>>>>> 
>>>>> Piotr
>>>>> 
>>>>> 
>>>>> 2017-10-30 19:07 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>> 
>>>>>> Why? Unless it adds overhead, it seems to me like any event that can
>>>>>> be
>>>>>> added using addEventListener() should be addressable using MXML.
>>>>>> 
>>>>>> I’m just not sure from a technical perspective whether the MXML meta
>>>>>> tags
>>>>>> add overhead if not used.
>>>>>> 
>>>>>>> On Oct 30, 2017, at 8:02 PM, Piotr Zarzycki
>>>>>>> <pi...@gmail.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>> Hi Harbs,
>>>>>>> 
>>>>>>> Some time ago there were discussion on Flex Dev which makes me
>>>>>>> realize
>>>>>> that
>>>>>>> we should add event tags as long as they are reflecting some native
>>>>>>> HTML
>>>>>>> api, unless we are in express. For example we are using in many
>>>>>>> places
>>>>>>> "change" event which is I believe quite common in JS world, but I
>>>>>>> would
>>>>>>> avoid any additional custom one. In the other world Let's answer to
>>>>>>> the
>>>>>>> question in following case - Does "img" in HTML world have "load"
>>>>>>> event ?
>>>>>>> 
>>>>>>> Piotr
>>>>>>> 
>>>>>>> 
>>>>>>> 2017-10-30 18:47 GMT+01:00 Harbs <ha...@gmail.com>:
>>>>>>> 
>>>>>>>> This does raise a good question:
>>>>>>>> 
>>>>>>>> Should we be adding MXML meta tags for all supported events? It
>>>>>>>> seems
>>>>>> like
>>>>>>>> a desirable thing to have, and there are currently very few event
>>>>>>>> tags.
>>>>>> I’m
>>>>>>>> not clear on whether the meta-tags effect the end result of code
>>>>>>>> size.
>>>>>>>> 
>>>>>>>> Harbs
>>>>>>>> 
>>>>>>>>> On Oct 30, 2017, at 7:38 PM, GitBox <gi...@apache.org> wrote:
>>>>>>>>> 
>>>>>>>>> justinmclean commented on issue #60: Image not removed when src
>>>>>>>>> set
>>>>>>>>> to
>>>>>>>> null
>>>>>>>>> URL: 
>>>>>>>>> 
>>>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
>>>>>>>>> th 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fg
>>>>>>>>> ith>
>>>>>>>>> ub.com 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fub
>>>>>>>>> .com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
>>>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=r6HO%
>>>>>>>>> 2BnrNPHbRD50yN6YnOUnW%2FSeeVdvfqXCAVdMdg9I%3D&reserved=0>%2Fapache%
>>>>>>>>> 2Froyale-asjs%2Fissues%2F60%23&data=02%7C01%7C%7Cd040
>>>>>>>>> 
>>>>>>>>> 5ef4adc6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>>>>>>>> %7
>>>>>>>>> 
>>>>>>>>> C0%7C636449847130199355&sdata=GJ5cQmWUXSJyuYIcs2dn5UU%2BGtWVqy17xFb
>>>>>>>>> if
>>>>>>>>> 9Gknpc%3D&reserved=0
>>>>>>>> issuecomment-340524197
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> This code fails to compile:
>>>>>>>>> ```
>>>>>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>>>>>> <js:Application
>>>>>>>>> 
>>>>>>>>> xmlns:fx="https://na01.safelinks.protection.outlook.com/?url=http%3
>>>>>>>>> A% <https://na01.safelinks.protection.outlook.com/?url=http%3A%>
>>>>>>>>> 2F%2Fns.adobe.com
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2F2f
>>>>>>>>> ns.adobe.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%
>>>>>>>>> 7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sda
>>>>>>>>> ta=F2suvsGXXdUZIQ1ewrhxtJbX6bro5WZgQnka2EHTpLY%3D&reserved=0>%2Fmxm
>>>>>>>>> l%2F2009&data=02%7C01%7C%7Cd0405ef4adc6485ba55
>>>>>>>>> 
>>>>>>>>> 208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984
>>>>>>>>> 71
>>>>>>>>> 
>>>>>>>>> 30355609&sdata=h2%2BZE%2FtC5p0ZVuay%2B01WvZSF%2BSc7%2BUbqLFKdzAe4%2
>>>>>>>>> Bn
>>>>>>>>> o%3D&reserved=0"
>>>>>>>>>               xmlns:js="library://ns.apache.org/royale/basic
>>>>>>>>> <library://ns.apache.org/royale/basic>">
>>>>>>>>> 
>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>       import org.apache.flex.events.IEventDispatcher;
>>>>>>>>> 
>>>>>>>>>       public function blankimage():void {
>>>>>>>>>           image.visible = false;
>>>>>>>>>           image.src =
>>>>>>>>> 
>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>> ww 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>> ww>
>>>>>>>>> .apache.org
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fap
>>>>>>>>> ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa
>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=w
>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data=0
>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>> 
>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=
>>>>>>>>> pn
>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>> foundation/press/kit/
>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>       }
>>>>>>>>>       public function showImage():void {
>>>>>>>>>           image.visible = true;
>>>>>>>>>       }
>>>>>>>>>       ]]></fx:Script>
>>>>>>>>> 
>>>>>>>>>   <js:valuesImpl>
>>>>>>>>>       <js:SimpleCSSValuesImpl/>
>>>>>>>>>   </js:valuesImpl>
>>>>>>>>> 
>>>>>>>>>   <js:initialView>
>>>>>>>>> 
>>>>>>>>>       <js:View>
>>>>>>>>>           <js:Container id="startPage" visible="true"
>>>>>>>>> width="100%">
>>>>>>>>>               <js:beads>
>>>>>>>>>                   <js:VerticalLayout />
>>>>>>>>>               </js:beads>
>>>>>>>>>               <js:Image id="image"
>>>>>>>>> 
>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>> %2 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2>
>>>>>>>>> Fwww.apache.org
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffw
>>>>>>>>> ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%2F
>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>> 
>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>>>> at
>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>>               <js:TextButton text="Blank" click="blankimage()" />
>>>>>>>>>           </js:Container>
>>>>>>>>>       </js:View>
>>>>>>>>>   </js:initialView>
>>>>>>>>> 
>>>>>>>>> </js:Application>
>>>>>>>>> ```
>>>>>>>>> 
>>>>>>>>> With this error:
>>>>>>>>> ```
>>>>>>>>> 
>>>>>>>>> /Users/justinmclean/IdeaProjects/FlexJSTest/src/ImageBlank.mxml(26)
>>>>>>>>> :
>>>>>>>> col: 130 This attribute is unexpected. It will be ignored.
>>>>>>>>> 
>>>>>>>>>               <js:Image id="image"
>>>>>>>>> 
>>>>>>>>> src="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F
>>>>>>>>> %2 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2>
>>>>>>>>> Fwww.apache.org
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffw
>>>>>>>>> ww.apache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3
>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sd
>>>>>>>>> ata=HyPKXle%2FuDEe7rDKrDs7Wizd92wpdcj5bh0tw14gZDk%3D&reserved=0>%2F
>>>>>>>>> &data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>>>>>> 
>>>>>>>>> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>>>> at
>>>>>>>>> a=pniuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>>>> foundation/press/kit/asf_logo_url.png" width="50%" height="50%"
>>>>>>>> layoutNeeded="showImage()" />
>>>>>>>>> ```
>>>>>>>>> 
>>>>>>>>> I assume the only way to do this would be to add a hard coded
>>>>>>>>> event
>>>>>>>> listener manually like so?
>>>>>>>>> 
>>>>>>>>> ```
>>>>>>>>>   <fx:Script><![CDATA[
>>>>>>>>>       public function blankimage():void {
>>>>>>>>>           image.visible = false;
>>>>>>>>>           image.src =
>>>>>>>>> 
>>>>>>>>> "https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>> ww 
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
>>>>>>>>> ww>
>>>>>>>>> .apache.org
>>>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fap
>>>>>>>>> ache.org%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa
>>>>>>>>> 7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=w
>>>>>>>>> CeLuvseIB90HK6j56Ba5Kb7GYd9Dh6Edb7xsBW2e3g%3D&reserved=0>%2F&data=0
>>>>>>>>> 2%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07%7Cf
>>>>>>>>> 
>>>>>>>>> a7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=
>>>>>>>>> pn
>>>>>>>>> iuBoujFMWxq1MjO1rmnLPHgMC6CzFPHl2HhXjOwhk%3D&reserved=0
>>>>>> foundation/press/kit/
>>>>>>>> poweredBy/Apache_PoweredBy.png";
>>>>>>>>>           image.addEventListener("layoutNeeded", showImage);
>>>>>>>>>       }
>>>>>>>>> 
>>>>>>>>>       public function showImage(event:Event):void {
>>>>>>>>>           image.visible = true;
>>>>>>>>>       }
>>>>>>>>>       ]]></fx:Script>
>>>>>>>>> ```
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> ----------------------------------------------------------------
>>>>>>>>> This is an automated message from the Apache Git Service.
>>>>>>>>> To respond to the message, please log on GitHub and use the
>>>>>>>>> URL above to go to the specific comment.
>>>>>>>>> 
>>>>>>>>> For queries about this service, please contact Infrastructure at:
>>>>>>>>> users@infra.apache.org <ma...@infra.apache.org>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> With regards,
>>>>>>>>> Apache Git Services
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> 
>>>>>>> Piotr Zarzycki
>>>>>>> 
>>>>>>> mobile: +48 880 859 557
>>>>>>> skype: zarzycki10
>>>>>>> 
>>>>>>> LinkedIn: 
>>>>>>> 
>>>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.l
>>>>>>> in 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
>>>>>>> lin>
>>>>>>> kedin.com 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkedi
>>>>>>> n.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5
>>>>>>> a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Mm3KnX%2
>>>>>>> Fqw2VS9FWPISeb6Knk5ujLq3a1GkeW5w%2Fa6%2Bc%3D&reserved=0>%2Fpiotrzarzy
>>>>>>> cki&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc
>>>>>>> 
>>>>>>> 38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609
>>>>>>> &s
>>>>>>> data=Mhs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>>>> 
>>>>>>> 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>> li 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.
>>>>>>> li>
>>>>>>> nkedin.com 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnked
>>>>>>> in.com%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b
>>>>>>> 5a7b34438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=4v8CSfu
>>>>>>> TEXFUvstLxKrulQPrEp4XuahgnAFuQnGz00Y%3D&reserved=0>%2Fin%2Fpiotr-zarz
>>>>>>> ycki-92a53552&data=02%7C01%7C%7Cd0405ef4adc
>>>>>>> 
>>>>>>> 6485ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63
>>>>>>> 64
>>>>>>> 
>>>>>>> 49847130355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%
>>>>>>> 3D
>>>>>>> &reserved=0>
>>>>>>> 
>>>>>>> GitHub: 
>>>>>>> 
>>>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
>>>>>>> ub 
>>>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
>>>>>>> hub>
>>>>>>> 
>>>>>>> .com%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc3
>>>>>>> 8b
>>>>>>> 
>>>>>>> 07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sd
>>>>>>> at
>>>>>>> a=mi12zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> 
>>>>> Piotr Zarzycki
>>>>> 
>>>>> mobile: +48 880 859 557
>>>>> skype: zarzycki10
>>>>> 
>>>>> LinkedIn: 
>>>>> 
>>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.lin
>>>>> ke 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.li
>>>>> nke>
>>>>> din.com 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdin.co
>>>>> m%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b344
>>>>> 38794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=Vd1DLR0HJtY44XdR
>>>>> L3rfOKv0%2FISQd7AIugp2SEo0sPM%3D&reserved=0>%2Fpiotrzarzycki&data=02%7C
>>>>> 01%7C%7Cd0405ef4adc6485ba55208d51fc38b0
>>>>> 
>>>>> 7%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata
>>>>> =M
>>>>> hs%2F8uCEal%2F%2ByaWFrAPHoahv3fp7MaaCQ7ezLraU5WQ%3D&reserved=0
>>>>> 
>>>>> 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li
>>>>> nk 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpl.li
>>>>> nk>
>>>>> edin.com 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fedin.c
>>>>> om%2F&data=02%7C01%7C%7C54b744f304af408f80c908d5204860d3%7Cfa7b1b5a7b34
>>>>> 438794aed2c178decee1%7C0%7C0%7C636450417665614182&sdata=YiselN3iLsgF8wv
>>>>> dfKQTmQyfQzwEExpIcvdlptHponI%3D&reserved=0>%2Fin%2Fpiotr-zarzycki-92a53
>>>>> 552&data=02%7C01%7C%7Cd0405ef4adc6485
>>>>> 
>>>>> ba55208d51fc38b07%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63644984
>>>>> 71
>>>>> 
>>>>> 30355609&sdata=K%2FVEqa3kVpSXeOppqc9JLQKnxRmGNI3bZNQ%2FHqEAKNo%3D&reser
>>>>> ve
>>>>> d=0>
>>>>> 
>>>>> GitHub: 
>>>>> 
>>>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub
>>>>> .c 
>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu
>>>>> b.c>
>>>>> 
>>>>> om%2Fpiotrzarzycki21&data=02%7C01%7C%7Cd0405ef4adc6485ba55208d51fc38b07
>>>>> %7
>>>>> 
>>>>> Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636449847130355609&sdata=mi
>>>>> 12
>>>>> zf18eKrbGi30qfgZgGD9RRoPGGL%2BwAo1unRqnYc%3D&reserved=0
>> 
>