我前段時間開始使用as3,並且主要使用starling而不是本機flash對象。今天,我決定給一個嘗試原始閃存,並創建了一個簡單的按鈕:
點擊事件沒有達到根Flash對象
private var _button: SimpleButton;
public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
_button = new SimpleButton(new BUTTON); //BUTTON is an embedded bitmap
addChild(_button);
_button.useHandCursor = true;
_button.addEventListener(MouseEvent.CLICK, OnClick);
}
private function OnClick(e:MouseEvent):void
{
trace("clicked");
}
這definely在八哥的工作,但我發現,點擊事件不會派遣出於某種原因按鈕。鼠標上方不顯示手形光標。我嘗試了鼠標懸停,鼠標懸停和其他鼠標事件,但沒有一個能夠正常工作。我檢查了按鈕是否正確添加到舞臺。另外,當我向舞臺本身添加一個鼠標點擊事件監聽器時,通常會點擊註冊。當我向Main添加監聽器時,沒有事件再次被註冊。 我可能誤解了一些明顯的東西。也許我需要手動派遣事件給孩子們?但是,這將是很大的。或者它可能是FlashDevelop中的一個錯誤?請幫忙。
SimpleButton是如何定義的? – Brian
Main擴展MovieClip或Sprite嗎? SimpleButton上的mouseEnabled是否爲true? MainChild上的mouseChildren是否爲true? –
@Amy Blankenship是的,它擴展了flash.display.Sprite。我沒有明確地設置mouseEnabled,但我只是試圖將Main和SimpleButton設置爲true,並將mouseChildren顯式設置爲true。但結果是一樣的。 – Aikei