全屏模式下的Flash在<embed />中工作,但在<a> tag</a>内不起作用

时间:2011-08-03 13:39:37

标签: javascript html flash lightbox

我有这段代码

<div id="c01" class="hider">
< a href="flash.swf" class="bump">flash</a>
</div>

并在bumpbox(灯箱替代)窗口中显示flash内容。它工作得很好,但flash动画中有一个全屏按钮,它不起作用。另一个按钮(停止动画)工作正常。

我发现,用这个

<embed src="flash.swf" width="100%" height="100%" allowFullScreen="true"> </embed>

全屏按钮工作正常,但自页面加载后flash动画运行,我有大约50个动画,所以我需要一次只运行其中一个。我需要让它可以点击(内部)并同时使用全屏幕按钮。可能吗?谢谢!

2 个答案:

答案 0 :(得分:1)

你遇到的问题实际上来自Mootools。 Mootools有一个名为Swiff的Flash嵌入类,这是BumpBox在链接中传递SWF时使用的。

不幸的是,我认为你要么必须攻击BumpBox或Mootools才能获得全屏权限。

如果查看BumpBox 2.0.1的扩展版本,您将看到第372行附近实例化Swiff的位置:

var obj = new Swiff(content, {
    id: 'video',
    width: maxw-40,
    height: maxh-40,
    container: div
})

您可以传递此处所需的附加参数,如下所示:

var obj = new Swiff(content, {
    id: 'video',
    width: maxw-40,
    height: maxh-40,
    container: div,
    params: {
        allowFullScreen: true
    },
})

如果失败,你将不得不调整Swiff类本身。打开Mootools并搜索Swiff=new Class。这将引导您创建Flash对象的代码。从那里找到params列表应该很容易,它看起来像:

params:{quality:"high",allowScriptAccess:"always",wMode:"window",swLiveConnect:true}

您只需要添加全屏权限:

params:{allowFullScreen:true,quality:"high",allowScriptAccess:"always",wMode:"window",swLiveConnect:true}

答案 1 :(得分:0)

有些浏览器无法在没有Flash容器(嵌入)的情况下打开Flash文件。 您帖子中的嵌入代码很好,将其放在PHP页面上并替换:

src="flash.swf"

<?php echo $_GET['flashurl']; ?>

然后你可以把它作为链接:nameofphpscript.php?flashurl=flash.swf