Flash CS4嵌入式组合框未显示

3
我有一个使用标准Flash combobox 的Flash CS4动画。只要不在HTML页面上嵌入SWF,这个组件就可以正常工作。但是,当我将其嵌入HTML页面时,组合框就不显示,也不会分派鼠标事件,就好像它不存在一样。然而,如果我切换到全屏模式,组合框就会出现并正常工作,即使我从全屏模式切换回来。
我认为这是组件、Flash CS4或Flash播放器本身的错误,因为即使是只有组合框的空白动画也会出现这种情况。当我谷歌搜索时,发现有人遇到了同样的问题,但没有解决方案。
有人能提供修复或解决方法吗?
1个回答

4
我发现将<embed>标签中的wmode属性设置为window(之前设置为transparent)可以解决问题。我不知道为什么这会导致组合框出问题(只有组合框有问题,据我所知),但我很高兴解决了这个问题。
编辑:我已经找到了一种解决方法,所以我仍然能够使用透明的wmode。显然,问题在于Flash播放器在wmode transparent时不会分派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);

这似乎有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接