【问题标题】:Setting wmode="transparent" doesn't work with Flex app and SWFObject?设置 wmode="transparent" 不适用于 Flex 应用程序和 SWFObject?
【发布时间】:2026-01-19 06:00:01
【问题描述】:

我正在使用 SWFObject 将 Flex (4.1 SDK) 制作的应用程序嵌入到 HTML 页面中,如下面的代码示例所示:

var swfVersionStr="10.0.0";
var xiSwfUrlStr="playerProductInstall.swf";
var flashvars={};
var params={};
params.quality="high";
params.bgcolor="#FFFFFF";
params.wmode="transparent";
params.menu="false";
params.allowscriptaccess="sameDomain";
params.allowfullscreen="true";
var attributes={};
attributes.id="vp";
attributes.name="vp";
attributes.align="middle";
swfobject.embedSWF("vp.swf","flashContent","624","451",swfVersionStr,xiSwfUrlStr,flashvars,params,attributes);

为什么没有出现 Flash 背景的透明度?

谢谢。

【问题讨论】:

    标签: apache-flex swfobject transparent wmode


    【解决方案1】:

    不错的发现, 我刚刚添加了bgRectFill.alpha = getStyle('backgroundAlpha');

    override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void
    {
        bgRectFill.color=getStyle('backgroundColor');
        bgRectFill.alpha=getStyle('backgroundAlpha');
        super.updateDisplayList(unscaledWidth, unscaledHeight);
    }
    

    【讨论】:

      【解决方案2】:

      可能是因为您指定了背景颜色……

      params.bgcolor="#FFFFFF";
      

      【讨论】:

      • 它总是与指定的一起工作,我已经尝试删除它,清除缓存和刷新但仍然相同。我什至将wmode 参数放在bgcolor 之上,但仍然没有。
      • 它必须是 Flex 4.1 特定的问题。
      【解决方案3】:

      解决了这个问题,显然您需要为您的 spark 应用程序实现自定义皮肤并将矩形的纯色填充的 alpha 设置为 0...

      这是一个需要尽快修复的问题,Flex 团队。 :)

      【讨论】: