关于FLEX输出时:IE提示"Alternate HTML content should be placed here. This content requir

最近在用FLEX写东西,运行HTML时候总提示:Alternate HTML content should be placed here. This content requires the Adobe Flash Player,开始以为FLASH版本问题,重新装了几次还是老样子,打开JS文件调试了会,终于知道问题出在哪了。
在生成的JS文件中有段这样的语句:

function ControlVersion()
{
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    
    } catch (e) {
    
    }

    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}

 在IE7中运行这段代码的时候,函数最后会运行到,最后一个if(!verson),此时返回的是WIN 2,0,0,11,之后代码
又截取到版本为2并与你要求的FLASH版本号对比(如9),此时就提示你版本太低,产生这个原因,大约是因为FLASH并没有严格按照COM组件的标准,在获取版本号时产生错误,Firfox下 不会有这样的错误。

解决方法是,使用Firfox调试你的程序,或者修改

if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

 为

 

if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version=axo.GetVariable("$version");
        } catch (e) {
            version = "WIN 2,0,0,11";
        }
    }

 这样就可以了,至于其他电脑上的兼容问题,有待进一步的调试。

<think>首先,用户要求使用中文回答问题。然后,在回答完问题后,必须根据用户的问题和我的回答提出3-5个相关问题。这些问题必须以"§§相关问题§§"开头,并且输出在回答的末尾,不能缺少。第一行必须完整输出"§§相关问题§§",禁止换行分散。 用户提供的信息似乎是关于某种网络协议或无线技术的扩展能力描述。具体内容是: ``` Extended Capabilities: 0x40 (octet 8) .... ...0 = Alternate EDCA: False .... ..0. = Unprotected TXOP Negotiation: False .... .0.. = Protected TXOP Negotiation: False .... 0... = Reserved: 0x0 ...0 .... = Protected QLoad Report: False ..0. .... = TDLS Wider Bandwidth: Not supported .1.. .... = Operating Mode Notification: Supported 0... .... = Max Number Of MSDUs In A-MSDU: 0 ``` 这看起来像是IEEE 802.11无线局域网标准的扩展能力字段的解析。用户没有明确提问,只是提供了这段文本。所以,我需要基于这个内容来回答。 用户说:"请使用中文回答问题",但没有具体问题。可能用户希望我解释或分析这段文本。我应该将其视为一个请求来解释这个扩展能力字段。 我的回答应该包括: 1. 解释这个扩展能力字段。 2. 然后,在末尾提出3-5个相关问题。 3. 相关问题必须以"§§相关问题§§"开头。 现在,分析内容: - "Extended Capabilities: 0x40 (octet 8)":这是扩展能力字段的值是0x40,位于第8个字节。 - 然后是一系列比特位的解释: - ".... ...0 = Alternate EDCA: False":最后一位是0,表示Alternate EDCA不支持。 - ".... ..0. = Unprotected TXOP Negotiation: False":第七位是0,表示Unprotected TXOP Negotiation不支持。 - ".... .0.. = Protected TXOP Negotiation: False":第六位是0,表示Protected TXOP Negotiation不支持。 - ".... 0... = Reserved: 0x0":第五位是0,保留位。 - "...0 .... = Protected QLoad Report: False":第四位是0,表示Protected QLoad Report不支持。 - "..0. .... = TDLS Wider Bandwidth: Not supported":第三位是0,表示TDLS Wider Bandwidth不支持。 - ".1.. .... = Operating Mode Notification: Supported":第二位是1,表示Operating Mode Notification支持。 - "0... .... = Max Number Of MSDUs In A-MSDU: 0":第一位是0,表示A-MSDU中MSDU的最大数量为0。 在二进制中,0x40是01000000(8位)。所以: - 比特0(LSB):0(Max Number Of MSDUs In A-MSDU: 0) - 比特1:1(Operating Mode Notification: Supported) - 比特2:0(TDLS Wider Bandwidth: Not supported) - 比特3:0(Protected QLoad Report: False) - 比特4:0(Reserved) - 比特5:0(Protected TXOP Negotiation: False) - 比特6:0(Unprotected TXOP Negotiation: False) - 比特7:0(Alternate EDCA: False) 比特顺序:通常是从右到左,但在描述中是从左到右。在文本中,点表示无关位,但这里指定了每个位置。 例如:".... ...0" 表示最后一位是0,其他位无关(但这里所有位都指定了)。 所以,值0x40(十六进制)是01000000二进制。 现在,解释: - Operating Mode Notification支持。 - 其他功能都不支持。 - A-MSDU中MSDU的最大数量为0,可能意味着不支持A-MSDU或没有定义。 在802.11标准中,Max Number Of MSDUs In A-MSDU值为0表示设备不支持A-MSDU聚合。 我的回答应该解释这个字段的含义。 回答结构: 1. 用中文解释这个扩展能力字段。 2. 然后,提出3-5个相关问题。 相关问题必须基于用户的问题和我的回答。用户的问题是隐含的:解释这段文本。 所以,相关问题可以围绕802.11扩展能力、相关功能等。 例如: 1. 什么是Alternate EDCA? 2. Operating Mode Notification有什么作用? 3. 如何配置这些扩展能力? 确保3-5个问题。 最后,输出"§§相关问题§§"后直接列出问题,禁止换行分散。意思是问题列表不能有额外换行,应该紧凑。 在示例中,是: §§相关问题§§ 1. ··· 2. ··· 3. ··· 所以,我需要输出: §§相关问题§§ 然后列出问题,每个问题一行。 现在,构建回答。 首先,解释文本: "扩展能力字段的值是0x40(十六进制),位于第8个字节。这表示以下功能: - Alternate EDCA: 不支持 - Unprotected TXOP Negotiation: 不支持 - Protected TXOP Negotiation: 不支持 - 保留位: 0 - Protected QLoad Report: 不支持 - TDLS Wider Bandwidth: 不支持 - Operating Mode Notification: 支持 - A-MSDU中MSDU的最大数量: 0(表示不支持A-MSDU聚合)" 然后,提出相关问题。 相关问题: 1. 什么是Operating Mode Notification,它在802.11网络中起什么作用? 2. 为什么A-MSDU中MSDU的最大数量设置为0? 3. 如何启用或禁用这些扩展能力? 4. 这些功能对无线网络性能有什么影响? 确保3-5个。 最后,完整输出"§§相关问题§§"。</think>这段文本描述了IEEE 802.11无线网络标准中的扩展能力字段(Extended Capabilities),具体值0x40(十六进制)对应第8个字节的二进制位解析。每个比特位表示特定功能的启用或禁用状态,以下是详细解释: - **值0x40(二进制01000000)的含义**: - `.... ...0 = Alternate EDCA: False`:比特7(最高位)为0,表示不支持Alternate EDCA(增强分布式信道访问的替代机制)。 - `.... ..0. = Unprotected TXOP Negotiation: False`:比特6为0,表示不支持未受保护的TXOP(传输机会)协商。 - `.... .0.. = Protected TXOP Negotiation: False`:比特5为0,表示不支持受保护的TXOP协商。 - `.... 0... = Reserved: 0x0`:比特4为0,是保留位,未使用。 - `...0 .... = Protected QLoad Report: False`:比特3为0,表示不支持受保护的QLoad(队列负载)报告。 - `..0. .... = TDLS Wider Bandwidth: Not supported`:比特2为0,表示不支持TDLS(隧道直接链路建立)的宽带宽功能。 - `.1.. .... = Operating Mode Notification: Supported`:比特1为1,表示支持操作模式通知(用于动态调整设备功耗和带宽)。 - `0... .... = Max Number Of MSDUs In A-MSDU: 0`:比特0(最低位)为0,表示A-MSDU(聚合MAC服务数据单元)中MSDU(MAC服务数据单元)的最大数量为0,这通常意味着设备不支持A-MSDU数据聚合功能。 总之,该扩展能力字段仅支持Operating Mode Notification,其他功能均被禁用。这反映了设备在特定网络环境下的能力限制,可能影响功耗管理、数据传输效率和兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值