现在的位置: 首页 > 综合 > 正文

使用小结(1)

2013年05月06日 ⁄ 综合 ⁄ 共 5172字 ⁄ 字号 评论关闭

1、屏幕显示:

全屏状态:

this.stage.displayState == "fullScreen"

最大化:

stage.nativeWindow.maximize();

最小化:同上使用

屏幕3显示判断:

stage.displayState = (stage.displayState != "fullScreen")?"fullScreen":"normal";

 

 

2、键盘事件:

 

private function EscKey(evt:KeyboardEvent):void{

 

if (evt.keyCode == Keyboard.F1 && evt.ctrlKey == true)   //同时响应两个热键,这里为ctrl+F1

 

 

if (evt.keyCode == Keyboard.ESCAPE)  //相应一个键盘事件,这里为ESC

 

 

}

 

 

3、控件与其父控件的大小

如下:

//this.stage.displayState == "fullScreen";     ----------------2

var la:Label = new Label();

la.width=vb.width*0.9;

vb.addChild(la);

this.stage.displayState == "fullScreen"; ----------------------1

运行时,有可能当前显示的大小不对,这是Flex通常是normal下的格式,所以vb的width是在normal下大小,然后在全屏,此时,vb全屏了,可是vb的孩子la却还是当vb是normal下的width;应该修改为把1,放到2的位置,这样就ok了

 

 

4、Datagrid显示序号

<mx:DataGridColumn headerText="序号" labelFunction="GetOrder" width="50"/>

 

<Script>

private function GetOrder(item:Object, column:DataGridColumn):String{

var list:ArrayCollection = listPersons.dataProvider as ArrayCollection;

var index:int = list.getItemIndex(item);

return String(index+1);

}

</Script>

 

 

5、程序最小化隐藏显示在右下角,右键显示菜单,单击启动

private function init():void{

 

 var loader:Loader = new Loader();

   loader.contentLoaderInfo.addEventListener(Event.COMPLETE, prepareForSystray);

   loader.load(new URLRequest("assets/systray.png"));

 

}

 

 

private function windowClosing(evt:Event):void

{

evt.stopImmediatePropagation();

evt.stopPropagation();

evt.preventDefault();

dock();

}

 

 

private function closeApp(evt:Event):void

{

this.exit();

}

 

public function prepareForSystray(event:Event):void {

//Retrieve the image being used as the systray icon

dockImage = event.target.content.bitmapData;

//For windows systems we can set the systray props 

//(there's also an implementation for mac's, it's similar and you can find it on the net... ;) )

if (NativeApplication.supportsSystemTrayIcon){

setSystemTrayProperties();

//Set some systray menu options, so that the user can right-click and access functionality

//without needing to open the application

SystemTrayIcon(NativeApplication.nativeApplication.icon).menu = createSystrayRootMenu();

}

dock();

}

private function createSystrayRootMenu():NativeMenu{

//Add the menuitems with the corresponding actions

var menu:NativeMenu = new NativeMenu();

var openNativeMenuItem:NativeMenuItem = new NativeMenuItem("显示");

var exitNativeMenuItem:NativeMenuItem = new NativeMenuItem("退出");

//What should happen when the user clicks on something...

openNativeMenuItem.addEventListener(Event.SELECT, undock);

exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);

menu.addItem(openNativeMenuItem);

menu.addItem(new NativeMenuItem("",true));//separator

menu.addItem(exitNativeMenuItem);

return menu;

}

private function setSystemTrayProperties():void{

//Text to show when hovering of the docked application icon

SystemTrayIcon(NativeApplication.nativeApplication.icon).tooltip = "公告板程序";

//We want to be able to open the application after it has been docked

SystemTrayIcon(NativeApplication.nativeApplication.icon).addEventListener(MouseEvent.CLICK, undock);

//Listen to the display state changing of the window, so that we can catch the minimize

stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, nwMinimized); //Catch the minimize event        

}

 

private function nwMinimized(displayStateEvent:NativeWindowDisplayStateEvent):void {

if(displayStateEvent.afterDisplayState == NativeWindowDisplayState.MINIMIZED) {

//Prevent the windowedapplication minimize action from happening and implement our own minimize

//The reason the windowedapplication minimize action is caught, is that if active we're not able to

//undock the application back neatly. The application doesn't become visible directly, but only after clicking

//on the taskbars application link. (Not sure yet what happens exactly with standard minimize)

displayStateEvent.preventDefault();

//Dock (our own minimize)

dock();

}

 

public function dock():void {

//Hide the applcation

stage.nativeWindow.visible = false;

//Setting the bitmaps array will show the application icon in the systray

NativeApplication.nativeApplication.icon.bitmaps = [dockImage];

ModelManager.SendMsg(ModelManager.BOARDOVER);

}

public function undock(evt:Event):void {

//After setting the window to visible, make sure that the application is ordered to the front,

//else we'll still need to click on the application on the taskbar to make it visible

stage.nativeWindow.visible = true;

stage.nativeWindow.orderToFront();

stage.nativeWindow.activate();

//Clearing the bitmaps array also clears the applcation icon from the systray

NativeApplication.nativeApplication.icon.bitmaps = [];

this.stage.nativeWindow.maximize();

//this.stage.displayState = "fullScreen";

}

 

 

 

6、Flex显示的CSS(自定义的效果)效果必须定义在WindowedApplication中,其他地方不会显示的。

一个CSS效果:

<mx:Style>

Alert {

   titleStyleName: "alertTitle";

   messageStyleName: "alertMessage";

   buttonStyleName: "alertButton";

   dropShadowEnabled: true;

   shadowDistance: 5;

   shadowDirection: right;

   cornerRadius: 5;

   background-color: #E9FFEA;

}

.alertTitle {

   letterSpacing: 0;

   fontSize: 16;

   color: red;

}

.alertMessage {

   letterSpacing: 0;

   fontSize: 16;

   fontWeight: normal;

   color: black;

}

.alertButton {

   letterSpacing: 0;

   fontSize: 16;

   cornerRadius: 10;

   fontWeight: normal;

}

 

         

         ToolTip {

            fontSize: 14;

            fontWeight: normal;

            backgroundColor: #22DD00;

            dropShadowEnabled: true;

        }

        

        .body { 

       font-size: 12px; 

       font-family: Arial, Helvetica, sans-serif;

filter: style=1,startY=0,finishY=100,startX=100,finishX=100;

background-color: #666666;

}

        

     </mx:Style>

 

Flex自带的名称前面不加“.”,如果想要引用自定义css,则前面加“.”,然后在相应属性的stylename=“body”

抱歉!评论已关闭.