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