Hi Alex, without doubt these are great ideas, since my understanding is that, although FlexJS should in most cases hide in components the complexity os HTML/JS internals, many times people would want to declare "low level" JS. To create those components, I'm not ready enough. I'm still trying to generate an MDL project, and I have something compiling but not working as expected in a local branch generated by me.
2016-10-13 23:49 GMT+02:00 Alex Harui <aha...@adobe.com>: > Josh is right that you currently can't, but I'm not sure the reason is > about MXML being a higher abstraction layer. > > IMO, the issue is about how FalconJX transpiles MXML. It creates a simple > data structure and the data interpreter just takes the classes mapped to > the tag names and tries to instantiate them. HTMLElement doesn't seem to > allow direct instantiation. It seems to want us to call > document.createElement. I suppose we could change the interpreter to > check for HTMLElements and instantiate them differently. > > The FlexJS components that MXML currently supports all wrap HTMLElements. > I would have not wrapped HTMLElement if HTMLElement supported > instantiation via "new" and more importantly, supported subclassing via > "new", since MXML essentially creates a subclass of the top tag in an MXML > file. If there is a way around these limitations, it would seriously > change the way we write the FlexJS framework. > > So, right now, you could create FlexJS components that wrap each and every > HTMLElement. We just haven't bothered for the low-level text-oriented > elements. I still claim it will be faster to deal with them as innerHTML. > Otherwise a lot of wrapping code will run to establish the same DOM. > Feel free to create those components if you want to. > > I haven't tried it, but hopefully the FlexJS components support > defaultProperty properly. Maybe the compiler needs additional smarts > around defaultProperty so you can do: > > <js:MultilineLabel> > <h3>Some Header</h3> > This is some <i>text</i>. > </js:MultilineLabel> > > And that would map the contents to the html property (it might map to the > text property today, not sure). > > HTH, > -Alex > > > > On 10/13/16, 2:22 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: > > >You can't. Think of MXML as being at a higher abstraction layer. It > >doesn't > >know anything about HTML or the Flash display list. > > > >- Josh > > > >On Thu, Oct 13, 2016 at 2:09 PM, Carlos Rovira < > >carlos.rov...@codeoscopic.com> wrote: > > > >> Thanks for the various responses, many useful. > >> > >> One more thing: Can I use HTMLElement in MXML. I'm trying without luck: > >> > >> <js:HTMLElement className="xxx" text="yyy"/> > >> > >> Thanks > >> > >> 2016-10-13 22:25 GMT+02:00 Alex Harui <aha...@adobe.com>: > >> > >> > I think we need more context to answer this question. > >> > > >> > From MXML, you should be able to put "simple" HTML as the value of > >> > Label.html, Button.html, TextInput.html and hopefully any other FlexJS > >> > framework component that displays text. Essentially, we want all > >>FlexJS > >> > UI widgets to work with HTML as well as plain text Strings. On the > >>SWF > >> > side, the HTML support is currently limited by flash.text.TextField. > >>On > >> > the JS side, the components should just be setting innerHTML. > >> > > >> > If you are writing AS to transpile to low-level JS, then as others > >> > answered you can create HTMLxxxElements and work with them, or also > >>just > >> > set the innerHTML of some element. > >> > > >> > I still have dreams of a component set for FlexJS with components > >>such as > >> > "I" so you could essentially in-line HTML with the rest of your MXML, > >>but > >> > that will be a bunch of work on the SWF-side, and probably not nearly > >>as > >> > efficient as havin browser take raw HTML as innerHTML. > >> > > >> > HTH, > >> > -Alex > >> > > >> > On 10/13/16, 11:55 AM, "carlos.rov...@gmail.com on behalf of Carlos > >> > Rovira" <carlos.rov...@gmail.com on behalf of > >> > carlos.rov...@codeoscopic.com> wrote: > >> > > >> > >Hi, > >> > > > >> > >I'm trying to output <i> html tag, I think it should be something > >>like > >> > >HTMLIElement or something. > >> > >Btw, Where I could find the HTMLInputElement, HTMLSpanElement and > >> others? > >> > > > >> > >Thanks > >> > > > >> > >-- > >> > > > >> > >Carlos Rovira > >> > >Director General > >> > >M: +34 607 22 60 05 > >> > >http://www.codeoscopic.com > >> > >http://www.avant2.es > >> > > > >> > > > >> > >Este mensaje se dirige exclusivamente a su destinatario y puede > >>contener > >> > >información privilegiada o confidencial. Si ha recibido este mensaje > >>por > >> > >error, le rogamos que nos lo comunique inmediatamente por esta misma > >> vía y > >> > >proceda a su destrucción. > >> > > > >> > >De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >> > >comunicamos > >> > >que sus datos forman parte de un fichero cuyo responsable es > >>CODEOSCOPIC > >> > >S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >> > >servicio o información solicitados, teniendo usted derecho de acceso, > >> > >rectificación, cancelación y oposición de sus datos dirigiéndose a > >> > >nuestras > >> > >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la > >>documentación > >> > >necesaria. > >> > > >> > > >> > >> > >> -- > >> > >> Carlos Rovira > >> Director General > >> M: +34 607 22 60 05 > >> http://www.codeoscopic.com > >> http://www.avant2.es > >> > >> > >> Este mensaje se dirige exclusivamente a su destinatario y puede contener > >> información privilegiada o confidencial. Si ha recibido este mensaje por > >> error, le rogamos que nos lo comunique inmediatamente por esta misma > >>vía y > >> proceda a su destrucción. > >> > >> De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >>comunicamos > >> que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC > >> S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >> servicio o información solicitados, teniendo usted derecho de acceso, > >> rectificación, cancelación y oposición de sus datos dirigiéndose a > >>nuestras > >> oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación > >> necesaria. > >> > > -- Carlos Rovira Director General M: +34 607 22 60 05 http://www.codeoscopic.com http://www.avant2.es Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC S.A. La finalidad de dicho tratamiento es facilitar la prestación del servicio o información solicitados, teniendo usted derecho de acceso, rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación necesaria.