全屏Flash幻灯片

时间:2011-05-31 01:57:33

标签: javascript flash actionscript-3 fullscreen

之前我曾在一个Flash应用程序上工作,该应用程序将嵌入到100x20的网页中,该应用程序加载了基于XML的按钮图形。单击该按钮后,应用程序将通过AS3全屏显示。

stage.displayState = StageDisplayState.FULL_SCREEN;

这很有效 - 应用程序按预期全屏显示。

今天我需要重新开发应用程序,以便SWF将通过JavaScript启动全屏(以便他们可以将启动功能添加到链接等等)。

我从_click(e:MouseEvent)函数移动了上面的代码,并将其直接放到应用程序文档类的构造函数中。但是,当它嵌入网页时,这不起作用?当我在我的电脑上打开SWF时,它工作正常(直接启动到全屏)。只是不想发生在网页上。

这是我用来加载SWF的JS。

// vars
var xml = <?php echo $_GET["xml"]; ?>;

/**
 * Launch fullscreen flash slideshow
 */
function launch()
{
    var object = '<object width="1" height="1"><param name="allowfullscreen" value="true" />';
    object += '<param name="wmode" value="transparent" /><param name="flashvars" value="xmllocation=http%3A%2F%2Fimagetrack.com.au%2Fsc%2Fsc.xml%3Fid%3D' + xml + '" />';
    object += '<embed width="1" height="1" src="application.swf?xmllocation=http%3A%2F%2Fimagetrack.com.au%2Fsc%2Fsc.xml%3Fid%3D' + xml + '" wmode="transparent" allowfullscreen="true" />';
    object += '</object>';

    var e = $(object);
    var p = $("body");

    p.append(e);
}

这显然只是将对象附加到页面。还有另一种方法可以解决这个问题吗?或者我只是遗漏了一些简单的东西?我猜的原因是全屏被阻止,除非它是用户启动的。

1 个答案:

答案 0 :(得分:2)

这是闪存安全限制。如果没有通过点击事件明确地执行此操作,您绝对无法将Flash启动到全屏。

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c5d.html