欢迎,
我创建了简单的 FLA 项目(AIR 3.6 for iOS -来源):
var k1:kloc1 = new kloc1();
var k2:kloc2 = new kloc2();
k1.x = 0;
k1.y = 0;
k2.x = 150;
k2.y = 150;
addChild(k1);
addChild(k2);
trace("k2 name main timeline: " + k2.name);
trace("k2 demo_tekst before: " + MovieClip(root).k2.demo_tekst);
k2.demo_tekst = 'podmieniony tekst';
trace("k2 demo_tekst after: " + MovieClip(root).k2.demo_tekst);
kloc2 在库中,继承自 MovieClip,仅包含 demo_tekst 变量:
var demo_tekst:String = "oryginalny tekst";
并且 kloc1 也在库中,继承自 MovieClip 并且仅包含侦听器和跟踪指令:
addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:MouseEvent):void {
trace("k2 name from k1 obj: " + MovieClip(root).k2.name);
trace(MovieClip(root).k2.demo_tekst);
}
当我测试上面的代码时,通过单击 k1,控制台上的结果是:
k2 name main timeline: instance3
k2 demo_tekst before: null
k2 demo_tekst after: podmieniony tekst
k2 name from k1 obj: instance3
oryginalny tekst
正如我所料,最终结果是“oryginalny tekst”,而不是“podmieniony tekst”。同样在创建 k2 对象之后,通过 new(),demo_tekst 为空(?!)。我在调试模式下检查它,k2 在创建时和跟踪结果期间具有相同的实例。两个地方的对象名称相同。有人可以解释一下发生了什么吗?