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

时间:2014-03-10 12:36:19

标签: actionscript-3 flash

我是flash as3的初学者。我正在尝试创建一个游戏但是在我的游戏项目开始时。出现错误。这是错误 - >第48行:1013:private属性只能用于类属性定义。 我不知道是什么问题,是否有人知道这个问题是什么,如果有人知道请告诉我。 这是代码:

package 
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    public class Main extends Sprite
    {

        public function Main()
        {
            // variables and constants
            const NUMBER_OF_TILES:uint = 20;
            const TILES_PER_ROW:uint = 5;
            var tiles:Array=new Array();
            var tile:tile_movieclip;

            // end of variables and constants
            for (var i:uint=0; i<NUMBER_OF_TILES; i++)
            {
                tiles.push(Math.floor(i/2));
                trace("My tiles: "+tiles);
                // end of tiles creation loop

                // end of tiles creation loop add the following code:
                // shuffling loop
                var swap,tmp:uint;
                for (i=NUMBER_OF_TILES-1; i>0; i--)
                {
                    swap = Math.floor(Math.random() * i);
                    tmp = tiles[i];
                    tiles[i] = tiles[swap];
                    tiles[swap] = tmp;
                    trace("My shuffled tiles: "+tiles);
                    // end of shuffling loop

                    //tile placing loop
                    for (i=0; i<NUMBER_OF_TILES; i++)
                    {
                        tile=new tile_movieclip();
                        addChild(tile);
                        tile.cardType = tiles[i];
                        tile.x=5+(tile.width+5)*(i%TILES_PER_ROW);
                        tile.y=5+(tile.height+5)*    (Math.floor(i/TILES_PER_ROW));
                        tile.gotoAndStop(NUMBER_OF_TILES/2+1);
                        tile.buttonMode = true;
                        tile.addEventListener(MouseEvent.CLICK, onTileClicked);
                        // end of tile placing loop
                     }  

                     private function onTileClicked(e:MouseEvent) {
                     trace("you picked a "+e.currentTarget.cardType);
                     e.currentTarget.gotoAndStop(e.currentTarget.cardType+1);
                 }
             }
         }
    }
}

}

1 个答案:

答案 0 :(得分:0)

您的private函数onTileClicked位于Main方法中。访问修饰符必须在类级别(与Main方法相同的级别)使用,而不是在其他方法中使用。

您应该删除private修饰符,或将该函数移至类级别。实际上,该功能无法在Main外部访问,因此它不需要是私有的。