| alexcon314 |
24.03.2011 10:10 |
Все дело в том, что вы на событие MOUSE_DOWN подписались у stage:
Код:
//Переместить
function Move(event:MouseEvent):void
{
this.stage.nativeWindow.startMove();
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, Move);
Потому у вас глючит, когда вы на то же событие подписываете кнопку ресайза:
Код:
//Размеры
function rsz(event:MouseEvent):void
{
stage.nativeWindow.startResize(NativeWindowResize.BOTTOM_RIGHT);
}
resizeBRButton.addEventListener(MouseEvent.MOUSE_DOWN, rsz);
По-хорошему, нужно сделать отдельный спрайт, который будет выполнять роль заголовка вашего окна (Title Bar), и таскать окно, взявшись за него, а не за любую точку в окне, чего вы добились с помощью
Код:
stage.addEventListener(MouseEvent.MOUSE_DOWN, Move);
. Подозреваю, что титлбар у вас даже есть в наличии.
Ну, например так:
Код:
package
{
import flash.desktop.NativeApplication;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.MouseEvent;
[SWF(width="800", height="600")]
public class Main extends Sprite
{
public function Main():void
{
// рисуем титлбар помещаем его в верхнюю часть окна
var titleBar:Sprite = new Sprite();
titleBar.graphics.beginFill(0xcdcdcd);
titleBar.graphics.drawRect(0, 0, stage.stageWidth, 30);
titleBar.graphics.endFill();
addChild(titleBar);
titleBar.addEventListener(MouseEvent.MOUSE_DOWN, move);
// рисуем и располагаем кнопки управления окном
var btn:Sprite = getNCButton();
btn.x = 600; btn.y = 10;
addChild(btn);
btn.addEventListener(MouseEvent.CLICK, close);// закрыть
btn = getNCButton();
btn.x = 650; btn.y = 10;
addChild(btn);
btn.addEventListener(MouseEvent.CLICK, min);// свернуть
btn = getNCButton();
btn.x = 700; btn.y = 10;
addChild(btn);
btn.addEventListener(MouseEvent.CLICK, max);// развернуть
btn = getNCButton();
btn.x = 780; btn.y = 580;
addChild(btn);
btn.addEventListener(MouseEvent.MOUSE_DOWN, resize);// изменить размер
}
private function getNCButton():Sprite
{
var spr:Sprite = new Sprite()
var gr:Graphics = spr.graphics;
gr.beginFill(0x00f000);
gr.drawRect(0, 0, 40, 20);
gr.endFill();
return spr;
}
private function close(e:MouseEvent):void
{
NativeApplication.nativeApplication.exit();
}
private function min(e:MouseEvent):void
{
this.stage.nativeWindow.minimize();
}
private function max(e:MouseEvent):void
{
this.stage.nativeWindow.maximize();
}
private function resize(e:MouseEvent):void
{
this.stage.nativeWindow.startResize();
}
private function move(e:MouseEvent):void
{
this.stage.nativeWindow.startMove();
}
}
}
|