air开发——flash 与 flex 的小不同(二):flash与flex的dragEvent

上篇我小结了dragEvent的dragIn的使用。

这篇我们就以dragEvent的dragOut的使用来看flash 与 flex的不同。

使用dragOut,首先我们要在程序内有个对象。我以图片为例。

首先要明白,我们要的不是图片本身,而是图片的内容, 即bitmapData对象。

因此:

private varimageData:BitmapData;

private function initHandler():void {

imageData= new BitmapData(image.width, image.height );

imageData.draw(image );

}

然后,我们要拖动图片到本地,则需在mouseDown的时刻触发一下内容:

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

}

实际上,一眼可以看出我将生成的图片命名为img.png.

那么看看不同点是什么?就是PNGEnoder类: Flash内没有这个内。

但是,我们依然可以下载,加入这个类,PNGEncoder这个类我们可以在网上直接搜得到。相当方便,也简单易懂。




转载于:https://www.cnblogs.com/santiago1983/archive/2012/02/11/flash_flex_2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值