我想检查是否使用2个eventListeners和2个函数按下/释放了4个屏幕按钮,我知道我可以让每个按钮按下/解压指向不同的功能但是这留下了8个eventListeners和8个函数总计,这里显示的CODE我可以使用键盘键而不是按钮(将mouseEvent更改为keyboardEvent等),但我需要它作为按钮
我的所有按钮都有不同的实例,它们都在另一个大实例中。
使用键盘我用(event.keycode == EXAMPLE.KEY)填充(I_DONT_KNOW_WHAT_GOES_HERE),这样就完美了。
但我需要知道如何更改(KEYBOARD_KEY_BEING_PRESSED)到(INSTANCE_OF_BUTTON_BEING_PRESSED)
有没有办法实现这个目标?或者我必须以其他方式完成整个事情?
CODE:
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;
}
}
感谢您的回答!
答案 0 :(得分:1)
您正在寻找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) {
}
}