0
所以我做了一個拖放應用程序,我可以放在圖像中,它會自動調整大小並保存在桌面上。在Air中加載多張圖片無法正常工作?
但現在我要當有拖多幅圖像做相同的。 這是我堅持......
private function onDrop(e:NativeDragEvent):void
{
trace("Dropped!");
var dropfiles:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
for each (var file:File in dropfiles){
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
switch (file.extension.toLowerCase()){
case "png" :
ldr.load(new URLRequest(file.url));
trace('png');
break;
case "jpg" :
ldr.load(new URLRequest(file.url));
trace('jpg');
break;
case "jpeg" :
ldr.load(new URLRequest(file.url));
trace('jpeg');
break;
case "gif" :
ldr.load(new URLRequest(file.url));
break;
default:
Alert.show("Kies een geldige afbeelding!");
}
}
}
private function completeHandler(event:Event):void {
var ldr:Loader = Loader(event.target.loader);
var b:Bitmap = Bitmap(ldr.content);
var encoder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = encoder.encode(resizeimage(b.bitmapData, 600, 600));
//new FileReference().save(bytes, "abc.png");
}
的問題是,我想在completeHandler()運行在每個ldr.load()之後,但在我的代碼中,它只在每個循環後面運行一次。
有沒有人知道我在做什麼錯在這裏?
順便說一句,這是一個常見的誤解,即向調度程序添加事件偵聽器會創建對調度程序的引用。不過,這是另一種方式。調度器保存對監聽器的引用,並且沒有對調度器的額外引用。 – joshtynjala 2011-04-05 19:57:24