This is related to:
http://jira.openlaszlo.org/jira/browse/LPP-7958
So, it appears will still need to improve the error reporting when you
attempt to write a constraint on an object that does not participate
in the OL event system.
http://jira.openlaszlo.org/jira/browse/LPP-7344
But, maybe with the improved runtime error reporting (just added to
trunk), these errors will be more obvious, instead of silently failing?
On 2009-10-05, at 09:50, Rami Ojares / AMG Oy wrote:
For completeness sake here is the correct formulation of the idea I
was trying to achieve (I quess I should have posted this on the user
side)
<canvas debug="true">
<view name="test">
<attribute name="someArr" value="new Array()"/>
<view width="100" height="100" bgcolor="$
{this.hasElements(parent.someArr) ? 'red' : 'blue'}" x="30" y="45">
<method name="hasElements" args="attr">
return attr.length != 0;
</method>
<handler name="onclick">
parent.someArr.push("foo")
parent.setAttribute("someArr", parent.someArr);
</handler>
</view>
</view>
</canvas>
Lesson learned:
Use methods for more complex calculations in constraints and name
the attributes (dependencies) as arguments.
- rami
Max Carlson wrote:
That's correct. Constraints will only work properly with OL
attributes. Things like array.length don't tell the runtime when
they change, so the constraint doesn't know when to update...
Rami Ojares / AMG Oy wrote:
It probably has something to do with the dependencies...
Maybe my code is incorrect when it refers to
"parent.someArr.length" in the constraint?
Am I allowed only to refer to attribute names of laszlo nodes in
constraints?
So that dependencies can be constructed properly.
- rami
Rami Ojares / AMG Oy wrote:
Hi,
I stumbled upon a problem with swf9 (and up) attribute constraints.
Here is sample code that works in swf8 but fails silently in swf9
<!-- The problem is with setting of bgcolor attribute -->
<canvas debug="true">
<view name="test">
<attribute name="someArr" value=" new Array()"/>
<view width="100" height="100" bgcolor="$
{parent.someArr.length == 0 ? 'red' : 'blue'}" x="30" y="45">
<handler name="oninit">
Debug.inspect(parent.someArr.length == 0)
</handler>
</view>
</view>
</canvas>
Here the same thing slightly modified so that it works in swf9
<!-- The problem is with setting of bgcolor attribute -->
<canvas debug="true">
<view name="test">
<attribute name="someArr" value=" new Array()"/>
<view width="100" height="100" bgcolor="$
{this.hasErrors() ? 'red' : 'blue'}" x="30" y="45">
<handler name="oninit">
Debug.inspect(parent.someArr.length == 0)
</handler>
<method name="hasErrors">
return parent.someArr.length == 0;
</method>
</view>
</view>
</canvas>
So it seems to me that something gets screwed parsing attribute
constraints in swf9.
Any ideas?
- rami