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