我在使用 AIR 3.4 为 Android 编译的 Flashbuilder 4.7 中有一个 Actionscript Mobile 项目。(AIR SDK 位置:C:\Program Files\Adobe\Adobe Flash Builder 4.7\eclipse\plugins\com.adobe.flash.compiler_4.7.0.345990\AIRSDK)
我最近从 AIR 3.2 中恢复了该项目,并遇到了一个新的运行时错误。我从 SWF(最初从 Flash CS3 发布 - 在 AS3 中,但使用 Flash CS6 重新发布)导入了 MovieClip 资源 (truck_anm_mc)。“truck_anm_mc”影片剪辑包含另一个实例名称为“Flick”的影片剪辑。
这是它的导入方式:
public var _truck_anim :MovieClip;
[Embed(source='/assets/blue/animation004.swf#truck_anm_mc')]
public var TruckAnim :Class;
这就是它的使用方式(我已经注释掉了对它的所有进一步引用 - 这是唯一使用它的代码行,如果我注释掉这一行,错误就会消失):
_truck_anim = new TruckAnim() as MovieClip;
这是错误:
ReferenceError: Error #1056: Cannot create property Flick on animation004_swf$915bbdce658b4869e6dc24efe65092b42084086601.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at animation004_swf$915bbdce658b4869e6dc24efe65092b42084086601()
...
Flick 在 Truck_anm_mc 的时间线上。如果我从时间线上删除 Flick,则没有错误。
该错误报告无法在 Sprite 上创建属性 Flick,如果 truck_anm_mc 是 Sprite,这对我来说很有意义 - 但它是一个 MovieClip,应该能够附加任意属性。
我已经尝试过使用和不选中自动声明阶段实例选项创建的 SWF。我没有使用 TLF 或任何 RSL。它是一个非常简单的 SWF,仅包含一个 MovieClip,在其时间轴上在其中添加了另一个 MovieClip 动画。
MovieClip 都使用MovieClip 基文档类,并且它们的类由Flash 动态生成。我尝试为 truck_anm_mc 创建一个文档类 - 并将 Flick 声明为公共变量 - 但它并没有避免错误。