0
我相当积极,我想要做的事对ActionScript来说是不可能的,但是如果出错,这将是件很好的事情。在AS3中通过引用更改var的值
我需要将一个变量引用传递给一个函数,并让该函数改变该变量的值。
所以,简化和不完全正确的语法,是这样的:
function replaceValue(element:*, newValue:String):void
{
element = newValue;
}
var variableToModify:String = "Hello";
replaceValue(variableToModify, "Goodbye");
trace(variableToModify) // traces value of 'Hello', but want it to trace value of 'Goodbye'
当然,在replaceValue功能,element
是一个新的参考fungibleValue
(或者更确切地说,一个新的参考fungibleValue
的价值)。所以,当element
被设置为值newValue
时,fungibleValue
不会改变。这是预期的,但完全不是我想要的,在这种情况下。
有一个类似的问题,为Ruby,这里Changing value of ruby variables/references
由于问题指出,Ruby有办法做到这一点。但有没有任何方式在ActionScript中做到这一点?
如果是这样,它会让我觉得很愚蠢。
谢谢,帕特里克。你的建议帮助我思考了这个问题的最后阶段。我几乎想到了将变量包装到Object中的想法,但是我最终将一个回调函数传递给了'replaceValue'方法(这是对另一个对象的静态方法,btw)。现在只需在回调中设置变量的值。其中,是的,非常严重,但是......在这种情况下是一个体面的解决方案。再次感谢。 – 2010-08-04 21:35:09