日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flex的事件(十四)

發布時間:2025/3/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flex的事件(十四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、?? 關于鍵盤事件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

程序響應一個按鍵或一系列按鍵并執行一些動作,例如Control+q退出程序。Flex支持所有來自后臺操作系統的所有組合鍵操作,它同樣允許你覆蓋或捕獲任何按鍵或組合鍵愛執行一個用戶自定義動作。

?

1.???? 處理鍵盤事件

在一些情況下,你希望捕捉全局的按鍵事件,不管用戶在程序的哪個地方,他們的按鍵操作都會被程序檢測到,并且動作會被執行。F

?

一個處理全局按鍵事件的通用方法是在application上創建一個KeyboardEvent.KEY_DOWNKeyboardEvent.KEY_UP事件監聽器。不管焦點在哪兒(只要焦點在程序中,而不是在瀏覽器控件上或瀏覽器之外),只要鍵盤被敲擊,application容器上的監聽器都將被觸發。在處理器內,你可以使用KeyboardEvent類的charCodekeyCode屬性檢查鍵位碼或者字符碼,如下所示:

?

<!-- events/TrapAllKeys.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp();">

<mx:Script><![CDATA[

private function initApp():void {

application.addEventListener(KeyboardEvent.KEY_UP, keyHandler);

}

private function keyHandler(event:KeyboardEvent):void {

t1.text = event.keyCode + "/" + event.charCode;

}

]]></mx:Script>

<mx:TextInput id="myTextInput"/>

<mx:Text id="t1"/>

</mx:Application>

?

要運行這個例子,你必須首先將焦點設定到程序中的某個東西上,例如文本輸入控件。

?

因為任何集成了UIComponent的類都可以調度keyUpkeyDown事件,你也可以捕捉當焦點位于特定組件內時的鍵盤敲擊事件。如下所示:

?

<?xml version="1.0"?>

<!-- events/TrapKeysOnTextArea.mxml -->

<mx:Application

xmlns:mx="http://www.adobe.com/2006/mxml"

creationComplete="initApp();">

<mx:Script><![CDATA[

private function initApp():void {

myTextInput.addEventListener(KeyboardEvent.KEY_UP, keyHandler);

}

private function keyHandler(event:KeyboardEvent):void {

t1.text = event.keyCode + "/" + event.charCode;

}

]]></mx:Script>

<mx:TextInput id="myTextInput"/>

<mx:Text id="t1"/>

</mx:Application>

?

2.???? 了解鍵位碼和字符碼屬性

你可以通過訪問keyCodeharCode屬性來確定到底是哪個鍵被敲擊,并觸發另一個動作作為結果。keyCode屬性是一個數字值,它相當鍵盤上的建的值;charCode屬性是建在當前字符集中的數字值(默認的字符集是UTF-8)。兩者主要的區別在于,keyCode描述了鍵盤上的一個特殊的建(第一行中的1和小鍵盤中的1是不同的鍵,但第一行的1和!是相同的鍵)charCode描述了一個特殊的字符(Rr是不同的)

?

???????? 鍵和鍵位值的映射關系依賴于設備(鍵盤)和操作系統。

?

???????? 下面的例子展示了你敲擊的鍵的字符和鍵位碼:

?

<?xml version="1.0"?>

<!-- charts/ShowCharAndKeyCodes.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">

<mx:Script><![CDATA[

import flash.events.KeyboardEvent;

private function init():void {

ti1.setFocus();

this.addEventListener(KeyboardEvent.KEY_DOWN, trapKeys);

}

private function trapKeys(e:KeyboardEvent):void {

ta1.text = String(e.toString());

l1.text = numToChar(e.charCode) + " (" + String(e.charCode) + ")";

l2.text = numToChar(e.keyCode) + " (" + String(e.keyCode) + ")";

}

private function numToChar(num:int):String {

if (num > 47 && num < 58) {

var strNums:String = "0123456789";

return strNums.charAt(num - 48);

} else if (num > 64 && num < 91) {

var strCaps:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

return strCaps.charAt(num - 65);

} else if (num > 96 && num < 123) {

var strLow:String = "abcdefghijklmnopqrstuvwxyz";

return strLow.charAt(num - 97);

} else {

return num.toString();

}

}

]]></mx:Script>

<mx:TextInput width="50%" id="ti1"/>

<mx:Canvas id="mainCanvas" width="100%" height="100%">

<mx:Form>

<mx:FormItem label="Char (Code)">

<mx:Label id="l1"/>

</mx:FormItem>

<mx:FormItem label="Key (Code)">

<mx:Label id="l2"/>

</mx:FormItem>

<mx:FormItem label="Key Event">

<mx:TextArea id="ta1" width="500" height="200" editable="false"/>

</mx:FormItem>

</mx:Form>

</mx:Canvas>

</mx:Application>

?

你可以通過使用條件運算符來監聽特定的鍵或組合鍵:

?

<?xml version="1.0"?>

<!-- events/TrapQKey.mxml -->

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp();">

<mx:Script><![CDATA[

private function initApp():void {

application.addEventListener(KeyboardEvent.KEY_UP,keyHandler);

// Set the focus somewhere inside the application.

ta1.setFocus();

}

//This function quits the application if the user presses Shift+Q.

private function keyHandler(event:KeyboardEvent):void {

var bShiftPressed:Boolean = event.shiftKey;

if (bShiftPressed) {

var curKeyCode:int = event.keyCode;

if (curKeyCode == 81) { // 81 is the keycode value for the Q key

/* Quit the application by closing the browser using JavaScript.

This may not work in all browsers. */

var url:URLRequest = new

URLRequest("javascript:window.close()");

navigateToURL(url,"_self");

}

}

}

]]></mx:Script>

<mx:TextArea id="ta1" text="Focus here so that Shift+Q will quit the browser."/>

</mx:Application>

?

轉載于:https://blog.51cto.com/flexria/154542

總結

以上是生活随笔為你收集整理的Flex的事件(十四)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。