【问题标题】:Calling a function in a .as file from a nested movieclip从嵌套的影片剪辑调用 .as 文件中的函数
【发布时间】:2015-10-09 15:06:39
【问题描述】:

我知道这个问题有很多变化,但我找不到适合我的答案。

具体来说,我在 .as 文件中有一些简单的功能。我使用了#include,我可以从主时间轴很好地调用这些函数,但我似乎无法从嵌套影片剪辑的时间轴调用它们。

我在主时间轴上的movieclip 内的movieclip 中有一个movieclip。如何访问 .as 文件中的函数?

我已经尝试过 this.parent.parent.parent.function() 和 _root.parent.parent.function() 但都不起作用。

这些函数通过 Scaleform 链接到游戏引擎,所以我宁愿不使用类,因为这会使我的事情变得复杂。出于同样的原因,我使用的是 AS2,而不是 AS3(游戏引擎中包含的 Scaleform 版本不支持 AS2)。

非常感谢。

【问题讨论】:

    标签: flash actionscript actionscript-2


    【解决方案1】:

    我认为你可以简单地使用:

    _root.your_function();
    

    或者,如果您的 MovieClip 直接在主时间线中使用:

    this._parent.your_function();
    

    这里不要忘记,在 AS2 中,我们使用_parent 来获取当前对象的父对象。

    您可以使用以下方法获取父级中所有可用的包含函数:

    for(var element in this._parent){
        if(typeof this._parent[element] == 'function'){
            trace(element + ' : ' + this._parent[element]);
        }
    }
    

    希望能有所帮助。

    【讨论】:

    • 非常感谢; _root.my_function();做到了。我认为 _root 只是指包含代码的对象的根,你每天都会学到一些新东西 :) 会在 _parent 上阅读。再次感谢。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2013-09-29
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多