var LzSub = Class( "LzSub", null,
function (){ this.testAttr = true; this.accum = ""; } );
LzSub.prototype.testAttr2 = "foo";
LzSub.prototype.testMethod = function (a) { accum = accum + a; }
assertEquals("LzSub", LzSub.classname);
var subInst = new LzSub();
assertTrue( subInst instanceof LzSub );
assertEquals( true, subInst.testAttr );
assertEquals( "foo", subInst.testAttr2 );
assertEquals( "", subInst.accum );
subInst.testMethod("bar");
assertEquals( "bar", subInst.accum );
subInst.testMethod("baz");
assertEquals( "barbaz", subInst.accum );
var LzSubSub = Class( "LzSubSub", LzSub,
function () {
#pragma "methodName=constructor"
super();
} );
LzSubSub.prototype.testMethod = function (a) {
#pragma "methodName=testMethod"
super.testMethod(a); }
assertEquals("LzSubSub", LzSubSub.classname);
var sub2Inst = new LzSubSub();
assertTrue( sub2Inst instanceof LzSub);
assertTrue( sub2Inst instanceof LzSubSub);
assertEquals( true, sub2Inst.testAttr );
assertEquals( "foo", sub2Inst.testAttr2 );
assertEquals( "", sub2Inst.accum );
sub2Inst.testMethod("bar");
assertEquals( "bar", sub2Inst.accum );
sub2Inst.testMethod("baz");
assertEquals( "barbaz", sub2Inst.accum );
var LzNodeSub = Class( "LzNodeSub", LzNode );
assertEquals("LzNodeSub", LzNodeSub.classname);
var nodeSubInst = new LzNodeSub();
assertTrue( nodeSubInst instanceof LzNodeSub );
new LzUserClass(canvas,
{parent: "node",
initobj: {attrs: {"extends": "node",
foocalls: 0,
foo: function () {
#pragma "methodName=foo"
this.foocalls++;
}},
name: "suba"}},
[], false);
var suba = _root["suba"];
var insta = new suba(canvas, { name: "insta" }, [], false);
assertTrue( insta instanceof suba );
assertEquals(0, insta.foocalls);
insta.foo();
assertEquals(1, insta.foocalls);
new LzUserClass(canvas,
{parent: "suba",
initobj: {attrs: {"extends": "suba",
foooverrides: 0,
foo: function() {
#pragma "methodName=foo"
super.foo();
this.foooverrides++;
}},
name: "subb"}},
[], false);
var subb = _root["subb"];
var instb = new subb(canvas, { name: "instb" }, [], false);
assertTrue( instb instanceof subb );
assertTrue( instb instanceof suba );
assertEquals(0, instb.foocalls);
assertEquals(0, instb.foooverrides);
instb.foo();
assertEquals(1, instb.foocalls);
assertEquals(1, instb.foooverrides);
this.addTest("testSub");
this.addTest("testClassNodeSub");
this.addTest("testUserClass");