Flash CS4 组合框嵌入时不显示

标签 flash combobox flash-cs4

我有一个使用标准 Flash 的 Flash CS4 影片 combobox 。只要我不使用嵌入 HTML 页面的生成的 SWF,此方法就可以正常工作。当我嵌入它时,组合框不会显示,不会调度鼠标事件,就像它不存在一样。但是,如果我切换到全屏,即使我从全屏切换回来,组合框也会出现并正常运行。

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

有人可以提出修复或解决方法吗?

最佳答案

我发现设置 wmode attribute<embed>标记为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);

这似乎有效。

关于Flash CS4 组合框嵌入时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999335/

相关文章:

flash - 将wmode嵌入参数设置为“gpu”时,哪种Flash渲染情况更快?

flash - 如何将 netstream.appendBytes() 用于 http 动态流?

command-line - 从 SWF 中提取命令行?

flash - 如何绘制正弦线图?

r - R中使用tcltk的多个组合框

c++ - 需要调用两次 setter 以强制在 MFC 中刷新 GUI

c# - 为什么在 C# 中,在控件组合框中,我无法更改属性 SelectedItem?

flash - 有非官方的 Flash .FLA 规范吗?

actionscript-3 - 如何将动态加载的图像调整为 Flash (as3)

android - Android 中的动态 Http Streaming 播放实时 Flash 视频