我在自定义按钮类中有一个背景 MovieClip,它根据接收到的鼠标事件将播放头移动到不同的帧(通过 gotoAndStop("framename"))。
当接收到鼠标向上事件时,它将播放头发送回“释放”帧,背景应该回到原来的位置,但是什么都没有发生,背景保持在原来的位置。就好像 Flash 不尊重由它输入的关键帧定义的背景位置。
唯一的解决方法是向每个帧添加一个帧脚本,手动将 x 和 y 位置设置为应有的位置,但这违背了使用关键帧作为位置的目的。
到底是怎么回事?
我在自定义按钮类中有一个背景 MovieClip,它根据接收到的鼠标事件将播放头移动到不同的帧(通过 gotoAndStop("framename"))。
当接收到鼠标向上事件时,它将播放头发送回“释放”帧,背景应该回到原来的位置,但是什么都没有发生,背景保持在原来的位置。就好像 Flash 不尊重由它输入的关键帧定义的背景位置。
唯一的解决方法是向每个帧添加一个帧脚本,手动将 x 和 y 位置设置为应有的位置,但这违背了使用关键帧作为位置的目的。
到底是怎么回事?
这似乎是 Flash IDE 中的一个错误,特别是时间线层中的某种损坏。
损坏起源于 Flash CS4,但在 Flash CS5 中打开和编译时仍然存在,这就是为什么我怀疑它是某种内容生成错误,而不是特定于任何一个 IDE 版本的错误。当您无序构建时间线或拖拽东西、重命名东西、从其他文件复制东西等时,IDE 可能会感到困惑。我认为,特别是......这是我从另一个文件复制这个特定对象的事实文件。它甚至不是一个复杂的对象,它只是一个包含圆角矩形并应用了阴影的电影剪辑,严肃地说。
我为解决此问题而采取的步骤是删除与库项目关联的所有类,将其恢复为标准 MovieClip。然后我完全删除了有问题的层。然后,我将该类重新分配给库对象并将其导出用于 ActionScript。最后,我从第一帧重建图层,并根据需要添加后续关键帧。我重新应用了过滤器,并调整了每一帧的剪辑位置。
现在,一切都按预期运行。当播放头移动到任何帧时,剪辑的位置、过滤器等都会按预期更新。它现在按预期工作,所以我没有做错任何事情或不可能。它一定是 IDE 数据结构中某种增量构造的关键帧混淆。很高兴它现在可以工作了。
尝试调用 event.updateAfterEvent(),它应该
如果显示列表已被修改,则指示 Flash Player 或 Adobe AIR 在此事件处理完成后呈现。