Flash AS3错误:1013:private属性仅可用于类属性定义

时间:2014-11-14 18:56:21

标签: actionscript-3 class actionscript

  

C:\ Users \ Lab3project \ MainDocument.as,第103行,第7列1013:The   private属性只能用于类属性定义。

有关的代码行:

 package  {
    //these are flash built-in classes
    import flash.display.MovieClip;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.events.Event;
    //Our own custom class
     import MainTimer;  

    public class MainDocument extends MovieClip{

        private var gameTimer:MainTimer;
        private var thePlayer:Player;
        private var theEnemy:Enemy;
        private var maxEnemies: int = 3;
        private var e:int = 0;
        private var childrenOnStage:int;

        public function MainDocument() {
            // constructor code
            trace("the main document is alive");

            // new instance MainTimer class
            gameTimer = new MainTimer();

            // must add it to the stage
            addChild(gameTimer);
            //adjust its postion on stage
            gameTimer.x = 20;
            gameTimer.y = 20;

            //add the player
             thePlayer = new Player();
            addChild(thePlayer);
            // adjust its postion on the stage
            thePlayer.x = stage.stageWidth * 0.5;
            //assign the name property
              thePlayer.name = "player";

              while(e < maxEnemies){
                  createEnemy();
                  e++;
              } //end while

                //Update this variable every time a child is added to the stage
                  childrenOnStage = this.numChildren

               // Add event listener to control timing of main game loop
                  addEventListener(Event.ENTER_FRAME,mainGameLoop);

          }//end function MainDocument

            private function createEnemy():void{
                trace("create enemy");
                theEnemy = new Enemy();
                addChild(theEnemy);
                //Place in a random spot on stage
                theEnemy.x = (Match.random() * stage.stageWidth);
                theEnemy.y = 0;

                //assign the name property
                  theEnemy.name = "enemy";

                //Update this variable every time a child is added to the stage
                  childrenOnStage = this.numChildren
                } //end function    createEnemy

            //the main loop for the game
             private function mainGameLoop(event:Event): void{

                checkForGameReset();

                processCollisions();

                scrollStage();

            } // end functiom mainGameLoop
              private function checkForGameReset():void{
                  //define conditions
              } //end function checkForGameReset

              private function processCollisions():void{
                  //set up the main loop to look through all collidale objects on stage
                  for(var c:int;c < childOnStage;c++){
                      //trace ("Child on stage c= " + c +
                      //test for a player of enemy child on stage
            if (getChildAt(c).name == "player" || getChildAt(c).name == "enemy"){ 
                //see if object is touching the game stage
                if( theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y,true)){
                    //while it is still touching the game stage
                    while( theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y,true)==true){
                        //called from CollisionObject class,so force the connection
                        CollisionObject(getChildAt(c)).incrementUpward();
                    if( theGameStage.hitTestPoint(getChildAt(c).x, getChildAt(c).y,true)==false){
                    }CollisionObject(getChildAt(c)).keepOnBoundary(); //make it stick
                   } // end if
                  } // end while
                 } //end if touching
                } //end if player or enemy
              } //end for loop
            } //end function processCollisions

The lines of code concerned: is here where im getting the error 
   private function scrollStage(): void
    {
        // figure out logic
    }
    //  end function scrollStage


            //add the enemy for testing
             theEnemy = new Enemy();
            addChild(theEnemy);
            // adjust its postion on the stage
            theEnemy.x = stage.stageWidth * 0.5;
            theEnemy.y = 200;



        }  // end public function MainDocument

    } // end public class


} // end package

在我更改了该代码后,它会说我最后有一个额外的字符,但最后我必须拥有这些字符。

1 个答案:

答案 0 :(得分:3)

这样的问题经常发生,因为语法上有轻微的错字。也许你不小心在另一个函数中声明了你的私有函数?

public function doSomething() {
    //a whole bunch of stuff
//then we forget to close the function with a brace "}"

private function scrollStage() {
    //but we're still defining doSomething! Throw error!
}

去寻找这样的错误,希望你能找到问题。