所以......我正在开发一个国际象棋游戏,并试图让它“公共静态布尔值”(转)决定哪个玩家可以采取行动。这个布尔值在一个类 (Board.as) 中,该类导入所有棋子的所有类(例如,QueenW.as(代表白皇后))。
我尝试了多种方法:尝试使函数不再运行,并将片段(它们是按钮)替换为其他对象(不可点击的影片剪辑)。决定选择后者。我已经在 ENTER_FRAME 函数中跟踪了棋子类和棋盘类中的布尔值。当值发生变化时,两者似乎都能正确跟踪它。
问题是:Flash 不会删除棋子并用不可点击的对象替换它们,即使它应该发生的类 (Board.as) 在跟踪时确实会听布尔值。有人知道解决方案吗?
我的一小段代码,与问题相关:
Board 类(这是我的 .fla 文件的 Documentclass)
package
{
import QueenWclass; //imports the class used for example.
public class Board extends MovieClip
{
public static var turn:Boolean = new Boolean; //creates public static bool.
var queenW:QueenWclass = new QueenWclass(); //creates aforementioned chess-piece.
var queenWnoturn:QueenWnoturn = new QueenWnoturn; //creates a non-clickable object.
}
public function Board()
{
turn = true;
this.addEventListener(Event.ENTER_FRAME, frameEnter);
addChild(queenW); //adds pieces to the screen.
}
if (turn == true)
{
}
if (turn == false)
{
removeChild(queenW); //Removes chess-piece.
addChild(queenWnoturn); //Adds a non-clickable object.
}
}
还有我的 QueenWclass.as 类:
package
{
public class QueenWclass extends MovieClip
{
var queenW:QueenW = new QueenW();
}
public function QueenWclass()
{
addChild(queenW);
this.addEventListener(MouseEvent.CLICK, CLICKqueenW);
}
function CLICKqueenW(event.MouseEvent):void
{
Board.turn = false;
}
}
我希望我正确且易于理解地编写了这个示例。我的项目没有真正的时间限制,因为我已经在一小时前完成了它(但由于努力以及我在这个相当复杂的游戏中走了多远,仍然得到了 6/10)。我只是想为自己完成它......提前谢谢!