2009-09-10 12 views
1

ActionScriptで2つの変数を交換しようとしています。AS3で変数を複製する

私が使用してみました:

a = 42 
b = 50 

tempvar = a 
a = b 
b = tempvar 

を切り替えることが、私はBを設定した場合に変数は依然として、元の値を参照するので、これは動作しない=、次いで同様に、Bの変更を変更します。

ruby​​ではclone()がありますが、AS3と同様の方法はわかりません。

ヘルプ?

答えて

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); 

がどのように宣言され、BおよびtempVar:でも、より密接にあなたの例を次の次型指定されていないコードは、同じ出力を与えますか?このタイムラインコードですか?

+0

これは、intのようなプリミティブ型を使用しているためです。配列のようなオブジェクト型は参照を使いますが、プリミティブ型は代入時にコピーされます。 – Soviut

2
var tempvar:uint = new uint(a); 
a = new uint(b); 
b = tempvar; 
関連する問題