ActionScript/Propagação do evento
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();
}