Action Script 3.0 public属性只能在包内使用

时间:2014-02-05 02:50:55

标签: actionscript-3

以下代码位于名为Script_1.as

的文件中
package{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.*;
import flash.geom.Rectangle;
import flash.media.Sound;
import flash.text.*;
public class Game extends flash.display.MovieClip{
    public static const STATE_INIT:int = 10;
    public static const STATE_PLAY:int = 20;
    public static const STATE_END_GAME:int = 30;
    public var gameState:int = 0;
    public var score:int = 0;
    public var chances:int = 5;
    public var bg:MovieClip;
    public var enemies:Array;
    public var paly:MovieClip;
    public var level:Number = 0;
    public var scoreLable:TextField = newTextField
    public var levelLable:TextField = newTextField
    public var chancesLable:TextField = newTextField
    public var scoreText:TextField = newTextField
    public var levelText:TextField = newTextField
    public var chancesText:TextField = newTextField
    public const SCOREBOARD_Y:Number = 380
    public function Game(){
        addEventListener(Event.ENTER_FRAME, gameLoop);
        bg = new BackImage();
        addChild(bg);
        scoreLable.text = "Score:";
        levelLable.text = "level:";
        chancesLable.text = "Misses:";
        scoreText.text = "0";
        levelText.text = "1";
        chancesText.text = "5";
        scoreLable.y = SCOREBOARD_Y;
        levelLablel.y = SCOREBOARD_Y;
        chancesLabel.y = SCOREBOARD_;
        scoreText.y = SCOREBOARD_Y;
        levelText.y = SCOREBOARD_Y;
        chancesText.y = SCOREBOARD_Y;
        scoreLabel.x = 5;
        scoreText.x = 50;
        chancesLabel.x = 105;
        chancesText.x = 155;
        levelLabel.x = 205;
        levelText.x = 260
        addChild(scoreLabel);
        addChild(levelLabel);
        addChild(chancesLabel);
        addChild(scoreText);
        addChild(levelText);
        addChild(chancesText);
        gameState = STATE_INIT;
    }
        public function gameLoop(e:Event):void{
        switch(gameState){
            case STATE_INIT:
                initGame();
                break;
            case STATE_PLAY:
                playGame();
                break;
            case STATE_END_GAME:
                endGame();
                break;
        }
        //public function initGame():void{
            score = 0;
            chances = 5;
            player = new playerImage();
            enemies = newArray();
            level = 1;
            levelText.text = leveltoString();
            addChild(player);
            player.startDrag(true,newRectangle(0,0,550,400))
            gameState = STATE_PLAY
        }
        //public function playGame():void{
            player.rotation += 15;
            makeEnemies();
            moveEnemies();
            testCollisions();
            testForEnd();
        }
        //public function makeEnemies():void{
            var chance:Number = Math.floor(Math.random()*100);
            var tempEnemy:MovieClip;
            if (chance < 2 + level) {
                tempEnemy = new EnemyImage()
                tempEnemy.speed = 3 + level;
                tempEnemy.gotoAndStop(Math.floor(Math.randome()*5)+1);
                tempEnemy.y = 435;
                tempEnemy.x = Math.floor(Math.randome()*515)
                addChild(tempEnemy);
                enemies.push(tempEnemy);
            }
        }
        //public function moveEnemies():void{
            /var tempEnemy:MovieClip;
            for (var i:int = enemies.length -1;i >= 0;i--){
                tempEnemy = enemies[i];
                tempEnemy.y -= tempEnemy.speed;
                if (tempEnemy.y < -35){
                    chances -= 1;
                    chancesText.text = chances.toString();
                    enemies.splice(i,1);
                    removeChild(tempEnemy);
                }
            }
        }
        public function testCollisions();void {
            var sound:Sound = new Pop();
            var tempEnemy:MovieClip;
            for (var i:int = enemies.length -1;i >= 0;i--){
                tempEnemy = enemies[i];
                if(tempEnemy.hitTestObject(player)){
                    score++;
                    scoreText.text = score.toString();
                    sound.play();
                    enemies.splice(i,1);
                    removeChild(tempEnemy);
                }
            }
        }
        public function testForEnd():void{
            if(chances == 5){
                gameState = STATE_END_GAME;
            }else if(score > level*20) {
                level++;
                levelText.text = level.toString();
            }
        }
        public function endGame():void{
            for(var i:int = 0; i< enemies.length; i++) {
                removeChild(enemies[i]);
            }
            enemies = [];
            player.stopDrag()
        }
    }
}

错误报告是:

公共属性只能在包中使用

(我在这些错误行之前加上//以标记它们。它们不在原始代码中。)

语法错误:期望var之前的标识符

语法错误:在分号之前期待rightbrace。

(我把这些错误放在/之前。它们在同一行,并且/不在原始代码中。)

1 个答案:

答案 0 :(得分:0)

尝试将您的文件重命名为Game.as. 尝试在切换案例后添加一个}来关闭函数gameLoop()。

PS: 它真的是你的代码吗? Math.randome()? newTextField? newArray()? public function testCollisions(); void? (;空隙)