2013-12-21 57 views
0

我有3张,我不显示整个代码,这太huge.and的主要代码在什么情况下,gotoAndStop不工作

gotoAndStop(2); 
trace('frame:',currentFrame) 

输出应该是框架:2

但实际上它的框架:1,并在帧2的对象不能被加载并成为空
没有编译器错误

当我删除一些代码后,应用程序有时会经营权,并在框架2
停止 这不应该发生,因为任何代码后它不应该涉及输出
虽然我可以解决这个时,我删除第一帧,但它是相当危险的继续发展。
任何想法,为什么会发生这种情况?


在继续之前,我应该提到我实际上由于空对象而导致编译器错误,但它不是主要观点。 而我有一个叫做主机的类,代码gotoAndStop也是在构造函数的第一位。 我已经把优先功能在主机上,并且输出

stopping at frame: 2 Called from: Error 
    at host/gotoAndStop() 
    at host() 
frame: 1 
TypeError: Error #1009: Cannot access a property or method of a null object reference 
    at host() 

然后我尝试了方法2.创意魔术说,结果显示

stopping at frame: 2 Called from: Error 
    at host/gotoAndStop() 
    at host() 
displaying frame: 1 
frame: 1 
TypeError: Error #1009: Cannot access a property or method of a null object reference 
    at host() 
displaying frame: 2 

这很让我困惑正在发生的事情的框架,我不知道原因就像你说老版本的SDK,谢谢你的帮助

回答

0

你的问题可以是你写错误的代码,或者你使用旧的Flash SDK。

在第一种情况下,您应该检查您是否调用MovieClip的gotoAndStop(),play()或gotoAndPlay()方法。要做到这一点,你可以编辑类的MC的:

  • 在Flash Professional在库面板上的MC右键单击
  • 选择“编辑类”
  • 在你选择的IDE添加下列功能

    override public function gotoAndStop(frame:Object, scene:String = null):void 
    { 
        trace("stopping at frame:", frame, "Called from:", new Error().getStackTrace()); 
        super(this).gotoAndStop(frame, scene); 
    } 
    

它将跟踪时,被称为gotoAndStop()方法和谁把它称为。它会让你看看框架是否被其他东西设置为框架。我建议你重写play()和gotoAndPlay()函数。

如果你被这段代码吓倒了,你可以在MC的每一帧上添加一个trace(),因为它只有3帧,所以不应该做太多的工作。你的踪迹可能看起来像这样:

trace("displaying frame:", this.currentFrame); 

其他可能的原因可能在于你正在使用的SDK。我自己有一个奇怪的bug,当加载的MC不会听stop(),gotoAndStop()等函数。通过升级SDK解决了该问题:http://www.adobe.com/devnet/flex/flex-sdk-download.html
关于如何替换旧SDK的说明也是如此。

+0

谢谢,我更新了主题 – sbk201

相关问题