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