Qual é a diferença entre o ActionScript 2. 0 e o ActionScript 3. 0

Quais são as principais diferenças entre as versões?

Author: grapefrukt, 2011-05-24

3 answers

Além das mudanças na biblioteca, o Actionscript 3 é compilado e executado numa máquina virtual completamente diferente (AVM2), que foi reescrita do zero. Ele supostamente executa o código AS3 compilado até 10 vezes mais rápido do que o script de código compilado para a máquina virtual AVM1.

Você deve verificar este doc para uma lista de diferenças entre AS2 e AS3 como eles não podem ser explicados melhor em SO:)

 5
Author: Demian Brecht, 2011-05-24 07:04:41

No AS3 pode estruturar e organizar a sua aplicação a Lote mais estrategicamente. É mais rápido, mais limpo e muito mais recomendado do que AS2. A principal diferença é que você pode desenvolver aplicações flash com uma influência OOP muito mais forte do que em AS2.

O AS3 torna muito mais fácil a utilização de códigos de terceiros, como o Tweenlite da Greensock, o Papervision 3D e o box2d.

No AS2 teria de usar o protótipo para conseguir o que uma classe pode fazer por si no AS3. Exemplo:

Protótipo AS2:

MovieClip.prototype.flip = function():Void
{
    this._rotation += 180;
}

Classe AS3 que pode ser usada como uma classe base para todos os seus MovieClips:

package
{
    import flash.display.MovieClip;

    public class MyMovieClip extends MovieClip
    {
        public function flip():void
        {
            rotation += 180;
        }
    }
}

Embora haja mais código na criação de sua própria classe, você pode agora estender esta classe e simplesmente chamar {[[4]} de dentro para executar o método flip(). Em AS2, você teria que estar no mesmo escopo que sua função MovieClip.prototype.flip() para acessá-la, o que pode causar uma bagunça.

Aqui está a comparação AS2 e AS3 para criar um MovieClip, adicionando até ao palco e depois fazendo uso da sua função flip():

AS3:

var mc:MyMovieClip = new MyMovieClip();
mc.flip();

addChild(mc);

AS2::

MovieClip.prototype.flip = function():Void
{
    this._rotation += 180;
}
var mc:MovieClip = attachMovie("your_library_mc", "newname", this.getNextHighestDepth());
mc.flip();
 1
Author: Marty, 2011-05-24 07:01:18

Como algumas outras pessoas afirmaram AS2 e AS3 são línguas diferentes e até mesmo executar em diferentes máquinas virtuais no flash player, AVM e AVM2 (Actionscript Virtual Machine).

No entanto, a maior parte do Código AS2 tem equivalentes directos AS3 e, no caso do Código da linha temporal, os nomes são normalmente os mesmos (por exemplo, gotoAndPlay, stop, etc.). Você pode encontrar uma folha de batota handy aqui: http://actionscriptcheatsheet.com/downloads/as3cs_migration.pdf Geralmente se não há um AS3 equivalente ao que você tem em seu AS2 há uma maneira melhor e mais robusta em vez disso.

Há também um livro chamado 'The ActionScript 3.0 Migration Guide' que você pode querer verificar também.

Também pode fazer com que o código AS2 e AS3 falem uns com os outros através de uma ligação local. Há muitos how-to's sobre isto na internet.
 0
Author: Michael Apfelbeck, 2011-06-01 20:39:44