[英]How to check which Button is pressed/unpressed with IF - Action Script 3.0
我想檢查是否使用 2 個 eventListeners 和 2 個函數按下/釋放了四個屏幕按鈕,我知道我可以使每個按鈕按下/松開指向不同的函數,但這總共給我留下了 8 個 eventListeners 和 8 個函數,此處顯示的代碼我可以使用鍵盤鍵而不是按鈕(將 mouseEvent 更改為 keyboardEvent 等)使其工作,但我需要它是按鈕
我所有的按鈕都有不同的實例,它們都在另一個大實例中。
使用鍵盤我用 (event.keycode ==EXAMPLE.KEY) 填充了 (I_DONT_KNOW_WHAT_GOES_HERE) 所以它完美地工作。
但我需要知道如何將 (KEYBOARD_KEY_BEING_PRESSED) 更改為 (INSTANCE_OF_BUTTON_BEING_PRESSED)
有沒有辦法實現這一目標? 或者我必須以其他方式完成整個事情?
代碼:
stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
function mousePressed(event:MouseEvent):void
{
if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonOnePressed = true;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonTwoPressed = true;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonThreePressed = true;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonFourPressed = true;
}
}
function mouseReleased(event:MouseEvent):void
{
if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonOnePressed = false;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonTwoPressed = false;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonThreePressed = false;
}
else if (I_DONT_KNOW_WHAT_GOES_HERE)
{
buttonFourPressed = false;
}
}
您正在尋找Event.currentTarget
,它是最近調度事件的對象( Event.target
是事件的原始調度程序)。 所以你檢查Event.currentTarget
是否等於每個按鈕。
示例(不是一組有效的代碼,但它會讓您了解如何執行此操作)
var btn1:Sprite, btn2:Sprite, btn3:Sprite, btn4:Sprite;
function mouseDownHandler(e:Event):void {
if (e.currentTarget == btn1) {
}
else if (e.currentTarget == btn2) {
}
else if (e.currentTarget == btn3) {
}
else if (e.currentTarget == btn4) {
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.