0

我在自定义按钮类中有一个背景 MovieClip,它根据接收到的鼠标事件将播放头移动到不同的帧(通过 gotoAndStop("framename"))。

当接收到鼠标向上事件时,它将播放头发送回“释放”帧,背景应该回到原来的位置,但是什么都没有发生,背景保持在原来的位置。就好像 Flash 不尊重由它输入的关键帧定义的背景位置。

唯一的解决方法是向每个帧添加一个帧脚本,手动将 x 和 y 位置设置为应有的位置,但这违背了使用关键帧作为位置的目的。

到底是怎么回事?

4

2 回答 2

0

这似乎是 Flash IDE 中的一个错误,特别是时间线层中的某种损坏。

损坏起源于 Flash CS4,但在 Flash CS5 中打开和编译时仍然存在,这就是为什么我怀疑它是某种内容生成错误,而不是特定于任何一个 IDE 版本的错误。当您无序构建时间线或拖拽东西、重命名东西、从其他文件复制东西等时,IDE 可能会感到困惑。我认为,特别是......这是我从另一个文件复制这个特定对象的事实文件。它甚至不是一个复杂的对象,它只是一个包含圆角矩形并应用了阴影的电影剪辑,严肃地说。

我为解决此问题而采取的步骤是删除与库项目关联的所有类,将其恢复为标准 MovieClip。然后我完全删除了有问题的层。然后,我将该类重新分配给库对象并将其导出用于 ActionScript。最后,我从第一帧重建图层,并根据需要添加后续关键帧。我重新应用了过滤器,并调整了每一帧的剪辑位置。

现在,一切都按预期运行。当播放头移动到任何帧时,剪辑的位置、过滤器等都会按预期更新。它现在按预期工作,所以我没有做错任何事情或不可能。它一定是 IDE 数据结构中某种增量构造的关键帧混淆。很高兴它现在可以工作了。

于 2012-04-04T15:04:20.003 回答
0

尝试调用 event.updateAfterEvent(),它应该

如果显示列表已被修改,则指示 Flash Player 或 Adob​​e AIR 在此事件处理完成后呈现。

从这里:http ://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html#updateAfterEvent%28%29

于 2012-04-03T19:38:29.947 回答