воскресенье, 23 декабря 2007 г.

Event Flow

В AS3 вводится новый подход для работы с событиями. "Поток событий" (event flow)
определен только для видимых объектов, находящихся в display list.
У потока выделяют три стадии. Данный код демонстрирует 3 стадию (bubbling)


package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.StageScaleMode;
import flash.display.StageAlign;

public class Test extends Sprite {

private var _rectangle:Sprite;
private var _circle:Sprite;
public function Test() {

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

_rectangle = new Sprite();
_rectangle.graphics.lineStyle(0, 0, 0);
_rectangle.graphics.beginFill(0x0000FF, 1);
_rectangle.graphics.drawRect(0, 0, 100, 50);
_rectangle.graphics.endFill();
addChild(_rectangle);

_circle = new Sprite();
_circle.graphics.lineStyle(0, 0, 0);
_circle.graphics.beginFill(0x0000FF, 1);
_circle.graphics.drawCircle(0, 0, 50);
_circle.graphics.endFill();
_circle.x = 100;
_circle.y = 100;
addChild(_circle);

addEventListener(MouseEvent.CLICK, onClick);

}

public function onClick(event:MouseEvent):void {
event.target.x = Math.random() * 400;
event.target.y = Math.random() * 400;
}
}
}

Комментариев нет: