2013-04-22 30 views
0

本来我有两个函数,第一个函数是dataLoaded,其中有一个eventListener,它产生了一个名为itemClicked的新函数。但是,如果我想添加delayedFunction并将itemClicked作为dataLoadeddelayedFunction之间的间歇阶段,那么当我在我的delayedFunction中引用它时,如何访问原始听众的event.targetevent.currentTarget在侦听器之外访问event.target或event.currentTarget函数

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); 
} 

(我嘲笑了上面的功能,所以我可能会丢失一些右括号,但是这并不就该事到我的问题)

这个问题一直在我的脑海几天,我想不到一种方法可以让父_itemevent.target访问除监听功能以外的其他功能。

回答

2

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

setTimeout(delayedFunction, 5000, event.currentTarget); 

然后从你的delayedFunction方法得到的arguments阵列参数:

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

看一看的setTimeout docs,如果你需要信息。

+0

我需要声明参数数组还是'arguments'作为传递参数的内置关键字吗? – adaam 2013-04-22 00:25:30

+1

不,你不需要声明'arguments'数组。它是为每个功能而制作的。查看参数文档(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/arguments.html)) – 2013-04-22 01:13:38

相关问题