2009-09-10 2 views
1

ActionScript에서 두 변수를 교체하려고합니다.AS3에서 변수 복제

난하여 시도 :

a = 42 
b = 50 

tempvar = a 
a = b 
b = tempvar 

는 전환되지만 변수가 여전히 I는 B로 설정하면되도록 = A가 다음뿐만 아니라, B의 변경을 변경 원래 값을 참조하기 때문에이 작동하지 않는다 .

루비에서는 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;