0

私はこのコードをゲーム作成用に作成しました。学習中です。コンパイラエラーはありませんが、コードを実行するとエラーなしで失敗します。指定されたフレームに移動したい行があるので、コードは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);
    }

  }

   }
4

1 に答える 1

0

_root は AS3 ではサポートされていません。

試す

MovieClip(root).gotoAndStop(local_Frame);

PS。コードの一般的な命名規則は、小文字のキャメルケースを使用して変数に名前を付け (つまり、小文字で始める)、大文字のキャメルケースでクラスに名前を付ける (つまり、大文字で始める) ことです。

これにより、コードが読みやすくなり、どの項目が変数とクラスであるかをすぐに確認できます。

于 2013-02-10T08:03:06.773 に答える