Flex air window的定制
发布时间:2020-12-15 04:50:17 所属栏目:百科 来源:网络整理
导读:下面是我对Window类的一个定制,如下所示: 1.主界面,代码如下所示: ?xml version="1.0" encoding="utf-8"?s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.c
下面是我对Window类的一个定制,如下所示:
1.主界面,代码如下所示: <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" initialize="windowedapplication1_initializeHandler(event)" showStatusBar="false" width="50" height="60" > <fx:Style source="css/style.css" /> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <mx:Glow id="Glow1" alphaFrom="0" alphaTo="1" blurXFrom="1" blurXTo="100" blurYFrom="1" blurYTo="100" duration="5000" inner="true" target="{displayImg}" /> </fx:Declarations> <fx:Script> <![CDATA[ import com.floor.screen.redevelop.app.window.myWin; import flash.display.NativeWindow; import mx.controls.Alert; import mx.events.FlexEvent; //动态绑定 [Bindable] [Embed(source='assets/image004.png')] public var icons:Class; //定时器初始化 public var glowTimer:Timer=new Timer(5000); /** * 功能点: * 初始化加载函数 * 去掉最大化,最小化,关闭按钮,还有状态栏 * 并实现置顶,浮动,可拖拽的效果 **/ protected function windowedapplication1_initializeHandler(event:FlexEvent):void { displayImg.source = icons; //绑定定时器事件,启动定时器 glowTimer.addEventListener(TimerEvent.TIMER,GlowTimerFunc); glowTimer.start(); } /** * 定时器响应函数 **/ public function GlowTimerFunc(event:TimerEvent):void{ Glow1.play(); } /** * 拖拽,置顶效果 */ public function mouseDown(event:MouseEvent):void{ this.stage.nativeWindow.startMove(); this.stage.nativeWindow.alwaysInFront=true; } /** * 图片点击事件 **/ protected function displayImg_clickHandler(event:MouseEvent):void { // Alert.show("hello world"); var mw:myWin = new myWin(); mw.advOpen(this); mw.move(50,50); //防止父窗口打开过多当前窗口,因而将其隐藏 this.visible = false; // if(mw.parentWindow.hasOwnProperty("close")){ // mw.parentWindow.close(); // //调用父窗口的close方法 // } } public function open(event:Event):void{ this.open(event); } ]]> </fx:Script> <s:Image id="displayImg" x="6" y="7" width="100%" height="100%" mouseDown="mouseDown(event)" click="displayImg_clickHandler(event)" /> </s:WindowedApplication>2.myWin.as类,代码如下:package com.floor.screen.redevelop.app.window { import flash.display.NativeWindowSystemChrome; import flash.display.Screen; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Rectangle; import mx.core.Container; import mx.core.ScrollPolicy; import mx.core.Window; import mx.core.WindowedApplication; public class myWin extends Window { //类窗口类 public var parentWindow:Object; //自定义组件类 public var subGroup:myGroup; public function myWin() { this.showStatusBar = false; //不显示底部状态栏 this.showGripper = false; //不显示底部大小控制按钮 this.alwaysInFront = true; //置顶操作 this.minimizable = false; this.transparent = true; this.width = 200 ; //宽度 this.height =100; //高度 this.maximizable = false ; //不可最大化 //去除窗口的边框、菜单栏 this.systemChrome="none" ; this.resizable = false ; this.showTitleBar = false ; //this.systemChrome = NativeWindowSystemChrome.NONE; //不显示系统窗口 //窗体永不出现垂直和水平滚动条 this.horizontalScrollPolicy = ScrollPolicy.OFF; this.verticalScrollPolicy=ScrollPolicy.OFF; //显示位置 var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds; this.bounds=new Rectangle(300,400,400); //窗口在(600,300)处,宽为300,高为300; //this.bounds=screenBounds//窗口为屏幕大小; //添加窗体关闭事件注册 this.addEventListener(Event.CLOSE,exitEventHandler); //super(); //添加一个子控件,用来装载一些控件和图标 subGroup = new myGroup(); subGroup.width = this.width- 2; subGroup.height = this.height - 1; this.addChild(subGroup); subGroup.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler); } /** * 自定义open()打开窗口并且保存调用此方法的对象 */ public function advOpen(parentWindow:Object,openWindowActive:Boolean = true):void{ this.parentWindow = parentWindow; this.open(true); } /** * 关闭事件响应函数 **/ public function exitEventHandler(event:Event):void{ //显示上一级窗口 this.parentWindow.visible = true; // cannot convert flash.events::Event@5d41da9 to flash.events.MouseEvent. // if(this.parentWindow.hasOwnProperty("open")){ // this.parentWindow.open(event); // //调用父窗口的open方法 // } } /** * 鼠标拖曳事件 **/ public function mouseMoveHandler(event:MouseEvent):void{ this.stage.nativeWindow.startMove(); this.stage.nativeWindow.alwaysInFront=true; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |