可以禁用flash元素吗?

时间:2009-10-23 01:44:50

标签: html flash

我正在尝试做一些与众不同的事情。我保证它有目的。我90%肯定无法完成,但想与天才仔细检查。

是否有可能在页面中有一个object / embeded .swf,让它显示,但不允许与它进行任何交互。举个例子,你能以某种方式改变youtube嵌入代码来显示播放器,但根本不允许与它进行任何交互吗?

我搜索了flash的变量列表,但没有看到任何可以执行此操作的内容。

由于

4 个答案:

答案 0 :(得分:3)

使用分层方法:将div元素放在flash对象的顶部,使其大小相同且透明。就这样。不需要JavaScript。为了让IE6 / 7/8高兴,这当然不起作用,所以我们添加一个技巧:背景和零不透明度。您可能希望在单独的文件中添加仅IE的CSS以防止CSS失效。

重要提示:要使其发挥作用,wmode必须设置为opaque(如前面提到的TheBrain所述),父div必须有一个位置设置后,孩子div必须拥有position:absolute和Flash动画的width / heightopacityfilterbackground-color仅适用于IE6 / 7/8兼容性。代码as-is跨浏览器工作(为清楚起见省略了一些细节),并且demonstrated on this page完整。

**更新:**必须设置父div元素的宽度和高度,以防止某些未覆盖的边框进入。默认情况下,div为100%宽度。 IE添加了左边距,FF为flash动画添加了下边距。通过明确设置维度,这将按预期工作。要正确放置盖子,请更改盖子div的颜色和不透明度。此更改也在demo page

中更新
<div style="position:relative;width:728px;height:90px;">
    <div style="position:absolute;
          width:728px;height:90px;
          background-color:white;
          opacity:0;filter: alpha(opacity=0);">
        &nbsp;
    </div>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
        width="728" height="90">
        <... params etc ...>
        <param name="wmode" value="opaque" />

        <embed width="728" height="90"
            type="application/x-shockwave-flash"
            wmode="opaque"
            etc-params=xyz>
        </embed>
    </object>
</div>

答案 1 :(得分:0)

是的,你可以。你可以将你的swf嵌入div中并使用div标签来捕获所有点击/键盘事件并阻止它们传播到flash。我现在没有实际的代码,但您可以使用“禁用右键单击页面”模型并对其进行一些更改以处理所有事件+使其在您的div.id上工作,而不是在整个页面上。

并且不要忘记你需要闪存使wmode = opaque才能工作

答案 2 :(得分:0)

Youtube本身可以选择嵌入没有控件的视频。查看Chromeless player

Iirc你必须将version = 3作为参数传递给youtube网址。

答案 3 :(得分:0)

Youtube和Adobe刚刚推出了一个新的AS3 API,用于在YouTube中嵌入YouTube视频。

您应该查看以下链接:这个链接指导您如何设置AS3:RIA CODES: YouTube Chromeless Player AS3 API