我有两个电影片段:
mov1 has frames with labels in such sequence ("item"," btn", "win", "loose")
mov2 has frames with labels in such sequence (" ", "item", "win", "loose")
这是两个标准化的电影剪辑,由一个类MovItem统治。 在MovItem的构造函数中我初始化:
public function MovItem(item_mc:MovieClip )
{
this.item_mc.addEventListener( MouseEvent.CLICK, dispatchEvent );
//this.item_mc.gotoAndStop('btn');
this.item_mc.gotoAndStop(1);
}
在网络版中,一切正常,但在AIR 2.6 for Android中,它失败并出现错误:
Error #2109: Frame label btw not found.
在gotoAndStop('btn');
上的元素上没有这样的标签。
当我在这个项目上gotoAndStop(1);
时,一切正常。
一切都应该很棒,但第二个影片剪辑上的“btw”标签位于第二帧。
如果不在.fla资源中进行全面返工,如何轻松修复?为什么它适用于Web应用程序,但AIR失败?谢谢你的时间。
答案 0 :(得分:2)
这实际上发生在网络版和AIR版中,因为mov2
没有名为btn
的框架。
在Web版本上,您将收到编译器警告,但不是退出应用程序,而是忽略gotoAndStop()
。但是,在编译到AIR时,编译器处于严格模式,它将编译器警告转换为错误,并且在修复之前不允许编译。
无论如何调用一个你知道错误的函数(特别是在构造函数方法中)是不好的做法,所以你应该将框架作为参数(如果它们将转向不同的帧编号)传递给构造函数,或者明确地给出它是帧号,例如gotoAndStop(2)
(如果它们都转到相同的帧号)。
另外,在您的问题中将btn
和btw
称为框架时,请检查您是否错误拼写了框架。