我可能会错过一些东西。我认为这将是一个常见问题,但几天来在网上进行的广泛搜索没有找到我需要的答案。我希望制作一个独立的影片剪辑,无论它放在哪里都可以起作用。但是,从扩展影片剪辑的类中访问影片剪辑中定义的实例似乎很困难。Flash Actionscript AS2 - 在类中的时间轴上定义的访问实例变量
虽然我在Flash ActionScript 2(AS2)我编码,我不知道是否存在AS3同样的问题。
在下列情况下,你如何访问实例“圈”?
在主时间轴上的影片剪辑有一个实例名称“广场”。 Square.as中定义的类Square扩展了该影片剪辑。在影片剪辑中,另一个影片剪辑放置在第一帧上,实例名称为“circle”。在第一帧var myName:String = "my name"
上也声明了varialbe。下面的代码无法编译:
class Square extends MovieClip {
function Square() {
trace("Square.constructor, circle: " + circle);
trace(" --- myName: " + myName);
}
}
编译器错误:There is no property with name 'circle'.
(同为MYNAME)。
在参考不利于增加this.
。显然,编译器正在寻找类定义中的变量。
使用_level0.square.circle
作品,但需要该类知道自己的实例路径。虽然_level0.square.myName
不会产生编译器错误,但它的值为undefined
。
引用除构造函数等方法,这些变量会导致相同的编译器错误。
非常感谢您的帮助。
嗨user1789547,也许如果实例驻留在舞台上,您必须将阶段引用传递到类中?我知道你的问题是关于AS2,但这可能是一些帮助:http://www.actionscript.org/forums/showthread.php3?t=250599 – Mike
谢谢,迈克。我在我的搜索过程中看到了类似的讨论。但是他们试图引用类之外的某些东西,而我试图引用内部的东西,父级影片剪辑中的子级影片剪辑,该类正在扩展。从逻辑上讲,至少我认为,扩展类可以访问父级影片剪辑可以访问的所有内容。 -Keith – Braeburn