国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

23.10.使用本地拖拽(Drag-and-Drop)API

2024-04-27 13:52:33
字體:
來源:轉載
供稿:網友
23.10.1.問題
我想在應用程序內外拖動數據.
23.10.2.解決辦法
添加數據到剪貼板,使用NativeDragManager類管理拖拽操作。
23.10.3.討論
通過本地的drag-and-drop API文件系統和AIR應用程序之間可以進行數據傳輸。當一個拖拽姿勢啟動后,指定格式的數據被添加到剪貼板并傳遞給NativeDragManager的doDrag方法。

你可以注冊事件監聽器監聽NativeDragManager類拖拽操作發出的completion事件。事件對象類型是NativeDragEvent類實例,通過NativeDragEvent.clipboard屬性可訪問剪貼板數據。

當用戶用鼠標選擇了應用程序的某一個元素,即一個拖拽姿勢被啟動。當用戶按住鼠標,操作進入“拖階段”,所有繼承自flash.display.InteractiveObject類的注冊組件都可接受拖拽動作。

當用戶松開鼠標即表示拖拽姿勢完成。啟動拖拽姿勢的組件被認為是“拖動源”,接受拽操作的InteractiveObject實例被認為是“拖拽目標”。

Flex Framework本身就支持應用程序內的拖拽操作,而本地的拖拽API運行在文件系統和AIR程序之間拖拽數據。我們推薦使用Flex FrameWork 拖拽API 。如果你熟悉mx.managers.DragManager 類在Flex 程序內傳輸數據的話, 那么你會發現flash.desktop.NativeDragManager類與此非常相似。有個重要方面需要注意的是兩個類的DragSource對象被添加到DragManager實例中,而Clipboard對象被添加到NativeDragManager實例中。

下面的例子使用NativeDragManager添加一個圖片到剪貼板,并使用拖拽姿勢傳輸數據到文件系統的一個目錄:
+展開
-XML
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="verticalwindowComplete="initHandler();closing="closeHandler();">

<mx:Script>
<![CDATA[
import mx.graphics.codec.PNGEncoder;
private var tempDir:File = File.createTempDirectory();
private var imageData:BitmapData;
private function initHandler():void {
imageData = new BitmapData( image.width, image.height );
imageData.draw( image );
}
private function closeHandler():void {
tempDir.deleteDirectory();
}
private function clickHandler():void {
var transfer:Clipboard = new Clipboard();
transfer.setData( ClipboardFormats.FILE_LIST_FORMAT, [getImageFile()], false);
NativeDragManager.dropAction = NativeDragActions.COPY;
NativeDragManager.doDrag(this ,transfer,imageData);
}
private function getImageFile():File {
var tempFile:File = tempDir.resolvePath( "img.png");
var png:ByteArray = new PNGEncoder().encode( imageData );
var stream:FileStream = new FileStream();
stream.open( tempFile, FileMode.WRITE );
stream.writeBytes( png );
stream.close();
return tempFile
}

]]>
</mx:Script>
<mx:Image id="imagesource="@Embed(source='assets/bigshakey.png')"
buttonMode="trueuseHandCursor="truemouseDown="clickHandler();" />

</mx:WindowedApplication>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中江县| 昭苏县| 夏津县| 奉贤区| 湖口县| 新郑市| 丰镇市| 炉霍县| 登封市| 邹平县| 三门峡市| 磐石市| 宜良县| 石家庄市| 鄂尔多斯市| 临城县| 鸡东县| 龙井市| 万年县| 达拉特旗| 石景山区| 焉耆| 铁力市| 东乌珠穆沁旗| 定西市| 肇源县| 方正县| 新宁县| 衡南县| 宁强县| 桐柏县| 伊吾县| 延吉市| 井陉县| 隆德县| 龙江县| 山西省| 堆龙德庆县| 普宁市| 竹北市| 色达县|