Wikitoria


<posts mais recentes>

  • IE9, será?...
  • Mais Flash 10.1 no Nexus One...
  • Mini-golfe patrocinado...
  • Apresentação HTML5...
  • Cinder...
</posts mais recentes>

<posts populares>

    • Jogos 3D na web sem plugins alienígenas
    • Governo alemão recomenda substituir Internet Explorer por navegador alternativo
    • Gordon: runtime para flash (.swf) em Javascript
    • Quebração de gelo geek: com que fonte você programa?
    • HTML 5: Another World
</posts populares>

<tags>

3d actionscript android apple Arte arte generativa as3 bizarrices busca chrome data-visualization desenvolvimento desktop favoritos flash fwa gadgets geo-mapping google html5 ide iphone javascript jogos mac mapas microsoft microsoft surface mobile multi-touch navegadores nexus one prêmios processing programação quake ria segurança silverlight Tecnologia tendências video webgl xhtml youtube
</tags>
« Olha quem está no Twitter: @BillGates
HTML 5: Another World »

AS3Signals

Robert Penner, criador das funções de easing em actionscript que, sabendo ou não, TODO MUNDO usa, não estava satisfeito com o modelo de eventos do Actionscript 3, e criou uma alternativa baseada, segundo ele, nos modelos do C# e Qt: as3-signals.

Para exemplificar rapidamente, o que no modelo de eventos padrão do AS3 seria:

public class SomeListener {
    public function SomeListener() {
        ball.addEventListener( BallEvent.BOUNCE, onBallBounce );
    }
    private function onBallBounce( event : BallEvent ) {
        trace("bola pulou");
    }
}

import flash.events.EventDispatcher;
class Ball extends EventDispatcher {
    public function foo() {
        dispatchEvent( new BallEvent( BallEvent.BOUNCE ) );
    }
}

… com as3-signals, seria algo como:

public class SomeListener {
    public function SomeListener() {
        ball.bounce.add(onBallBounce);
    }
    private function onBallBounce() {
        trace("bola pulou");
    }
}

import org.osflash.signals.Signal;
class Ball {
    public var bounce : Signal = new Signal();
    public function foo() {
        bounce.dispatch();
    }
}

Já há por aí comparações impressionantes de desempenho, mas, acima de tudo, a vantagem é de uma implementação mais clara e simples, resultando que a classe que dispara eventos não precisa estender EventDispatcher. Isso, numa linguagem como AS3, que não permite herança múltipla como Python ou C++, logo se demostra fundamental.

Baixe fontes e SWC na página do projeto.

Bookmark and Share
Tags: as3, desenvolvimento
Publicado em Tecnologia | Nenhum comentário »

    Deixe um comentário

    Clique aqui para cancelar a resposta.


    Eu sou oonn