XML を読み込み、各スライドに画像や SWF などの複数のアセットを含めることができる一種のスライドショーをセットアップするアプリがあります。すべてを (Apache 経由で) 直接ロードするlocalhost
と、SWF は自動再生されませんが、Charles を使用してローカルホストへの速度を調整すると、SWF のロードが完了する前、および SWF を含むスライドが表示される前に再生が開始されます。
でローダーを作成しています
var loader:MovieClipSWFLoader = new MovieClipSWFLoader();
loader.smoothBitmapContent = true;
loader.autoLoad = true;
loader.scaleContent = false;
loader.trustContent = true;
loader.autoStop = true;
loader.maintainAspectRatio = true;
loader.showBusyCursor = false;
loader.x = data.@posX;
loader.y = data.@posY;
loader.width = data.@width;
loader.height = data.@height;
loader.source = (new URLRequest(data.@url)).url; // Using URLRequest because data contains relative URLs, and the loader doesn't like that (thinks it's a path maybe?)
wheredata
は、アプリケーションが知る必要がある内容を含む短い XML フラグメントです。例は<swf posX="10" posY="50" width="100" height="100" url="swfs/1.swf"/>
この特定の SWF には、フレーム 9 で再生されるサウンドがあり、SWF がステージ上で表示される前にバックグラウンドで再生されます。SWF の読み込み速度に関係なく、アプリが SWF を表示するようになると、想定どおりに機能します。
autoLoad
false に設定して手動で呼び出すことも試みましload()
たが、それでも発生します。呼び出しだけでなく、効果gotoAndStop(1)
もgotoFirstFrameAndStop()
ありません。
trace
発生するイベントにいくつかの -call を追加すると、 ,が得られEvent.OPEN
、その後、残りのイベントの間に再生され、 で終了します。ProgressEvent.PROGRESS
Event.INIT
ProgressEvent.PROGRESS
HTTPStatusEvent.HTTP_STATUS
Event.COMPLETE
アプリは Flex 4.6 でコンパイルされ、Flash Player 11.7.700.169 でテストされています