Привет. Задача следующая:
1. Есть массив байт
2. Юзер должен иметь возможность перетащить иконку из приложения в папку и в этой папке нужно создать файл с содержимым этого байтмассива.
На данный момент нашел возожность лишь копировать из мне известного места в место куда перетащил иконку юзер, при этом я не могу знать наверняка когда копирование закончилось(событие есть илшь об окончании драга, но не копирования).

Код AS3:
public function testAir()
{
var spr:Sprite = new Sprite();
spr.graphics.beginFill(0x00000, 0.9);
spr.graphics.drawRect(0,0, 100, 100);
spr.graphics.endFill();
addChild(spr);
spr.addEventListener(MouseEvent.MOUSE_DOWN, onDown)
spr.addEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, handleDragComplete)
spr.addEventListener(NativeDragEvent.NATIVE_DRAG_START, onHandleStart)
spr.addEventListener(NativeDragEvent.NATIVE_DRAG_UPDATE, onUpdate)
spr.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, onDrop)
}
private function onDown(event:Event):void
{
var spr:Sprite = new Sprite();
spr.graphics.beginFill(0xFF000, 0.9);
spr.graphics.drawRect(0,0, 50, 50);
spr.graphics.endFill();
var btmd:BitmapData = new BitmapData(50, 50, true, 0);
btmd.draw(spr);
var imageFile:File = new File(File.applicationDirectory.nativePath + File.separator + "op.jpg");
//это я сначала думал что можно будет массив байт записать, но хрен
var fs:FileStream = new FileStream();
fs.open(imageFile, FileMode.READ);
var ba:ByteArray = new ByteArray();
fs.readBytes(ba);
fs.close();
var fileArray : Array = new Array();
fileArray.push( imageFile );
var transferObject:Clipboard = createClipboard(imageFile);
var dragOptions : NativeDragOptions = new NativeDragOptions();
dragOptions.allowCopy = true;
dragOptions.allowLink = false;
dragOptions.allowMove = true;
NativeDragManager.doDrag(InteractiveObject(event.target), transferObject, null, new Point(0,0), dragOptions);
}
protected function onHandleStart(event:NativeDragEvent):void
{
trace("onHandleStart");
}
protected function onUpdate(event:NativeDragEvent):void
{
//постоянно трейсит во время перетаскивания
//trace("onUpdate");
}
protected function onDrop(event:NativeDragEvent):void
{
trace("onDrop");
}
//это событие происходит не после копирования, а после того как юзер отпустил курсор, это сто процентов
protected function handleDragComplete(event:NativeDragEvent):void {
//ВОТ ЗДЕСЬ Я мечатю получить путь к папке куда юзер перетянул икноку, но нет, это путь к файлу который копируется
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT, ClipboardTransferMode.ORIGINAL_PREFERRED) as Array;
trace("file:", (files[0] as File).nativePath);
trace(event.allowedActions);
trace("eventPhase", event.eventPhase);
trace("dropAction", event.dropAction);
}
public function createClipboard( sourceFile:File):Clipboard
{
var transfer:Clipboard = new Clipboard();
transfer.setData(ClipboardFormats.FILE_LIST_FORMAT, new Array(sourceFile), false);
return transfer;
}
Но это не совсем подходит. В идеале нужно всего лишь узнать куда юзер перетащил иконку, чтобы там создать файл.
Имеет ли кто опыт? Подскажите плиз.