Цитата:
|
caseyryan, нет разницы чисто технически как реализовывать.
|
Разница огромна. У меня все всплывающие окна реализуются через статические менеджеры, и все равботает.
Вот упрощенный пример:

Код AS3:
package {
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
public class PopupWindow extends Sprite {
private static var _stage: Stage;
private static var _window: PopupWindow = null;
public function PopupWindow() {
graphics.beginFill(0xFFFF00);
graphics.drawRect(0, 0, 250, 100);
graphics.endFill();
}
public function dispose():void {
graphics.clear();
if (parent) parent.removeChild(this);
}
public static function show():void {
if (!_stage) throw "сначала нужно инициализировать";
if (_window) return;
_window = new PopupWindow();
_window.x = (_stage.stageWidth - _window.width) / 2;
_window.y = (_stage.stageHeight - _window.height) / 2;
_stage.addChild(_window);
}
public static function initizlize(stage:Stage):void {
if (_stage) return;
_stage = stage;
_stage.addEventListener(MouseEvent.CLICK, onClick);
}
static private function onClick(e:MouseEvent):void {
if (_window) {
if (e.target != _window) {
_window.dispose();
_window = null;
}
}
}
}
}
Сначала где-то в документ классе инициализируем, а потом просто в любом месте программы вызываем методо PopupWindow.show()