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

Reply via email to