flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Om <bigosma...@gmail.com>
Subject Re: ASJS question - MXML vs. AS
Date Tue, 29 Jan 2013 07:52:42 GMT
That worked.  Thanks!

Om

On Mon, Jan 28, 2013 at 6:22 PM, Alex Harui <aharui@adobe.com> wrote:

> And you will need to update MXMLDataInterpreter.as from SVN.
>
>
> On 1/28/13 5:21 PM, "Alex Harui" <aharui@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" <aharui@adobe.com> wrote:
> >
> >> OK, I'll put together the AS version of the app.
> >>
> >>
> >> On 1/28/13 3:35 PM, "Om" <bigosmallm@gmail.com> wrote:
> >>
> >>> On Sun, Jan 27, 2013 at 11:20 PM, Alex Harui <aharui@adobe.com> wrote:
> >>>
> >>>>
> >>>>
> >>>>
> >>>> On 1/27/13 10:50 PM, "Om" <bigosmallm@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
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message