Not sure exactly what you are asking here, but we don't support
mixin's at the LZX level yet, so there is no way to do exactly what
you are doing in "pure" LZX.
On 2008-07-20, at 19:06EDT, Raju Bitter wrote:
Hi all,
Here's a simple JS2 class I wrote for testing. What would be the
exact LZX
representation be? I'm trying do better understand instantiation of
LZX
based classes and JS2 based classes. Either I made a mistake or I
see some
differences for classes I port from LZX to JS2 syntax.
<library>
<!-- testclassjs2, want to see how JS2 compares to LZX.
-->
<interface name="testclassjs2" extends="node">
<!--- A test attribute.
@type String
@access private
-->
<attribute name="src" value="" type="string"/>
</interface>
<!-- these methods are shared across runtimes -->
<script when="immediate"><![CDATA[
mixin Testclassjs2Shared {
function Testclassjs2Shared ( parent:LzView? = null ,
attrs:Object?
= null , children:Array? = null, instcall:Boolean = false) {
super(parent, attrs, children, instcall);
}
}
]]></script>
<script when="immediate"><![CDATA[
// Classes that implement an interface must obey the LZX
// tag->class mapping convention
dynamic class $lzc$class_testclassjs2 extends LzView with
Testclassjs2Shared {
// Next two are part of the required LFC tag class protocol
static var tagname = 'testclassjs2';
static var attributes = new LzInheritedHash(LzView.attributes);
static var uid = 0;
var src = "";
var onsrc = LzDeclaredEvent;
override function construct(parent,args) {
super.construct(parent, args);
Debug.write("constructor");
new LzDelegate( this , "_oninit" , this , "oninit" );
new LzDelegate( this, "_onSrc", this, "onsrc");
}
function $lzc$class_testclassjs2(parent, attrs, children,
async) {
super(parent, attrs, children, async);
}
override function init() {
super.init();
Debug.write(this, "init()");
}
function _oninit(ignore) {
Debug.write(this, "_oninit()");
}
function _setSrc(value) {
Debug.write(this, "_setSrc()", value);
this.src = value;
}
function $lzc$set_src(value) {
Debug.write(this, "$lzc$set_src()", value);
this._setSrc(value);
this.onsrc.sendEvent(this);
}
function _onSrc (evt) {
Debug.write(this, "_onSrc()", evt);
}
} // End of testclassjs2
lz[$lzc$class_testclassjs2.tagname] = $lzc$class_testclassjs2;
]]></script>
</library>
Thanks,
Raju