因此,在我的Flash遊戲中用我的重啓按鈕不知疲倦地工作後,按鈕仍然不會註冊點擊。ActionScript 3 Button CLICK event not firing
以下是該按鈕的代碼: 爲什麼我認爲問題出在MouseEvent.CLICK上,因爲trace()標誌不顯示。
package
{
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.ui.Mouse;
/**
* ...
* @author Andrew Xia
*/
public class RestartButton extends SimpleButton
{
public function RestartButton(setX:Number, setY:Number)
{
this.x = setX;
this.y = setY;
addEventListener(MouseEvent.CLICK, onClick);
}
public function onClick(event:MouseEvent):void
{
trace("HELLO!");
dispatchEvent(new NavigationEvent(NavigationEvent.RESTART));
}
}
}
這裏是我添加的按鈕在屏幕上的代碼:
package
{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.ui.Mouse;
/**
* ...
* @author Andrew Xia
*/
public class GameOverScreen extends MovieClip
{
public var restartButton:RestartButton;
public var scoreLabel:TextField;
public var scoreBox:TextField;
public function GameOverScreen()
{
Mouse.show();
restartButton = new RestartButton(0, 108);
addChild(restartButton);
var textFormat = new TextFormat();
textFormat.size = 54;
scoreLabel = new TextField();
scoreLabel.x = -185;
scoreLabel.y = -36.75;
scoreLabel.height = 73.5;
scoreLabel.width = 185;
scoreLabel.text = "SCORE: ";
scoreLabel.textColor = 0xFFFFFF;
scoreLabel.setTextFormat(textFormat);
addChild(scoreLabel);
scoreBox = new TextField();
scoreBox.x = 0;
scoreBox.y = -36.75;
scoreBox.height = 73.5;
scoreBox.width = 143;
scoreBox.text = (String)(Main.playerScore);
scoreBox.textColor = 0xFFFFFF;
scoreBox.setTextFormat(textFormat);
addChild(scoreBox);
}
}
}
請幫幫忙,這個問題已經快把我逼瘋了,我敢肯定,它可能只是一個非常愚蠢的在我的部分錯誤,但我會很感激,如果你們可以幫助我。
首先,做其他痕跡的工作?如果不是,則在「釋放」模式下進行編譯,在這種模式下跟蹤只是未編譯的。其次,你可能會添加時髦的代碼到偵聽器中,只是測試這些工作。說'parent.graphics.moveTo(0,0); parent.graphics.lineTo(500,500);'這樣精靈上的遊戲會在它上面劃一條線。如果它有效,你不得不將導航事件發送給'this',而是發送給其他類,直到'stage'。 – Vesper