我需要一些关于如何使用不同的事件处理程序以编程方式创建多个按钮的指针,或者更确切地说:不同的参数化事件处理程序。我真正的用途有点复杂,但归根结底是:我需要一个点击后可以删除自己的按钮。
var Buttons:Vector.<Button> = new Vector.<Button>;
var newButton = new Button;
var int = Buttons.push(newButton);
newButton.addEventListener(MouseEvent.CLICK, button_clickHandler);
// pseudocode
button_clickHandler(event:MouseEvent):void {
if (event.button = i) { delete button i}
}
我想不出在Flash中如何做到这一点,除了做一些愚蠢的事情,比如在点击事件中检查所有按钮的鼠标位置,然后找出被点击的按钮。
您可以做其他事情,但类似:
private function buttonClickHandler(event:MouseEvent):void
{
var button:Button = Button(event.target);
var i:int = buttons.indexOf(button);
// now you know the button instance and the index of the button so do whatever you need
// delete it from the vector:
buttons.splice(i, 1);
}
不过,你可能也应该把它从舞台上移除。