2009-09-10 2 views
1

Я пытаюсь заменить две переменные в ActionScript.Дублировать переменную в AS3

Я попытался с помощью:

a = 42 
b = 50 

tempvar = a 
a = b 
b = tempvar 

для переключения, но это не работает, поскольку переменные по-прежнему ссылаться на исходное значение, так что если установить B = A, а затем изменить 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); 

Как вы объявляющий а, б и tempVar? Это код временной шкалы?

+0

Причина этого в том, что вы используете примитивные типы, такие как int. Примитивные типы копируются при назначении, тогда как типы объектов, такие как массивы, используют ссылки. – Soviut

2
var tempvar:uint = new uint(a); 
a = new uint(b); 
b = tempvar; 

 Смежные вопросы

  • Нет связанных вопросов^_^