Because `construct` is called from the class constructor, before the instance properties are evaluated. This is perhaps poorly explained as "before any arguments have been applied". In other words, when `construct` is called, your node instance has not yet been constructed enough to have your overriding construct method attached to it. You have found a small loophole in the instance/class parallelism.

If you want to know when the class constructor is done, `onconstruct`, interestingly is sent " right at the end of the instantiation process" (not when the `construct` method is called.

On 23 Nov 2005, at 16:18, Jim Grandy wrote:

Why don't I see "construct node" in the debugger output of the following LZX program?

<canvas debug="true">

  <node>
    <method name="construct" args="p,a">
      Debug.write("construct node");
      super.construct(p,a);
    </method>
    <method name="init">
      Debug.write("init node");
      super.init();
    </method>
  </node>

  <class name="cnode" extends="node">
    <method name="construct" args="p,a">
      Debug.write("construct cnode");
      super.construct(p,a);
    </method>
    <method name="init">
      Debug.write("init cnode");
      super.init();
    </method>
  </class>

  <cnode/>

</canvas>

Output:

construct cnode
init node
init cnode

_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user

_______________________________________________
Laszlo-user mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-user

Reply via email to