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



Reply via email to