ここから BulkLoader クラスで画像ファイルをロードするスライドショーがあります。最初の画像が完全にロードされると、ステージに追加するために MovieClip コンテナーに追加されます。ボタンがクリックされた場合のみ、フルスクリーンで表示されます。
fullScreenButton.addEventListener(MouseEvent.CLICK, showFull);
function showFull(e:MouseEvent):void {
stage.addChild(mcSlideHolder);
...
}
最初から呼び出される別の関数 loadAllSlides() で BulkLoader を使用して画像をロードします。
imageLoader = new BulkLoader("imgLoader");
imageLoader.add(new URLRequest(paths[0]), {id:"slide_0});
imageLoader.get("slide_0).addEventListener(Event.COMPLETE, onFirstSlideLoaded);
imageLoader.start(1);
そして、読み込みプロセス中:
function onFirstSlideLoaded(e:Event):void
{
firstImage = imageLoader.getBitmap(e.currentTarget.id);
currentImage.addChild(firstImage);
mcSlideHolder.addChild(currentImage);
mcSlideHolder.dispatchEvent(new Event("firstImgAdd"));
}
画像が完全に読み込まれる前に fullScreenButton がクリックされない限り、これは正常に機能し、もちろん何も表示されません。画像がコンテナにロード/追加されるまで待つために showFull() を呼び出すボタン クリック イベントを取得するにはどうすればよいですか、または再度追加するにはどうすればよいですか? 可能な/最良のアプローチは何ですか?
fullScreenButton がクリックされたときにコンテナに画像を再度追加するカスタム イベント「firstImgAdd」をディスパッチしてみました。また、try/catch ブロックまたは単純な if 条件を使用しても機能しませんでした。つまり、画像が取得されません。ボタンのクリックが早すぎると、読み込みが完了した後にコンテナに追加されます。どんな助けでも大歓迎です、事前に感謝します