On Jan 29, 2013 9:16 AM, "Alex Harui" <aha...@adobe.com> wrote: > > Not really, mostly just to see what happens if you use widgets that are not > based on UIBase. As of right now, buttons are based on SimpleButton to save > writing a bunch of code and are not a UIBase, but yesterday I started > leaning towards making an IUIBase and making Button implement that. Feel > free to make that change if it is getting in your way. > >
I was thinking of an IUIBase myself. Will go ahead with that idea now. Thanks, Om > On 1/29/13 12:49 AM, "Om" <bigosma...@gmail.com> wrote: > > > Any particular reason the TextButton instance is displayed using > > this.addChild(button) instead of a button.addToParent(this) ? > > > > On Mon, Jan 28, 2013 at 11:52 PM, Om <bigosma...@gmail.com> wrote: > > > >> That worked. Thanks! > >> > >> Om > >> > >> > >> On Mon, Jan 28, 2013 at 6:22 PM, Alex Harui <aha...@adobe.com> wrote: > >> > >>> And you will need to update MXMLDataInterpreter.as from SVN. > >>> > >>> > >>> On 1/28/13 5:21 PM, "Alex Harui" <aha...@adobe.com> wrote: > >>> > >>>> OK, here it is: > >>>> > >>>> FlexJSTest.as: > >>>> package > >>>> { > >>>> import controllers.MyController; > >>>> > >>>> import flash.display.Sprite; > >>>> import flash.text.TextField; > >>>> > >>>> import models.MyModel; > >>>> > >>>> import org.apache.flex.core.Application; > >>>> > >>>> public class FlexJSTest extends Application > >>>> { > >>>> public function FlexJSTest() > >>>> { > >>>> valuesImpl = new MySimpleValuesImpl(); > >>>> model = new MyModel(); > >>>> model.labelText = "Hello World!"; > >>>> initialView = new MyInitialView(); > >>>> controller = new MyController(this); > >>>> } > >>>> > >>>> private var controller:MyController; > >>>> } > >>>> } > >>>> > >>>> MyInitialView.as: > >>>> package > >>>> { > >>>> import flash.events.Event; > >>>> > >>>> import org.apache.flex.binding.SimpleBinding; > >>>> import org.apache.flex.core.ViewBase; > >>>> import org.apache.flex.html.staticControls.Button; > >>>> import org.apache.flex.html.staticControls.Label; > >>>> import org.apache.flex.html.staticControls.TextButton; > >>>> > >>>> public class MyInitialView extends ViewBase > >>>> { > >>>> public function MyInitialView() > >>>> { > >>>> super(); > >>>> } > >>>> > >>>> override public function initUI(model:Object):void > >>>> { > >>>> super.initUI(model); > >>>> lbl = new Label(); > >>>> lbl.addToParent(this); > >>>> lbl.initModel(); > >>>> lbl.x = 100; > >>>> lbl.y = 25; > >>>> var sb:SimpleBinding = new SimpleBinding(); > >>>> sb.setDocument(this); > >>>> sb.destinationPropertyName = "text"; > >>>> sb.sourceID = "applicationModel"; > >>>> sb.eventName = "labelTextChanged"; > >>>> sb.sourcePropertyName = "labelText"; > >>>> lbl.addBead(sb); > >>>> lbl.initSkin(); > >>>> > >>>> var btn:TextButton = new TextButton(); > >>>> addChild(btn); > >>>> btn.initModel(); > >>>> btn.text = "OK"; > >>>> btn.x = 100; > >>>> btn.y = 75; > >>>> btn.addEventListener("click", clickHandler); > >>>> btn.initSkin(); > >>>> } > >>>> > >>>> public var lbl:Label; > >>>> > >>>> private function clickHandler(event:Event):void > >>>> { > >>>> dispatchEvent(new Event("buttonClicked")); > >>>> } > >>>> } > >>>> } > >>>> > >>>> > >>>> On 1/28/13 3:41 PM, "Alex Harui" <aha...@adobe.com> wrote: > >>>> > >>>>> OK, I'll put together the AS version of the app. > >>>>> > >>>>> > >>>>> On 1/28/13 3:35 PM, "Om" <bigosma...@gmail.com> wrote: > >>>>> > >>>>>> On Sun, Jan 27, 2013 at 11:20 PM, Alex Harui <aha...@adobe.com> > >>> wrote: > >>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> On 1/27/13 10:50 PM, "Om" <bigosma...@gmail.com> wrote: > >>>>>>> > >>>>>>>>>> But they dont seem to match up. Can you please respond with how > >>> the > >>>>>>> mxml > >>>>>>>>>> would look when redone as a pure actionscript file? > >>>>>>>>>> > >>>>>>>>> There are two possible answers to this question. One is for the > >>>>>>> question: > >>>>>>>>> what would the generated AS for the MXML file look like? It > >>> would look > >>>>>>>>> somewhat like the FlexJSTest.as that you found, but it is a bit > >>>>>>> different > >>>>>>>>> because when I finally got the compiler working it was easier to > >>> change > >>>>>>>>> some > >>>>>>>>> of the 'generated' code a bit. If you are really interested, I > >>> will > >>>>>>> try to > >>>>>>>>> hand-code it. > >>>>>>>>> > >>>>>>>>> > >>>>>>>> This would be good. I played my hand around hand-coding based on > >>> this > >>>>>>> wiki > >>>>>>>> note [1] > >>>>>>>> But I would rather see your version. > >>>>>>> I'm not sure why you want to be hand-coding AS versions of MXML > >>> files. > >>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>>> The other answer is for the question: How would you write this app > >>> in > >>>>>>>>> ActionScript? If I were to do it, it would not use the data array > >>> at > >>>>>>> all, > >>>>>>>>> it would call new Button and new Label and set properties and add > >>> event > >>>>>>>>> handlers. > >>>>>>>>> > >>>>>>>>> -- > >>>>>>>> > >>>>>>>> > >>>>>>>> I am curious how this would work behind the scenes. But I am not > >>> in a > >>>>>>>> hurry to look at the implementation details. > >>>>>>>> > >>>>>>>> A couple other questions while I have your attention: > >>>>>>>> > >>>>>>>> Will the FlexJSTest_again app compile with the current mxmlc? I > >>> saw your > >>>>>>>> note in the wiki that says that it wont. Is there any way to make > >>> it > >>>>>>> work? > >>>>>>> The status page supercedes the original wiki page. > >>>>>>> FalconJS converts FlexJSTest.mxml to FlexJSTest.js. Falcon > >>> (assuming you > >>>>>>> set the mxml.children-as-data flag) will convert FlexJSTest.mxml to a > >>>>>>> running SWF. > >>>>>>>> > >>>>>>>> I have hooked up the falcon compiler to my flash builder (4.6) as an > >>>>>>>> external run tool. The app compiles fine, but the IDE keeps showing > >>>>>>>> errors. Any way I can jerry rig Flash Builder to use the Falcon > >>> mxmlc? > >>>>>>> I haven't tried. I assume you can swap out the original MXMLC > >>> compiler for > >>>>>>> the Falcon JARs. > >>>>>>> > >>>>>>>> > >>>>>>>> I do have Flash Builder 4.7 installed. I am willing to switch if > >>> that > >>>>>>>> would make this process any simpler. > >>>>>>>> > >>>>>>>> Sorry for so many questions. I am trying to wrap my head around all > >>>>>>> this. > >>>>>>>> My end goal here is to churn out Stage3D based Button and Label > >>> classes. > >>>>>>>> I need to first set up everything so that I can work without > >>> having to > >>>>>>>> jump through hoops to compile every code change I make. > >>>>>>> If that's your goal, I would skip the MXML part for now and build > >>> out a > >>>>>>> simple test app in ActionScript. Then you can do it all in either > >>> version > >>>>>>> of FlashBuilder with the Apache Flex SDK and its MXMLC. > >>>>>>> > >>>>>>> I think FlexJSTest.as would look something like this: > >>>>>>> > >>>>>>> public class FlexJSTest extends Application > >>>>>>> { > >>>>>>> public function FlexJSTest() > >>>>>>> { > >>>>>>> model = new MyModel(); > >>>>>>> model.labelText = "Hello World!"; > >>>>>>> valuesImpl = new MySimpleValuesImpl(); > >>>>>>> initialView = new MyInitialView(); > >>>>>>> controller = new MyController(); > >>>>>>> } > >>>>>>> > >>>>>>> private var controller:MyController; > >>>>>>> public var model:MyModel; > >>>>>>> } > >>>>>>> > >>>>>>> And MyInitialView.as would look something like this: > >>>>>>> > >>>>>>> public class MyInitialView extends ViewBase > >>>>>>> { > >>>>>>> public function MyInitialView() > >>>>>>> { > >>>>>>> super(); > >>>>>>> } > >>>>>>> > >>>>>>> override public function initUI(model:Object):void > >>>>>>> { > >>>>>>> super.initUI(model); > >>>>>>> lbl = new Label(); > >>>>>>> lbl.addToParent(this); > >>>>>>> ... > >>>>>>> } > >>>>>>> > >>>>>>> public var lbl:Label; > >>>>>>> > >>>>>>> private function clickHandler(event:Event):void > >>>>>>> { > >>>>>>> dispatchEvent(new Event("buttonClicked")); > >>>>>>> } > >>>>>>> > >>>>>>> But I haven't tried it. If you get stuck trying to figure it out, I > >>> will > >>>>>>> take a look on Monday. You might need to wait for the initialize > >>> event > >>>>>>> before setting up the four instances in the Application's > >>> constructor. > >>>>>>> > >>>>>>> > >>>>>> Tried it. After fixing a few errors (ex. namespace mismatch because > >>>>>> controller, model etc. are already defined in Application.as, etc.) Am > >>>>>> stuck pretty bad. I see some inconsistencies in how the type of model > >>>>>> (Object vs. IBeadModel) The app compiles fine but I dont see a > >>> label on > >>>>>> the screen. > >>>>>> > >>>>>> I see a comment in Label.as that the view needs to be swapped out, > >>> not sure > >>>>>> what to make of it. > >>>>>> > >>>>>> It would be nice to have your original AS version so that I have a > >>> good > >>>>>> starting point in understanding this framework. > >>>>>> > >>>>>> Thanks, > >>>>>> Om > >>> > >>> -- > >>> Alex Harui > >>> Flex SDK Team > >>> Adobe Systems, Inc. > >>> http://blogs.adobe.com/aharui > >>> > >>> > >> > > -- > Alex Harui > Flex SDK Team > Adobe Systems, Inc. > http://blogs.adobe.com/aharui >