我有一個幻燈片,加載圖像文件與BulkLoader類從here。當第一圖像被完全加載時,它被添加到MovieClip容器以將其添加到階段..和它被全屏顯示,但是隻有當一個按鈕被點擊:as3等到圖像加載按鈕單擊
fullScreenButton.addEventListener(MouseEvent.CLICK, showFull);
function showFull(e:MouseEvent):void {
stage.addChild(mcSlideHolder);
...
}
加載的圖像與在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);
,並在加載過程:即得到從一開始就被稱爲一個單獨的函數loadAllSlides()
function onFirstSlideLoaded(e:Event):void
{
firstImage = imageLoader.getBitmap(e.currentTarget.id);
currentImage.addChild(firstImage);
mcSlideHolder.addChild(currentImage);
mcSlideHolder.dispatchEvent(new Event("firstImgAdd"));
}
這工作得很好,除非fullScree在圖像完全加載之前單擊nButton,當然沒有任何可見的東西。如何獲得調用showFull()的按鈕單擊事件以等待圖像加載/添加到容器,或者如何再次添加它?什麼是可能/最好的方法?
我試着調度自定義事件「firstImgAdd」,當點擊fullScreenButton時,再次將圖像添加到容器,以及try/catch塊或甚至簡單的if條件,但它們都不起作用,這意味着當點擊按鈕過早時,圖像在加載完成後不會被添加到容器中。 任何幫助表示感謝,提前致謝
您能澄清一點:您是否在談論Flash Player的實際全屏模式?從你展示的代碼中,我無法想象爲什麼你不會點擊按鈕去全屏顯示,然後在加載完成後看到圖像出現(彈出)。您是否在點擊後問如何推遲全屏?如果是這樣,你不能那樣做。 Flash Player的安全性限制要求全屏呼叫在調用堆棧中有一個mouseEvent或keyboardEvent處理程序。 – 2011-05-06 15:11:40
是的,當然:是的,它是關於Flash的實際全屏模式。我用「stage.displayState = StageDisplayState.FULL_SCREEN;」調用全屏模式之後,現在添加了mcSlideHolder的代碼。但仍然沒有成功。不,我不想推遲全屏,只是等待圖像(在後臺加載)完成加載並將其添加到舞臺上以便可見 – hajn 2011-05-06 17:32:29