2

我想这只是一个真正的大师的问题..

我正在使用 Flash Authoringtool 创建 MovieClips,但我使用自己的引擎播放它们(它在移动设备上表现更好)。

然而,对于适当的行为,给定一个 DisplayObject,我需要知道它的父级是否在它所属的 MovieClip 内对其进行补间。

我已经想出了蛮力和非优雅的方法来做到这一点:

  • 在创作工具中,为任何需要补间的影片剪辑的名称添加前缀。稍后可以随时检查该名称前缀。当然,由于此前缀是手动过程,因此很容易忘记或输入错误。

  • 在代码中,播放主动画剪辑的所有帧的每个子动画剪辑,并为其所有子动画剪辑检测变换矩阵是否在这些帧中的任何一个发生变化。如果是这样,请自动为其名称添加前缀。虽然是自动化的,但此解决方案可能会占用较大的影片剪辑的大量时间。

所以我希望的是存在一些其他的方式,比如:

if((dpo.parent) as MovieClip) != null)
{
    bDpoIsBeingTweened = ((dpo.parent) as MovieClip).someProperty;
}

期待任何优雅的解决方案。

4

1 回答 1

1

解决方案很简单:停止使用 Adob​​e 的补间库。

使用TweenLite,它的速度提高了数百倍,更易于编码,并且还有许多其他好处。例如,能够用于isTweening确定某个对象是否正在补间。

这是文档

要在 Flash IDE 中包含外部库,您可以通过 2 种方式来实现。

1)将外部库的文件夹复制到您的项目文件夹中(您的.fla文件所在的位置)

2) 在“文件 > Actionscript 设置”中定义一个文件夹,您要将外部库文件放入硬盘中。

然后在您的代码中,您只需要使用import. 例如:

import com.greensock.TweenLite;
于 2013-10-04T16:59:02.747 回答