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