最初我有两个函数,第一个函数是dataLoaded
,其中有一个eventListener,它产生了一个名为itemClicked
的新函数。但是,如果我想在delayedFunction
和itemClicked
之间添加dataLoaded
并delayedFunction
作为间歇性阶段,我该如何访问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
对除听力函数以外的函数可以访问。
答案 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。