当播放头发送到该帧时,为什么Flash中的关键帧无法更新关键帧中定义的对象位置?

时间:2012-04-03 19:16:12

标签: actionscript-3 flash keyframe

我在自定义按钮类中有一个背景MovieClip,它将播放头移动到另一个帧(通过gotoAndStop(“framename”)),具体取决于它接收的鼠标事件。

当收到鼠标按下事件时,它会将播放头发送回“释放”框架,其中背景应移回其原始位置,但没有任何反应,背景保持原样。就好像Flash没有遵守它进入的关键帧所定义的背景位置。

唯一的解决方法是向每个帧添加一个框架脚本,手动将x和y位置设置为应该的位置,但是这会使关键帧的位置失效。

发生了什么事?

2 个答案:

答案 0 :(得分:0)

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

  

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

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

答案 1 :(得分:0)

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

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

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

现在,一切都按预期运作。当播放头移动到任何帧时,剪辑的位置,滤镜等都会按预期更新。它现在按预期工作,所以我没有做错或不可能。它必须是IDE中数据结构中某种渐进式构造的关键帧混淆。很高兴它现在正在工作。