Hi Alex,

fixed in my latest commit, not JS and SWF works ok. Things look better at
daylight ;).
Only JS side need to improve applicationModel to be getter/setter.

I change SimpleBinding fix to try catch as you suggested.

Best,

Carlos


2013/5/3 Alex Harui <aha...@adobe.com>

> Hi Carlos,
>
> I don't think the change to ViewBase.as was correct.  The applicationModel
> property should be a getter.  It looks like you reverted to a var.
>
> See if that fixes the SWF situation.
>
> -Alex
>
> On 5/2/13 6:17 PM, "Carlos Rovira" <carlos.rov...@codeoscopic.com> wrote:
>
> > Alex,
> >
> > I shared a branch with some changes "feature/applicationModel_refactor".
> >
> > applicationModel is the variable that makes createjs sample fail with the
> > change in simplebinding. I refactor to the way you show (hopefuly).
> >
> > In the JS version all is working right. But now SWF compilations fails in
> > runtime for both, _again and createjs sample (in different ways).
> >
> > Could you take a look and see if this refactor is in the way you
> > commented?. I'll take a look tomorrow and see why SWFs are failing.
> >
> >
> >
> > 2013/5/3 Carlos Rovira <carlos.rov...@codeoscopic.com>
> >
> >> Hi Alex,
> >>
> >> now I understand the problem. I was not aware of @expose and what you
> >> comment here. Very important information. Tomorrow I'll go back to the
> >> sample and see if I can change the sample to get working with that style
> >> and remove this fix since I think it's better to force people to make
> >> things in the good way.
> >>
> >>
> >>
> >> 2013/5/2 Alex Harui <aha...@adobe.com>
> >>
> >>> Hi Carlos,
> >>>
> >>> I saw the changes.
> >>>
> >>> I think it is a good fix, but you might want to add a comment that the
> >>> non-getter approach is likely to fail for non-public variables when
> >>> minified.
> >>>
> >>> Right now, binding in FlexJS only works for public properties and your
> fix
> >>> makes it work for public variables.  Note that in some cases, the
> backing
> >>> variable for a public get/set is the same name because in JS the
> pattern
> >>> looks like:
> >>>
> >>>     /** @private */
> >>>     var foo;
> >>>
> >>>     /** @expose */
> >>>     function get_foo()
> >>>     {
> >>>         return this.foo;
> >>>     }
> >>>
> >>> The question is, what did the AS look like?  If it looked like
> >>>
> >>>     private var _foo;
> >>>     public function get foo()
> >>>     {
> >>>         return this._foo;
> >>>     }
> >>>
> >>> Then the JS code for your failure case should be changed to look like
> the
> >>> recommended pattern and then you don't need the [this.sourceID] code
> path
> >>> as
> >>> there will be a get_ function.
> >>>
> >>> If the AS looked like:
> >>>
> >>>     public var foo;
> >>>
> >>> Then the JS should be
> >>>
> >>> /** @expose */
> >>> Someclass.prototype.foo;
> >>>
> >>> If they forget to use @expose then it will likely fail when minified.
> >>>
> >>> One more minor thing:  Do you happen to know if try/catch is more
> >>> efficient
> >>> than doing a property lookup to see if it is undefined before making a
> >>> call?
> >>>
> >>> Anyway, thanks for contributing.  We can use all the help we can get.
> >>>
> >>>
> >>> On 5/2/13 2:35 PM, "Carlos Rovira" <carlos.rov...@codeoscopic.com>
> wrote:
> >>>
> >>>> Hi Alex,
> >>>>
> >>>> I commit a solution that fixes the problem, but I don't know if is
> >>>> compliant with the motivation you make this change (minified version).
> >>>>
> >>>> I think binding should work even if we don't have a getter/setter
> setup,
> >>>> but I'm to new to this new framework that maybe this is not what you
> >>> have
> >>>> in mind.
> >>>>
> >>>> So it's up to you to change if you see some problem with this fix.
> >>>>
> >>>>
> >>>> 2013/5/2 Alex Harui <aha...@adobe.com>
> >>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 5/1/13 3:40 PM, "Carlos Rovira" <carlos.rov...@codeoscopic.com>
> >>> wrote:
> >>>>>
> >>>>>> Hi Alex
> >>>>>>
> >>>>>> this latest change in SimpleBinding:
> >>>>>>
> >>>>>> -    this.source = this.document[this.sourceID];
> >>>>>> +    this.source = this.document['get_' + this.sourceID]();
> >>>>>>
> >>>>>>
> >>>>>> Makes the createjs sample to not generate controls far beyond a
> >>>>>> SimpleBinding.
> >>>>>>
> >>>>>> I need to change the sample code or it's a bug?
> >>>>> Well, using getters is correct.  Are you binding to something that
> >>> isn't a
> >>>>> getter in AS?  Maybe the JS version of that property should have
> been a
> >>>>> get/set pair.
> >>>>>
> >>>>> But if you want, you can also try to make SimpleBinding tolerant and
> >>> find
> >>>>> things that aren't getters.
> >>>>>>
> >>>>>> Thanks
> >>>>>
> >>>>> --
> >>>>> 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
> >>>
> >>>
> >>
> >>
> >> --
> >> Carlos Rovira
> >> Director de TecnologĂ­a
> >> M: +34 607 22 60 05
> >> F:  +34 912 94 80 80
> >> http://www.codeoscopic.com
> >> http://www.directwriter.es
> >> http://www.avant2.es
> >>
> >
> >
>
> --
> Alex Harui
> Flex SDK Team
> Adobe Systems, Inc.
> http://blogs.adobe.com/aharui
>
>


-- 
Carlos Rovira
Director de TecnologĂ­a
M: +34 607 22 60 05
F:  +34 912 94 80 80
http://www.codeoscopic.com
http://www.directwriter.es
http://www.avant2.es

Reply via email to