[Laszlo-dev] applyConstraintMethod problem

P T Withington ptw at pobox.com
Wed Dec 17 12:02:50 PST 2008


I'd keep it where the applyConstraint is happening for now, unless you  
understand this component very well.

The issue is that applyConstraint took a plain function, but that  
function would not have any access to the instance in swf9, so you  
have to move the function body to an actual method, and then use  
applyConstraintMethod to name the method (instead of passing the  
function).

On 2008-12-17, at 14:48EST, Lee Lundrigan wrote:

> Very interesting.
>
> So where would be the best place to use  
> 'this.applyConstraintMethod'? Would it be in oninit, construct,  
> onconstruct?
>
> P T Withington wrote:
>> Here's the clue:
>>
>> On 2008-12-17, at 14:01EST, Lee Lundrigan wrote:
>>
>>> incubator/scrolledittext.lzx#79/30 @incubator/scrolledittext.lzx#92
>>
>> The transformation you have to make (and this is if you ever want  
>> this to work in swf9) is to take the functions that are being  
>> applied as constraints there, make them into named methods on the  
>> class instead (you'll have to make up your own names, like  
>> __constrainX, __constrainStepSize, etc.) and then call  
>> applyConstraintMethod, e.g.:
>>
>>  <method name="__constrainX">this.setAttribute("x",  
>> this.parent.width - this.width );</method>
>>
>> ...
>>
>>  this.applyConstraintMethod('__constrainX', [p, "width", this,  
>> "width", p, "border"]);
>>
>> I don't understand what the original designer was trying to do  
>> here.  It looks like they took some normal constraints (in the  
>> comments ` x="${parent.width - this.width - parent.border + 1}"`)  
>> and hand-expanded/fudged them to do something similar but  
>> different.  There might be a simpler way to acheive this by simply  
>> writing normal constraints, but I can't tell.  Clearly writing them  
>> as normal constraints, the compiler handles all the magic of making  
>> methods, etc.  It's because these constraints were written out by  
>> hand that they are running into the deprecation warning.
>



More information about the Laszlo-dev mailing list