Thanks for waiting with this commit till after I land the 'goog.events' branch :-(
EdB On Fri, May 3, 2013 at 11:48 PM, Carlos Rovira <[email protected]> wrote: > 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 <[email protected]> > >> 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" <[email protected]> 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 <[email protected]> >> > >> >> 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 <[email protected]> >> >> >> >>> 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" <[email protected]> >> 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 <[email protected]> >> >>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> On 5/1/13 3:40 PM, "Carlos Rovira" <[email protected]> >> >>> 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 -- Ix Multimedia Software Jan Luykenstraat 27 3521 VB Utrecht T. 06-51952295 I. www.ixsoftware.nl
