我是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);
}
}
}
}
}
}
答案 0 :(得分:0)
您的private
函数onTileClicked
位于Main
方法中。访问修饰符必须在类级别(与Main
方法相同的级别)使用,而不是在其他方法中使用。
您应该删除private
修饰符,或将该函数移至类级别。实际上,该功能无法在Main外部访问,因此它不需要是私有的。