1

フラッシュ インターフェイス ファイルがあり、プリローダーを使用して外部 SWFS をロードしようとしています。私の問題は、swf を再生しようとする前にプリローダーが 100% に達しないことです。プリローダーが表示され、パーセンテージまでカウントされて消えます。次に、ロードが完了するまで、最初のフレームで数秒間 (10 秒以上かかることもあります!)、swf がハングします。それは最終的に再生を開始します。ローダーが到達するパーセンテージは完全にランダムです。ある時は 40% に達し、次は 7% しかないかもしれません。

「visloader」と呼ばれるステージ上の空のmovieClipに外部swfsをロードしています。

ここに私のローダーコードがあります:

loader= new SWFLoader("nameOfSlide.swf", {container:visloader, autoPlay:false, onProgress:progressHandler, onComplete:completeHandler});

loader.load();

そして、ここに私の進歩と完全な機能があります:

//--------------PROGRESS HANDLER----------------------------------------------------------------
function progressHandler(e:Event):void{
    //set alpha of loading animation to 1 so it is visible
    progClip.alpha = 1;
    progClip.loadPct.text = "" + Math.floor((loader.bytesLoaded/loader.bytesTotal)*100) + "%";
}

//--------------COMPLETE HANDLER-----------------------------------------------------------------

function completeHandler(e:Event):void{
    //hide the preloader animation
    progClip.alpha = 0;
    //myClip was created in the variables section above to hold the loaded swf
    //must use 'rawContent' to get control over the swf (play/pause, etc...)
    myClip = e.target.rawContent;       

    myClip.play();
}

「progClip」はステージ上のムービークリップで、回転する円と「loadPct」というテキスト フィールドがあります。

ロードされている外部 SWFS はかなり大きいです。5 MB を超えるものもあります。それが重要かどうかはわかりません。ファイルがわずかに小さい別のクライアントにまったく同じプリローダーを使用しましたが、問題はありませんでした。私は完全に途方に暮れています。

これは以前に尋ねられたことはないと思います。フォーラムを検索しましたが、何も思いつきませんでした。うまくいけば、ここにいる誰かが私が話していることを知っているでしょう.

前もって感謝します!

4

1 に答える 1

0

SWFLoaderが完全なイベントを開始するのが早すぎて、クラス自体を見て理由がわからない場合は、progressHandler、EnterFrame、またはタイマーのいずれかで、loader.bytesTotal==loaderの場合を確認してみてください。 .bytesLoaded。その場合は、関連するリスナーを削除して、そこから移動します。

私が知っているちょっとしたハックですが、SWFLoaderが正しく機能しない場合は、クラスを修復するか、別のライブラリを入手してください。私は今それを自分で見るつもりです、それまでの間、これが役立つ/うまくいくことを願っています!

于 2013-01-23T20:38:37.533 に答える