Raju,
Is there a reason you are writing a class in JS2 form rather than LZX
form? Did you run into a limitation of what you could declare in LZX,
or are you just trying to understand how the script and LZX forms
relate?
- D.
On Jul 20, 2008, at 4:06 PM, 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
>
>