2010-01-04 21 views
3

我有一個使用標準Flash的Flash CS4電影combobox。這工作正常,只要我不使用HTML頁面上嵌入的結果SWF。當我嵌入它時,組合框不顯示,不分派鼠標事件,就好像它不存在一樣。但是,如果切換到全屏模式,即使從全屏切換回來,組合框也會正常顯示並正常工作。嵌入式Flash CS4組合框未顯示

我認爲這是一個組件,Flash CS4或Flash播放器本身的錯誤,因爲它也發生在只有組合框存在的空電影中。我在Google搜索時發現的所有內容都是someone with the same problem,但沒有解決方案。

任何人都可以提出解決方法或解決方法?

+0

你可以上傳一個例子嗎 – Josh 2010-01-04 15:06:35

回答

4

我發現,在<embed>標籤設置wmode attributewindow(它被設置爲transparent之前)解決了這個問題。爲什麼這會導致組合框出現問題(只是組合框,afaict),我不知道,但我很高興我解決了這個問題。

編輯:我在代碼found a workaround,所以我仍然能夠使用透明的wmode。顯然,問題在於Flash播放器在wmode透明時不會派發Event.RENDER事件。訣竅是在關鍵時刻手動分發該事件。這是我的解決方案:

private function renderStage(e:Event=null){ 
stage.dispatchEvent(new Event(Event.RENDER)); 
} 

myComboBox.addEventListener(ListEvent.ITEM_CLICK, renderStage); 
myComboBox.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, renderStage); 
myComboBox.addEventListener(ListEvent.ITEM_ROLL_OUT, renderStage); 
myComboBox.addEventListener(ListEvent.ITEM_ROLL_OVER, renderStage); 
myComboBox.addEventListener(Event.CHANGE, renderStage); 

這似乎工作。