在使用as3.0的flash中,我必须从movieClip调用主舞台上的一个函数

时间:2012-02-02 20:48:34

标签: actionscript-3 flash-cs5

我必须调用在项目主阶段定义的函数,我必须从MovieClip调用它,我该怎么办? 我正在使用flash cs5.5和AS3.0

4 个答案:

答案 0 :(得分:4)

当我阅读你的问题时,听起来好像你在主时间轴的动作框架中定义了一个功能。

对于您当前的项目,我的答案可能无法实现,ToddBFisher的答案是完全正确的。那就是说 - 我将以不同的方式回答这个问题。

不是在主时间轴上定义函数,而是设置文档类,在那里定义函数,并在代码中访问类的函数。保留尽可能多的时间码。

文档类示例的可下载文件:http://www.isgoodstuff.com/2008/06/06/actionscript-30-documentclass-in-plain-english/

设置AS3课程:http://www.adobe.com/devnet/flash/quickstart/creating_class_as3.html

答案 1 :(得分:3)

有多种方法可以从舞台上的对象访问MainTimeline。可能最可靠的是'root',但也有'parent'(但只有当你的MovieClip是主时间轴的直接子项时)。

// root should always work
Object(root).myFunc();

// parent will only work if your movieclip is a direct child of the main timeline
Object(parent).myFunc();

请注意,您必须转换这些通用对象(或MovieClip可以工作),因为它们返回的类型类中没有“myFunc”函数。

您需要在主时间轴上使用此代码:

function myFunc():void {
  trace("My function got called!");
}

答案 2 :(得分:0)

假设您的影片剪辑是主舞台的直接子节目,您可以在影片剪辑中执行以下操作:

MovieClip(parent).theFunctionToCall();

答案 3 :(得分:0)

如果你的MovieClip有一个类,只需使用like:

将它添加到你的主类

var m:MovieClip = new MovieClip(); **的addChild(米);

然后您可以访问它的公共函数,如输入:

m。“功能名称”;