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

Primitives in AS are never passed by reference, you would need to box it into a complex type and pass the boxed value - these are always passed by reference. In your case, pass the entire control, whatever that is, and read control[current] inside callback.

于 2012-09-25T12:50:03.807 に答える