1
我試圖在ActionScript中交換兩個變量。在AS3中複製一個變量
我試着使用:
a = 42
b = 50
tempvar = a
a = b
b = tempvar
切換,但這並不工作,因爲變量仍引用原始值,所以如果我設置B = A,然後更改A,B的變化,以及。你有克隆(),但我不知道AS3類似的方法。
幫助?
我試圖在ActionScript中交換兩個變量。在AS3中複製一個變量
我試着使用:
a = 42
b = 50
tempvar = a
a = b
b = tempvar
切換,但這並不工作,因爲變量仍引用原始值,所以如果我設置B = A,然後更改A,B的變化,以及。你有克隆(),但我不知道AS3類似的方法。
幫助?
以下工作正常。當然,你沒有顯示你的所有代碼?
import flash.display.Sprite;
public class SwapTest extends Sprite
{
public function SwapTest()
{
var a:int=42;
var b:int=50;
var temp:int=a;
a=b;
b=temp;
trace("a="+a);
trace("b="+b);
}
}
痕跡
a=50 b=42
無需克隆。即使是下面的非類型代碼,更接近你的例子給出了相同的輸出:
var a=42;
var b=50;
var temp=a;
a=b;
b=temp;
trace("a="+a);
trace("b="+b);
你是如何聲明a,b和tempVar?這是時間軸代碼嗎?
var tempvar:uint = new uint(a);
a = new uint(b);
b = tempvar;
這個工作的原因是因爲你使用像int這樣的基本類型。基元類型在賦值時複製,而像數組這樣的對象類型使用引用。 – Soviut 2011-01-08 23:01:13