【问题标题】:Flash CS4 combobox not showing when embedded嵌入时不显示 Flash CS4 组合框
【发布时间】:2011-01-01 05:50:16
【问题描述】:

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

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

任何人都可以提出修复或解决方法吗?

【问题讨论】:

    标签: flash combobox flash-cs4


    【解决方案1】:

    我发现将<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);
    

    这似乎有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-12
      • 2011-05-11
      • 1970-01-01
      • 2011-01-15
      • 2011-08-31
      • 2010-12-01
      • 2011-01-28
      • 2011-01-12
      相关资源
      最近更新 更多