Flash CS4组合框在嵌入时不显示

时间:2010-01-04 12:45:22

标签: flash combobox flash-cs4

我有一部使用标准Flash combobox的Flash CS4电影。这可以正常工作,只要我不使用嵌入在HTML页面上的结果SWF。当我嵌入它时,组合框不会显示,不会发送鼠标事件,就好像它不存在一样。但是,如果我切换到全屏,即使我从全屏切换回来,组合框也会出现并正常运行。

我认为这是组件,Flash CS4或Flash播放器本身的一个错误,因为它也发生在只有组合框的空白电影上。我用谷歌搜索时发现的只有someone with the same problem,但没有解决方案。

有人可以建议修复或解决方法吗?

1 个答案:

答案 0 :(得分:4)

我发现将<embed>标记中的wmode attribute设置为window(之前设置为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);

这似乎有效。