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