Pergunta

Eu estou tentando trocar duas variáveis ??em ActionScript.

Eu tentei usar:

a = 42
b = 50

tempvar = a
a = b
b = tempvar

para mudar, mas isso não funciona porque as variáveis ??ainda referenciar o valor original, então se eu set b = a, e em seguida, altere a, b muda também.

em Ruby, você tem clone (), mas eu não sei um método semelhante para AS3.

Ajuda?

Foi útil?

Solução

A seguir funciona bem. Certamente você não mostraram todo o seu código?

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

Traços

a=50
b=42

No clone necessário. Mesmo o seguinte código untyped, que segue mais de perto o seu exemplo dá o mesmo resultado:

        var a=42;
        var b=50;
        var temp=a;
        a=b;
        b=temp;
        trace("a="+a);
        trace("b="+b);

Como você está declarando a, b e tempVar? É este código da timeline?

Outras dicas

var tempvar:uint = new uint(a);
a = new uint(b);
b = tempvar;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top