我很难将变量传递给函数作为参考。这是我的代码的一部分,它是麻烦制造者:
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
。
如何才能使此功能正常工作?
答案 0 :(得分:0)
AS中的基元永远不会通过引用传递,您需要将其装入复杂类型并传递盒装值 - 这些值始终通过引用传递。在您的情况下,传递整个control
,无论是什么,并在control[current]
内阅读callback
。