0

最初我有两个函数,第一个函数中dataLoaded有一个 eventListener,它产生了一个名为itemClicked. 但是,如果我想在 and 之间添加一个anddelayedFunction作为itemClicked间歇阶段,当我在我的.dataLoadeddelayedFunctionevent.targetevent.currentTargetdelayedFunction

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父母的_item可以访问除侦听功能之外的其他功能。

4

1 回答 1

2

您可以setTimeout像这样将参数传递给您的调用:

setTimeout(delayedFunction, 5000, event.currentTarget);

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

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

如果您需要信息,请查看setTimeout 文档。

于 2013-04-22T00:20:07.017 回答