我有一個應用程序需要在一系列行中呈現大約100個閃存圖(以及其他DOM東西),這些行垂直地延伸超出當前可見窗口 - 換句話說,用戶必須向下滾動才能看見所有不同的圖表。Flash SWF不能初始化直到可見 - 我能強制它們初始化嗎?
此應用程序也是動態的,當用戶更改DOM中的值(頁面上的任何位置)時,它需要同時將該更改傳播到所有Flash圖形。
因此,我設置了所有的externalInterface回調函數,並且小心不要讓任何JS開始執行,直到重要的「flashIsReady」調用,並且......直到我試圖更新()新數據。
這是行爲: - 所有的swfs加載(最初)在兩個IE/Fox =好。 - 用新內容在IE中更新swf但不在Fox中=不好 - 用新內容在Fox中更新swfs - 只有IF--我滾動到頁面底部,然後回到頂部 - 之前 - 我觸發了更新()。
然後我開始追蹤每次swf調用JS來說「flash已準備就緒」,並且我意識到,Firfox只會在swf變得可見時呈現swfs。說實話 - 這很好,實際上,我很確定IE也這樣做。但問題是,Firefox不僅不初始化swf,Firefox甚至不會承認swf存在(在onload後期望),如果尚未可見的話。
而且證據是,你得到JS錯誤說:
「[FlashDOMID] .FlashMethod不是一個函數」。
然而,向下滾動了一下,等到它的可見光和突然的軌跡開始照亮了
「Flash就緒」,「Flash就緒」,「Flash就緒」,一旦他們都準備好了,一切工作正常。
有人告訴我,FF不會初始化swf,直到看到 - 我可以強制它嗎?如果您需要,我可以發佈代碼...但它很沉重(很難從其餘的相關內容中刪除),如果可能的話,我想避免它(爲了你的緣故)。
問題很簡單 - 你有過這種情況嗎?如果是的話,你找到了解決方案嗎?現在有沒有人如何強制一個不可見的swf初始化?多謝你們。
很好的回答,爲我工作:) – 2010-12-07 03:43:23