フラッシュで 2 回アップロードされる画像があります。また、サイズ変更と圧縮も行います。そのため、データをロードして 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();