Вопрос

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

Я пробовал использовать:

a = 42
b = 50

tempvar = a
a = b
b = tempvar

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

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

Помочь?

Это было полезно?

Решение

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

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?Является ли это кодом временной шкалы?

Другие советы

var tempvar:uint = new uint(a);
a = new uint(b);
b = tempvar;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top