如何在下一帧绑定MovieClip的事件?

时间:2011-03-30 19:27:16

标签: flash actionscript-3 load movieclip

我有flash项目(ActionScript 3),它有几个帧。每个框架都包含一些具有唯一ID的独特控件(按钮,textInputs等)。 我想为这些控件添加事件监听器:

this.gotoAndStop(2);
trace(AddResource); //null !!!
AddResource.addEventListener(MouseEvent.CLICK,AddRes); // Error

我不知道,如何定义时间,何时加载AddResource,在gotoAndStop之后。 我尝试使用setTimeout - 它有时会工作并产生不必要的延迟。所以在我看来这是个坏主意。

每个框架都有很多控件,将来可能会更改 - 所以,我不想这样使用(Get MovieClip in another frame)。

如果可能,我想将ActionScript代码保存在* .as文件中,而不是时间轴(flash cs5: when i change frames in a movieclip, event listeners pointed to one object in the previous frame are removed)。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果我读得对,我会看到两种选择。

  1. 为MovieClip创建一个包含所有内容的ENTER_FRAME侦听器。跟踪您所在的帧号,当它发生变化时,您可以添加新的侦听器。当老听众不再参与时,这可能会导致内存泄漏。

  2. 让你的事件冒泡到父MovieClip,然后抓住他们,找出实际派出事件的人,然后做正确的事。

  3. 老实说,不过,我会使用Sprite来保存每个帧的所有内容(即每帧一个Sprite),然后更改可见性以模拟播放头的移动。