Yup, refactoring an active code base is never fun. I'm about to shut it down for tonight. I'll check back in about 7 hours.
On 5/3/13 10:42 PM, "Erik de Bruin" <[email protected]> wrote: > I just woke up, I'll look at it after breakfast ;-) > > It looks to be a small change, but it's confusing to have to look at > three sources (original, 'goog.events' and Carlos'), so I expect some > errors to creep into the code after this merge. Shouldn't be too big > of a deal to fix the ones we find, though. > > EdB > > > > On Sat, May 4, 2013 at 7:33 AM, Alex Harui <[email protected]> wrote: >> Should hopefully be a small change. How is it going? Did you get the >> publisher to work again? >> >> >> On 5/3/13 10:23 PM, "Erik de Bruin" <[email protected]> wrote: >> >>> 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 >>> >>> >> >> -- >> 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
