2011-05-31 114 views
1

此前我曾參與過一個Flash應用程序,該應用程序將嵌入到100x20的網頁中,該網頁加載了基於XML的按鈕圖形。點擊按鈕後,應用程序將通過AS3全屏顯示。全屏Flash幻燈片

stage.displayState = StageDisplayState.FULL_SCREEN; 

這很好用 - 應用程序按預期全屏顯示。

今天,我需要重新開發應用程序,以便SWF將通過JavaScript啓動全屏(以便他們可以將啓動功能添加到鏈接以及什麼)。

我將上述代碼從​​函數中移出,並將其直接放入應用程序文檔類的構造函數中。但是,當它嵌入到網頁中時,這不起作用?當我在PC上打開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); 
} 

這顯然只是將對象追加到頁面。我還有另外一種方法可以解決這個問題嗎?或者我只是想念一些簡單的東西?我猜測原因是全屏幕被阻止,除非它是用戶發起的。

回答

2

這是一個Flash安全限制。如果沒有明確地點擊事件,你絕對不能將Flash啓動到全屏。

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

+0

是否有任何(甚至荒謬)的方式來解決這個問題?比如將SWF放在鼠標下面,當你點擊一個鏈接時,它就像點擊SWF(我不知道)一樣。 +1鏈接,謝謝。 – Marty 2011-05-31 02:12:58

+0

不幸的是沒有。 Adobe非常重視這種安全性。想象一下你訪問一個網站的世界,全屏同性戀色情廣告只是爲了訪問該網站而接管你的電腦。害怕! – 2011-05-31 02:16:47

+0

的確如此,儘管這仍然是用戶通過點擊發起的 - 這不僅僅是點擊SWF。 – Marty 2011-05-31 02:17:37