gotoAndStop(label)失败,错误2109

时间:2011-11-11 15:06:34

标签: adobe air flash

我有两个电影片段:

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失败?谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

这实际上发生在网络版和AIR版中,因为mov2没有名为btn的框架。

在Web版本上,您将收到编译器警告,但不是退出应用程序,而是忽略gotoAndStop()。但是,在编译到AIR时,编译器处于严格模式,它将编译器警告转换为错误,并且在修复之前不允许编译。

无论如何调用一个你知道错误的函数(特别是在构造函数方法中)是不好的做法,所以你应该将框架作为参数(如果它们将转向不同的帧编号)传递给构造函数,或者明确地给出它是帧号,例如gotoAndStop(2)(如果它们都转到相同的帧号)。

另外,在您的问题中将btnbtw称为框架时,请检查您是否错误拼写了框架。