Saltar para o conteúdo

ActionScript/Propagação do evento

Origem: Wikilivros, livros abertos por um mundo aberto.

Através deste exemplo, iremos ver como aplicar um evento a todos os objetos de um recipiente. Esse comportamento é conhecido como bubbling (propagação), que é quando o ActionScript percorre toda a hierarquia de objetos em um grupo para descobrir o verdadeiro alvo do evento.

Criamos container e guardando dentro os sprites sp1 e sp2. Adicionando ao container recipiente os eventos de mouse, cada objetos específico do recipiente irá aceitar um evento. Em outras palavras, quando arrastamos o mouse selecionado em sp1, só ele será arrastado, apesar de o listener de evento ter sido adicionado a container.

var container:Sprite = new Sprite(); 

addChild(container);

var sp:Sprite = new Sprite();
desenheCirculo(sp, 0x9900AA); 
sp.x = sp.y = 100;
container.addChild(sp); 

var sp2:Sprite = new Sprite();
desenheCirculo(sp2, 0x00AA00); 
sp2.x = sp2.y = 200;
container.addChild(sp2); 

container.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
container.addEventListener(MouseEvent.MOUSE_UP, onUp);

function onDown(evt:MouseEvent):void {
    evt.target.startDrag();
}

function onUp(evt:MouseEvent) :void {
    stopDrag();
}

function desenheCirculo(obj:Object, col:uint):void {
    var g:Graphics = obj.graphics;
    g.beginFill(col, 1);
    g.drawCircle (0, 0, 40);
    g.endFill();
}