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

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

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

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

你可以注冊(cè)事件監(jiān)聽(tīng)器監(jiān)聽(tīng)NativeDragManager類拖拽操作發(fā)出的completion事件。事件對(duì)象類型是NativeDragEvent類實(shí)例,通過(guò)NativeDragEvent.clipboard屬性可訪問(wèn)剪貼板數(shù)據(jù)。

當(dāng)用戶用鼠標(biāo)選擇了應(yīng)用程序的某一個(gè)元素,即一個(gè)拖拽姿勢(shì)被啟動(dòng)。當(dāng)用戶按住鼠標(biāo),操作進(jìn)入“拖階段”,所有繼承自flash.display.InteractiveObject類的注冊(cè)組件都可接受拖拽動(dòng)作。

當(dāng)用戶松開(kāi)鼠標(biāo)即表示拖拽姿勢(shì)完成。啟動(dòng)拖拽姿勢(shì)的組件被認(rèn)為是“拖動(dòng)源”,接受拽操作的InteractiveObject實(shí)例被認(rèn)為是“拖拽目標(biāo)”。

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

下面的例子使用NativeDragManager添加一個(gè)圖片到剪貼板,并使用拖拽姿勢(shì)傳輸數(shù)據(jù)到文件系統(tǒng)的一個(gè)目錄:
+展開(kāi)
-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>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中江县| 北宁市| 武宣县| 安溪县| 沈阳市| 鄂托克旗| 琼中| 鹰潭市| 株洲县| 南部县| 博野县| 昌吉市| 繁昌县| 万荣县| 思南县| 远安县| 莫力| 正阳县| 耿马| 潞城市| 安吉县| 邓州市| 弥勒县| 阳泉市| 牡丹江市| 汶川县| 夏河县| 拜城县| 海口市| 临安市| 卓资县| 云龙县| 武安市| 临湘市| 深州市| 金门县| 綦江县| 翁源县| 金湖县| 吉木萨尔县| 泰兴市|