これを修正する方法がわからないので、これについて本当に助けが必要です!:/
ここで問題が発生しました。
私のアプリケーションは、オフラインとオンラインの両方で私のコンピューターで正常に動作しています (当社の Web サーバーにアップロードされたフラッシュ)。IE と Firefox の両方で問題なく動作します。
ただし、一部のユーザーは IE での実行に問題がありますが、Firefox はまだ問題ありません..
アプリ自体は機能しますが、一部のフレームを BitmapData にバッファリングしようとするとエラーが発生します。
そのため、Firefox ではうまく機能します。IE(私のコンピューター上)では、うまく機能します。IE (他のコンピューター) では機能せず、このエラーがキャストされます。つまり、関数が最後に実行されるまで、すべて正常に機能します。(プログレスバーを更新できるようにするために、このように実行されます。for ループを 180 に設定すると、完了するまですべてがフリーズします。そのため、10 と 10 を実行します。)
私はここで完全に立ち往生しているので、これに関する助けは素晴らしいでしょう...私はビットマップデータのサイズを追跡しました.エラーの時点で、それは1920x1080であるはずです.
これは失敗するコードです:
fpsoSWFBuffer = new BitmapData(fpsoMC.width, fpsoMC.height, false, 0x00ff0000);
そして、これはコードが配置されている関数全体です。
public function bufferFpsoImages(evt:TimerEvent):void{
for (var i:int = 0; i<10; i++){
fpsoMC.gotoAndStop(currentFpsoFrame);
fpsoSWFBuffer = new BitmapData(fpsoMC.width, fpsoMC.height, false, 0x00ff0000);
fpsoSWFBuffer.draw(fpsoMC);
fpsoImgArray[currentFpsoFrame] = fpsoSWFBuffer;
currentFpsoFrame++;
}
if (currentFpsoFrame <= (totImg360-10)){
// Still buffering frames //
myLoadingPanel.setBufferProg(currentFpsoFrame);
var fpsoTimer:Timer = new Timer(1,1);
fpsoTimer.addEventListener(TimerEvent.TIMER_COMPLETE, bufferFpsoImages);
fpsoTimer.start();
}else{
// All frames buffered //
currentFpsoFrame = 0;
fpsoLoaded = true;
fpsoLoading = false;
ncFPSO.removeElement(myLoadingPanel);
myLoadingPanel = null;
var fpsoBitmap:Bitmap = new Bitmap(fpsoImgArray[0]);
fpsoBitmap.smoothing = true;
fpsoImage.source = fpsoBitmap;
}
}
編集:どこで失敗したかを知ることができるように、いくつかのデバッグ機能を追加しました。(デバッグ中に機能するため、リアルタイムバージョンをオンラインでデバッグする必要があります)。
これは私が得るものです:
ErrorID=2015
ErrorMessage=Error #2015
ErrorPos=fpsoSWFBuffer = new BitmapData(1920, 1080, false, 0x00ff0000);
CurrentFpsoFrame=168
Position in For Loop=8
EDIT2:そして、これがFlash Builder内で最終的に得たエラーメッセージです。だから今ここでもクラッシュしています.. =/
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData/ctor()
at flash.display::BitmapData()
at Main/bufferTemplateImages()[E:\Workspace - Flash Builder\vCog Workspace\vCog Communicator 3.0\src\Main.mxml:461]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.utils::Timer/tick()