AS3为For Each添加事件监听器

时间:2011-01-02 18:18:04

标签: flash actionscript-3

我想在每个循环中为我创建的所有元素添加一个eventlistener。 但是看起来eventlistener只适用于最新创建的元素。

如何为每个循环中创建的每个元素添加一个事件侦听器?

这是我的代码:

        for each(var showCase:ShowCaseItem in _bllShowCase.arrShowCase)
        {
            var listItem:ListItemShowCase = new ListItemShowCase(showCase);
            listItem.y = yPos;
            listItem.addEventListener("ITEMDELETED", refreshShowCaseItems);
            this.addChild(listItem);

            yPos += 20;

        }

我希望你理解我的问题。

谢谢,文森特

1 个答案:

答案 0 :(得分:0)

此代码没有任何功能上的错误。它应该工作。

问题可能在于其他地方。

显示列表将保存对每个对象的引用,因此GC不应清除任何侦听器,但您可以尝试将每个对象缓存到数组中。这样您就可以确定对此代码块之外的每个对象都有引用。

private var _list:Array = new Array();

for each( var item:Object in list )
{
    _list.push( listItem );
}