Дублируйте переменную в AS3 - PullRequest
1 голос
/ 10 сентября 2009

Я пытаюсь поменять местами две переменные в ActionScript.

Я пытался использовать:

a = 42
b = 50

tempvar = a
a = b
b = tempvar

для переключения, но это не работает, потому что переменные по-прежнему ссылаются на исходное значение, поэтому, если я установлю b = a, а затем изменю a, b также изменится.

в ruby, у вас есть clone (), но я не знаю подобного метода для AS3.

Помощь

Ответы [ 2 ]

2 голосов
/ 10 сентября 2009

Следующее работает отлично. Конечно, вы не показали весь свой код?

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? Это код временной шкалы?

2 голосов
/ 10 сентября 2009
var tempvar:uint = new uint(a);
a = new uint(b);
b = tempvar;
...