Estimado Carlos, disculpa la demora y el lenguaje, lo que quise comentar, es que el problema estaba en que la Clase Popup, no implementa IMXMLDocument , con lo cual a la hora de navegar sus componentes hijos daba el error mencionado, como decía el post. Esto se soluciona buscando un contenedor que en algun metodo show, cree el Popup y realice el llamdo al metodo open() del mismo.
https://github.com/apache/royale-asjs/commit/165393449114c215e80e538644c03b00c7e42ba5 Muchas gracias por su tiempo. Seguimos en contacto El mié., 18 dic. 2019 a las 11:12, Carlos Rovira (<[email protected]>) escribió: > Hi Gustavo, > > please check this commit: > > > https://github.com/apache/royale-asjs/commit/165393449114c215e80e538644c03b00c7e42ba5 > > I uploaded a working example in TDJ about how to instantiate a PopUp via > AS3. I don't see any issue. Maybe there's a language barrier. If you think > there's some issue, please let me know with more detail so I can try to > identify it. > > Thanks! :) > > Carlos > > > > El mar., 17 dic. 2019 a las 3:43, De Carli Gustavo (< > [email protected]>) escribió: > >> Carlos, I think the error is classified with this post. >> >> >> http://apache-royale-development.20373.n8.nabble.com/TypeError-this-generateMXMLAttributes-is-not-a-function-td8881.html >> >> thk. >> >> El lun., 16 dic. 2019 a las 19:11, De Carli Gustavo (< >> [email protected]>) escribió: >> >>> >>> Carlos No. both examples didn't work for me . >>> About your comment, MyPopup already has inside a label component. >>> >>> >>> >>> >>> >>> El lun., 16 dic. 2019 a las 15:59, Carlos Rovira (< >>> [email protected]>) escribió: >>> >>>> Hi Gustavo, >>>> >>>> I didn't understand if you finally get it working or not, can you >>>> specify? >>>> thanks >>>> Carlos >>>> >>>> El lun., 16 dic. 2019 a las 18:52, De Carli Gustavo (< >>>> [email protected]>) escribió: >>>> >>>>> >>>>> Carlos: thank, Yes, those examples were where we started from. Now >>>>> MyPopup already has a label (StyledUIBase) inside. >>>>> >>>>> MyPopup.mxml >>>>> >>>>> <?xml version="1.0" encoding="utf-8"?> >>>>> <j:PopUp xmlns:fx="http://ns.adobe.com/mxml/2009" >>>>> xmlns:j="library://ns.apache.org/royale/jewel"> >>>>> >>>>> <j:Label text="Hello External"/> >>>>> >>>>> </j:PopUp> >>>>> >>>>> >>>>> It was also tested in this way, by code and not in mxml. >>>>> >>>>> public function popupByAS(event:Event):void >>>>> { >>>>> trace('In method byAs'); >>>>> var onePopup:MyPopup = new MyPopup(); >>>>> var oneLabel2:Label = new Label(); >>>>> oneLabel2.text = "Hi !!"; >>>>> onePopup.content = oneLabel2; >>>>> this.addElement(onePopup); >>>>> >>>>> onePopup.open = true; >>>>> } >>>>> >>>>> >>>>> Thanks for your time >>>>> Gustavo. >>>>> >>>>> >>>>> >>>>> El lun., 16 dic. 2019 a las 13:43, Carlos Rovira (< >>>>> [email protected]>) escribió: >>>>> >>>>>> Hi Gustavo, >>>>>> >>>>>> thanks for your kindly words :) >>>>>> >>>>>> About your problem, I don't see in the code exposed that you are >>>>>> adding MyPopup to the onePopup instance >>>>>> >>>>>> Popup has Defaultproperty "content". you must create and assign to it >>>>>> >>>>>> In Tour De Jewel: https://royale.apache.org/tourdejewel/ >>>>>> You can see this: >>>>>> https://github.com/apache/royale-asjs/blob/develop/examples/royale/TourDeJewel/src/main/royale/PopUpPlayGround.mxml >>>>>> >>>>>> <j:PopUp id="popup2" >>>>>> closePopUp="popupFormContent.formValidator.removeAllErrorTips()"> >>>>>> <c:FormExample localId="popupFormContent" label="Form example in a >>>>>> PopUp" width="490" height="392"/> >>>>>> </j:PopUp> >>>>>> >>>>>> >>>>>> since content is Default property we can nest FormExample directly in >>>>>> the instance >>>>>> >>>>>> in AS you need to add to content >>>>>> >>>>>> Best >>>>>> >>>>>> Carlos >>>>>> >>>>>> >>>>>> >>>>>> El lun., 16 dic. 2019 a las 17:27, De Carli Gustavo (< >>>>>> [email protected]>) escribió: >>>>>> >>>>>>> Carlos, Thanks for your prompt response. It fix !!! Now we are >>>>>>> dealing with an external Popup, all this is for the migration of >>>>>>> TitleWindow of flex to royale. We believe it is the best way. Take this >>>>>>> opportunity to congratulate the framework, hopefully you have the first >>>>>>> release version. >>>>>>> Gustavo. >>>>>>> >>>>>>> public function popupByAS(event:Event):void >>>>>>> { >>>>>>> trace('In method byAs'); >>>>>>> var onePopup:MyPopup = new MyPopup(); >>>>>>> this.addElement(onePopup); >>>>>>> >>>>>>> onePopup.open = true; >>>>>>> } >>>>>>> >>>>>>> >>>>>>> Where MyPopup.mxml >>>>>>> <?xml version="1.0" encoding="utf-8"?> >>>>>>> <j:PopUp xmlns:fx="http://ns.adobe.com/mxml/2009" >>>>>>> xmlns:j="library://ns.apache.org/royale/jewel"> >>>>>>> >>>>>>> <j:Label text="Hello External"/> >>>>>>> >>>>>>> </j:PopUp> >>>>>>> >>>>>>> MyPopup.js:42 Uncaught TypeError: this.generateMXMLAttributes is not >>>>>>> a function >>>>>>> at new main.components.Form.MyPopup (MyPopup.js:42) >>>>>>> at Main.popupByAS (Main.mxml:22) >>>>>>> at Main.$EH1 (Main.mxml:51) >>>>>>> at Function.goog.events.fireListener [as googFireListener] >>>>>>> (events.js:753) >>>>>>> at >>>>>>> Object.org.apache.royale.core.HTMLElementWrapper.fireListenerOverride >>>>>>> [as >>>>>>> fireListener] (HTMLElementWrapper.js:53) >>>>>>> at HTMLButtonElement.goog.events.handleBrowserEvent_ >>>>>>> (events.js:879) >>>>>>> at HTMLButtonElement.f (events.js:296) >>>>>>> >>>>>>> El lun., 16 dic. 2019 a las 13:11, Carlos Rovira (< >>>>>>> [email protected]>) escribió: >>>>>>> >>>>>>>> Hi Carli, >>>>>>>> >>>>>>>> the main problem is that you need to add to the parent the popup >>>>>>>> created with >>>>>>>> >>>>>>>> addElement(onePopup); >>>>>>>> >>>>>>>> Notice that each time you'll be creating one popup and adding to >>>>>>>> the container, so maybe you need to create some logic to ensure >>>>>>>> creation >>>>>>>> and addition to parent is done just one time. >>>>>>>> >>>>>>>> An additional issue (that does not gives error) is that click event >>>>>>>> handlers has binding expressions. That's not needed >>>>>>>> >>>>>>>> instead of >>>>>>>> >>>>>>>> click="{this.popByMethod.open = true}" >>>>>>>> >>>>>>>> you write only: >>>>>>>> >>>>>>>> click="popByMethod.open = true" >>>>>>>> >>>>>>>> >>>>>>>> HTH >>>>>>>> >>>>>>>> Carlos >>>>>>>> >>>>>>>> >>>>>>>> El lun., 16 dic. 2019 a las 17:03, Carlos Rovira (< >>>>>>>> [email protected]>) escribió: >>>>>>>> >>>>>>>>> Hi Carli, >>>>>>>>> I'm going to try your code and see what I can report about it >>>>>>>>> >>>>>>>>> El lun., 16 dic. 2019 a las 16:56, De Carli Gustavo (< >>>>>>>>> [email protected]>) escribió: >>>>>>>>> >>>>>>>>>> Hello, someone could be oriented because I do not have the same >>>>>>>>>> behavior in the creation of a popup by msxml than by as. thank you >>>>>>>>>> very much >>>>>>>>>> Method, popupByAs, is the problem, does nothing. >>>>>>>>>> >>>>>>>>>> thank >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> <?xml version="1.0" encoding="utf-8"?> >>>>>>>>>> <j:Application xmlns:fx="http://ns.adobe.com/mxml/2009" >>>>>>>>>> xmlns:html="library://ns.apache.org/royale/html" >>>>>>>>>> xmlns:j="library://ns.apache.org/royale/jewel" >>>>>>>>>> xmlns:Button="main.components.Button.*" >>>>>>>>>> xmlns:Form="main.components.Form.*" >>>>>>>>>> xmlns:js="library://ns.apache.org/royale/basic" >>>>>>>>>> xmlns:c="components.*"> >>>>>>>>>> >>>>>>>>>> <fx:Script> >>>>>>>>>> <![CDATA[ >>>>>>>>>> >>>>>>>>>> import org.apache.royale.events.Event; >>>>>>>>>> import org.apache.royale.jewel.Button; >>>>>>>>>> import org.apache.royale.jewel.PopUp; >>>>>>>>>> >>>>>>>>>> public function popupByAS(event:Event):void >>>>>>>>>> { >>>>>>>>>> trace('In method byAs'); >>>>>>>>>> var oneLabel:Label = new Label(); >>>>>>>>>> oneLabel.text = "Hello by As"; >>>>>>>>>> oneLabel.visible = true; >>>>>>>>>> >>>>>>>>>> var onePopup:PopUp = new PopUp(); >>>>>>>>>> onePopup.content = oneLabel; >>>>>>>>>> >>>>>>>>>> onePopup.open = true; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> ]]> >>>>>>>>>> </fx:Script> >>>>>>>>>> >>>>>>>>>> <j:initialView> >>>>>>>>>> <j:View> >>>>>>>>>> <j:Button id="btnByInMXML" >>>>>>>>>> text="By Method MXML" >>>>>>>>>> x="10" >>>>>>>>>> y="200" >>>>>>>>>> emphasis="primary" >>>>>>>>>> click="{this.popByMethod.open = true}"/> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> <j:PopUp id="popByMethod"> >>>>>>>>>> <j:Label id="lblByMethod" text="Hello Method XML"/> >>>>>>>>>> </j:PopUp> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> <j:Button id="btnByInAS" >>>>>>>>>> text="By Metodo AS" >>>>>>>>>> x="10" >>>>>>>>>> y="200" >>>>>>>>>> emphasis="primary" >>>>>>>>>> click="{this.popupByAS(event)}"/> >>>>>>>>>> </j:View> >>>>>>>>>> </j:initialView> >>>>>>>>>> </j:Application> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Carlos Rovira >>>>>>>>> http://about.me/carlosrovira >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Carlos Rovira >>>>>>>> http://about.me/carlosrovira >>>>>>>> >>>>>>>> >>>>>> >>>>>> -- >>>>>> Carlos Rovira >>>>>> http://about.me/carlosrovira >>>>>> >>>>>> >>>> >>>> -- >>>> Carlos Rovira >>>> http://about.me/carlosrovira >>>> >>>> > > -- > Carlos Rovira > http://about.me/carlosrovira > >
