我最近拿起了 Emanuele Feronato 的 Flash Game Development by Example 以尝试帮助扩展我对游戏设计和动作脚本 3 的知识,但我被困在第一章,我们基本上是在构建一个记忆匹配二游戏,你有十组瓷砖,您尝试通过单击它们来匹配它们。
在我坚持的代码中,Feronato 先生正在使用 for 循环和 addChild 将图块添加到舞台,特别是以下代码:
// tile placing loop
for (i:uint=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
在第 5 行中,您可以看到他创建了名为“cardType”的 tile 变量的自定义属性,但是当我尝试运行代码时,我收到错误“通过静态类型 Tile 的引用访问可能未定义的属性 cardType。 " 我的 Tile 类扩展了 MovieClip,主类扩展了 Sprite,但据我所知,我编写的代码与书中完全一样,无法超越。我想过只使用一个普通的 int 变量 cardType 来保存 tiles[i] 但后来你在鼠标事件上使用 cardType 属性所以我有点卡住了。
Flash 中是否发生了一些变化,不再允许您以这种方式创建自定义属性?还是我只是做了一些我没有抓住的愚蠢行为。
一如既往,非常感谢您的帮助。