0

フラッシュで 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();
4

0 に答える 0