0

好的,因为我刚开始,我是 AS3 的菜鸟,我在一个电影剪辑中有两 (2) 个电影剪辑,主 mc 称为 main_mc,然后里面的两个电影剪辑名为 trigger_mc 和 move_mc,trigger_mc 的实例名称为 start_ani,然后在时间轴内main_mc 我有这个代码:

import flash.events.MouseEvent;

start_ani.addEventListener(MouseEvent.CLICK, correctans);

function correctans(e:MouseEvent):void {
    move_mc.animate();
}

然后我使用 move_mc 创建了一个动作作为 actionscript 3.0 然后我将代码插入到 move_mc 本身的时间轴内,并为该动作创建了一个名为 animate 的函数,我的问题是如何访问两个都在里面的影片剪辑之间的函数另一个movieclip,我知道这种方法不适合编程,但我需要学习这个,请帮助我,我非常需要这个,提前谢谢你。

4

1 回答 1

0

Parent 是一个属性,而不是一个函数——你不需要 ():

this.parent.move_mc.animate();

此外,您没有提到 move_mc 影片剪辑的实例名称,但像上面这样的访问要求实例名称为 move_mc - 影片剪辑符号名称在动作脚本中无关紧要。

更新 1:为了澄清,您说: trigger_mc 的实例名称为 start_ani

很好,那么这段代码就可以工作了:

start_ani.addEventListener(MouseEvent.CLICK, correctans);

但是您没有说: move_mc 的实例名称为 ???

所以我们不知道这段代码是否有效:

function correctans(e:MouseEvent):void {
    ???.animate();
}

填写那些???一个。

更新 2: 你知道点击处理程序是否被触发吗?为什么不添加跟踪语句?

function correctans(e:MouseEvent):void {
    trace("got click event!");
    ???.animate();
}

因为对于 CLICK 事件,您需要:

start_ani.buttonMode = true;

尽管正如您所说,这不是一个好的编程习惯,因为这假设这两个影片剪辑是同一个父级的兄弟姐妹。它不可扩展。如果不是,您的代码可能会引发错误。要时刻铭记在心。

于 2013-08-16T13:20:22.830 回答