gotoAndStop();不会正常工作

时间:2013-02-10 06:45:42

标签: actionscript-3 flash flash-cs6

我为游戏制作了这段代码,我只是在学习,没有编译错误,但是当我运行代码时,它失败了没有错误。我有一行我想转到指定的帧,所以代码是Button_Object.gotoAndStop(Local_Frame)但看起来好像程序只是跳过它。我试图将_root.gotoAndstop(Local_Frame)和stage.gotoAndStop(Local_Frame)放在一起,但是这些都给出了编译器错误,它给出的错误是

 C:\Users\Nathan\Desktop\Matching Game\ClickSolver.as, 
 Line 34    1120: Access of undefined property _root. 

我确实看到了跟踪声明。作为旁注,我试图访问主时间线,而不是对象时间轴。

这是代码

package  {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;

public class ClickSolver {
    private var Button_Object:MovieClip;
    private var Check_Object:MovieClip;
    private var Score:Number = 0;
    private var Local_Frame:Number = 0;
    private var Local_Timer:Timer = new Timer(1000,3);

    public function ClickSolver(ButtonObject:MovieClip, CheckObject:MovieClip, Frame:Number) {

        Local_Frame = Frame;
        Button_Object = ButtonObject;
        Check_Object = CheckObject;
        Button_Object.buttonMode = true;
        trace(Button_Object.name);
        trace(Check_Object.name);
        Local_Timer.start();
        trace(Local_Timer.currentCount);
        Button_Object.addEventListener(MouseEvent.CLICK, Object_Button_Clicked);
        Button_Object.addEventListener(MouseEvent.MOUSE_OVER,Button_Mouse_Over);
        Button_Object.addEventListener(MouseEvent.MOUSE_OUT, Button_Mouse_Out);
        Local_Timer.addEventListener(TimerEvent.TIMER_COMPLETE, TimerIsDone);

    }
    private function TimerIsDone (event:TimerEvent):void{
        trace("Timer is done");
        Local_Timer.stop();
        Local_Timer.reset();
        Button_Object.gotoAndStop(Local_Frame);
    }
    private function Button_Mouse_Out (event:MouseEvent):void{
        Button_Object.alpha = 1;
    }
    private function Button_Mouse_Over (event:MouseEvent):void{
        Button_Object.alpha = 0.75;
    }
    private function Object_Button_Clicked (event:MouseEvent):void{
        Score++;
        Check_Object.visible =  false;
        Button_Object.gotoAndStop(Local_Frame);
        trace("Score: " + Score);
        trace("Frame: " + Local_Frame);
    }

  }

   }

1 个答案:

答案 0 :(得分:0)

AS3不支持

_root。

尝试

MovieClip(root).gotoAndStop(local_Frame);

PS。代码的一个常见命名约定是使用较低的camelCase命名变量(即以小写字母开头)和具有较高CamelCase的名称类(即以大写字母开头)。

这将使您的代码更易于阅读,并允许您立即查看哪些项是变量和类。