PopUp Window
Có nhiều cách để tạo một cửa sổ window, dưới đây là một mẫu code ngắn, có thể chế biến lại phù hợp với yêu cầu:
-Tạo lớp để có một window resizable, có nút close (các chức năng khác bạn tự thêm vào): file ResizablePanel.as
package
{
import flash.events.MouseEvent;import mx.containers.TitleWindow;
import mx.controls.Button;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;public class ResizablePanel extends TitleWindow
{
private var resizer:Button = new Button();public function ResizablePanel()
{
super();
resizer.addEventListener(MouseEvent.MOUSE_DOWN, resizeDown);
this.showCloseButton=”true”;this.addEventListener(CloseEvent.CLOSE, closeDialog);
}
override protected function createChildren():void{
resizer.height=10;
resizer.width = 10;
super.createChildren();
rawChildren.addChild(resizer);
}
override protected function updateDisplayList(w:Number, h:Number):void{
super.updateDisplayList(w,h);
resizer.y = h – resizer.height;
resizer.x = w – resizer.width;
}
private function resizeDown(e:MouseEvent):void{
stage.addEventListener(MouseEvent.MOUSE_MOVE, scalePanel);
stage.addEventListener(MouseEvent.MOUSE_UP, stopScale);
}
private function scalePanel(e:MouseEvent):void{
if((stage.mouseX – x)>50)
width = (stage.mouseX-x);
if((stage.mouseY-y)>50)
height = (stage.mouseY-y);
}
private function stopScale(e:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, scalePanel);
stage.removeEventListener(MouseEvent.MOUSE_UP, stopScale);
}
//function close window
private function closeDialog(event:CloseEvent) : void {
this.parent.removeChild(this);
}
}
}
lớp trên chỉ tạo một window trống. Để có nội dung như ý mình (VD: có form đăng nhập, có ….) bạn tạo một component mxml mở rộng lớp trên ra. Ở đây, để đơn giản, chỉ hiển thị window trống này thôi:
Hiển thị window:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” creationComplete=”createPopUpWindow()” layout=”absolute” xmlns:local=”*”>
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
function createPopUpWindow():void
{
var popupWindow:Register = new Register();
PopUpManager.addPopUp(popupWindow, this);
}
]]>
</mx:Script>
</mx:Application>

Comments