[英]Is there a way to pass the member function of another class as a parameter to a function in as3?
[英]Is there a way, in As3, to modify a class variable within a function, if you have a it passed as a parameter?
這是我的意思的簡單示例:
private var ex:String="day";
......
closeWindows(ex);
trace(ex);//I would like it to trace "night"
......
//this can be in another class, we assume that the "ex" variable can't be accessed directly
private function closeWindows(context:String):void {
context = "night"
}
我不知何故需要將引用而不是值本身傳遞給“ closeWindows”方法。
非常感謝您的任何幫助。 謝謝。
不幸的是,AS3不支持通過引用傳遞基元。 因此,您是對的,一種典型的解決方案是對原始數據使用某種包裝,例如在this Question中 。
可能您已經意識到了這一點,但是在Actionscript中,參數始終按值傳遞。 因此,除非使用某些臨時包裝(對象,數組或其他任何東西),否則您無法做任何事情。
但是,您不能只返回並重新分配新字符串嗎?
謝謝你們兩個的回答,最后似乎沒有辦法將變量作為引用而不是值傳遞。 但是,您可以傳遞一個函數作為參考,因此這是我的一點“獲取/設置”技巧。
private var ex:String="day";
......
closeWindows(setEx);
trace(getEx());
......
private function getEx():String {
return ex;
}
private function setEx(value:String):String {
ex = value;
}
private function closeWindows(context:Function):void {
context.call(null, "night");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.