我为游戏制作了这段代码,我只是在学习,没有编译错误,但是当我运行代码时,它失败了没有错误。我有一行我想转到指定的帧,所以代码是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);
}
}
}
答案 0 :(得分:0)
_root。
尝试
MovieClip(root).gotoAndStop(local_Frame);
PS。代码的一个常见命名约定是使用较低的camelCase命名变量(即以小写字母开头)和具有较高CamelCase的名称类(即以大写字母开头)。
这将使您的代码更易于阅读,并允许您立即查看哪些项是变量和类。