0

我很难将变量作为参考传递给函数。这是我的代码的一部分,它是麻烦制造者:

onMouseDown = function ():Void
{
    mouseListener(openCategory, [control[current]]);
};

function mouseListener(callback:Function, callbackParams:Array):Void
{
    for (var index in categories)
    {
        var category:MovieClip = categories[index];
        if (category.hitTest(root._xmouse, root._ymouse))
        {
                control[current] = category;
                callback.apply(null, callbackParams);
        }
    }
}

现在我想要发生的是存储在其中的函数callback接收对它的引用control[current]或至少是它的最新值。实际发生的是将 的值control[current]传递给mouseListener

我怎样才能让这个功能工作?

4

1 回答 1

0

AS 中的基元永远不会通过引用传递,您需要将其装箱为复杂类型并传递装箱值 - 这些始终通过引用传递。在您的情况下,请传递整个control,无论是什么,然后阅读control[current]inside callback

于 2012-09-25T12:50:03.807 回答