Hi,

Current documentation has this to say about node's createChildren(carr) argument

"an array of children where the structure of each child [c] takes the form:
c.name = a string containing the name of the child -- usually its constructor c.args = a dictionary of attributes and values to be passed to the constructor of that child
c.children = an array of children for the new child"

None of this seems to be true.
Instead the children seems to have the structure:
c.attrs = a dictionary of attributes and values to be passed to the constructor of that child
c.class = pointer to the class to be instantiated

When you further inspect the class there is one useful attribute:
tagname. That seems to have the same function as c.name in the above mentioned documentation.

Further it seems that in the current trunk if you instantiate a class with a constrained attribute like this

<view height="${foo.height}"/>

It's tagname becomes
"anonymous tagname"

Code:

<canvas debug="true">
    <view >
        <method name="createChildren" args="children"><![CDATA[
            for(var i=0; i<children.length; i++) {
                Debug.write(children[i]['class'].tagname);
            }
        ]]></method>
        <view height="${canvas.height}"/>
        <view/>
    </view>
</canvas>

Produces the output in debug window:
anonymous view
view

Is this how it is supposed to be?
Or is this an accident caused by the instance specific mixin development?

- rami

Reply via email to