这是我的应用结构:
parent->[slider->[movieClip1,movieClip2,movieClip3]]
所以我基本上在 Slider 组件中有一些动画片段。
现在我在父时间线中定义了一个对象
var myObj:Object = new Object();...
我想从 Slider 组件中的 movieClip1 访问这个对象。
我试过:
trace(MovieClip(this.parent).myObj.A_function_in_the_object());
哪些输出:
TypeError: Error #1034: Type Coercion failed: cannot convert fl.controls::BaseButton@222082e1 to flash.display.MovieClip. at SliderTrack_skin/frame1()
和
trace(parent.myObj.A_function_in_the_object());
哪些输出:
1119: Access of possibly undefined property myObj through a reference with static type flash.display:DisplayObjectContainer.
如何从子影片剪辑访问在父时间轴中定义的对象?
最佳答案
由于 flash 组件的结构很复杂,this.parent 并不总是返回您期望的类。所以,如果你想访问父对象,你应该使用 while 循环而不是“this.parent.parent.parent ...”。
像这样。
var obj: Object = this;
while (obj.parent != null) {
obj = obj.parent;
// If "obj" is the class you expected, stop loop.
if (obj is MovieClip) {
// Do something like below.
MovieClip(obj).myObj.A_function_in_the_object();
break;
}
}
关于actionscript-3 - 如何从子 Slider 动画片段访问父对象中定义的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813444/