actionscript-3 - 如何从子 Slider 动画片段访问父对象中定义的对象

标签 actionscript-3 flash object parent movieclip

这是我的应用结构:

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/

相关文章:

javascript - 如何将字符串数组转换为对象,以便我可以将这些对象拆分为键值对?

actionscript-3 - 如何从 Line-In 设备捕获声音

flash - RTMFP 入门

actionscript-3 - 我的错误在哪里? (Flash CS6 AS3错误: 1120)

flash - 在 actionscript 中使用普通版(不是调试版)的 Flash 播放器时,如何获取错误消息和堆栈跟踪?

java - 过滤对象列表中的重复对象

javascript - flashlike javascript框架或简单的html5解决方案

javascript - 如何强制运行 swf 文件,而不是下载

html - 当 SWFUpload 按钮中的 WMODE=TRANSPARENT 时,单击不会触发

javascript - 简化嵌套的 javascript 对象