【问题标题】:accessing functions between two (2) movieclip inside a nested movieclip AS3访问嵌套影片剪辑 AS3 内的两 (2) 个影片剪辑之间的函数
【发布时间】:2013-08-16 12:26:35
【问题描述】:

好吧,因为我刚开始,我是 AS3 的菜鸟,我在一个movieclip 中有两(2)个movieclips,主mc 称为main_mc,然后里面的两个movieclips 名为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 的函数,我的问题是如何访问两个动画剪辑之间的函数两者都在另一个电影剪辑中,我知道这种方法不适合编程,但我需要学习这个,请帮助我,我非常需要这个,提前谢谢你。

【问题讨论】:

  • “两个影片剪辑之间的函数”是什么意思?
  • 好吧,在主movieclips里面的一个movieclips里面有一个函数,我想通过点击trigger_mc来触发move_mc里面的函数。
  • 你不能不做类似this.parent().move_mc.animate()的事情吗?
  • 试过了,先生,但它给了我这个错误“TypeError:错误#1006:值不是函数。”,我需要在这个上使用类吗?..
  • 在我的回答中添加了更多想法

标签: actionscript-3 function


【解决方案1】:

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;

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

【讨论】:

  • 哎呀..对不起..我的错误..无论如何你的回答使错误消失了,但仍然没有触发功能动画..但仍然非常感谢你的建议和回答..我非常感谢..仍然会尝试解决这个问题..
  • @user2689301 ...你的函数体是什么?可能是函数中的代码有问题。
  • @user2689301,我试图用实例名称澄清我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-29
  • 2017-06-24
  • 2011-08-10
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多