我正在尝试在ActionScript中交换两个变量。
我尝试使用:
a = 42
b = 50
tempvar = a
a = b
b = tempvar
切换,但这不起作用,因为变量仍然引用原始值,所以如果我设置b = a,然后更改a,b也会发生变化。
在ruby中,你有clone(),但我不知道AS3的类似方法。
帮助?
答案 0 :(得分:2)
var tempvar:uint = new uint(a);
a = new uint(b);
b = tempvar;
答案 1 :(得分:2)
以下工作正常。你肯定没有显示所有代码吗?
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的?这是时间表代码吗?