在侦听器函数之外访问event.target或event.currentTarget

时间:2013-04-22 00:14:13

标签: actionscript-3 flash-cs6

最初我有两个函数,第一个函数是dataLoaded,其中有一个eventListener,它产生了一个名为itemClicked的新函数。但是,如果我想在delayedFunctionitemClicked之间添加dataLoadeddelayedFunction作为间歇性阶段,我该如何访问event.target或{{1}当我在event.currentTarget

中引用它时,原始侦听器
delayedFunction

(我已经嘲笑了上面的函数,所以我可能会遗漏一些右括号,但这与我的问题无关)

这个问题已经出现在我的脑海里好几天了,我想不出一种方法可以使父private function dataLoaded(event:Event):void { //items properties call - add other calls to master properties later on items = data.item; // parsing of each ingredient for (var i = 0; i < items.length(); i++) { // instantiation of mcItem (the stage for each item) _item = new Item(); // sets //over// layer to invisible / transparent _item.item_btn_over.alpha = 0; // creates the var itemTextField _itemTextField = new TextField(); _itemTextField.text = items[i].toString(); // adds textfield to displaylist _item.addChild(_itemTextField); //adds items to container displaylist _container.addChild(_item); } _item.parent.addEventListener( MouseEvent.CLICK, itemClicked ); } function itemClicked(event:MouseEvent):void { if (event.target is Item) { var item:Item = Item(event.target); TweenLite.to(item.btn_delete, 1,{rotation:180}); setTimeout(delayedFunction,5000); item.parent.removeChild(item); parseXML(data); } } function delayedFunction():void { var item:Item = Item(event.target); item.parent.removeChild(item); } event.target对除听力函数以外的函数可以访问。

1 个答案:

答案 0 :(得分:2)

您可以将参数传递给setTimeout这样的电话:

setTimeout(delayedFunction, 5000, event.currentTarget);

然后从arguments方法中获取delayedFunction数组中的参数:

function delayedFunction():void {
    var item:Item = arguments[0] as Item;
    item.parent.removeChild(item);
}

如果您需要信息,请查看setTimeout docs