我有一张图片,将通过 Flash 上传两次。此外,我会做一些调整大小和压缩的事情。所以我必须加载数据并创建一个 BitmapData 对象。
_fileRef.addEventListener(Event.Complete, onLoadComplete);
_fileRef.load();
问题是永远不会触发完整事件,这可以从控制台中的日志消息中检查。这种事件触发失败的可能性有哪些?</p>
我的真实代码如下所示:
private function prepareImage():void
{
_compressionFactor = 82;
if(as3_jpeg_wrapper==null)
{
as3_jpeg_wrapper = clibinit.init();
}
_fileRef.addEventListener(Event.COMPLETE, onImageComplete);
_fileRef.load();
}
private var tempLoader:Loader;
private var tempData:ByteArray;
private function onImageComplete(event:Event):void
{
Utils.log("loading data completed");
tempData = event.currentTarget.data;
_fileRef.removeEventListener(Event.COMPLETE,onImageComplete);
tempLoader = new Loader;
tempLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageLoaded);
tempLoader.loadBytes(tempData);
}
事实是日志消息“加载数据完成”从未打印出来。我已经追踪了整个过程,闪光灯卡在这里。函数 prepareImage 通过以下方式调用:
Utils.log("We'll resize & compress the picture to be uploaded");
prepareImage();