控制外傳 URL 存取Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本 外傳指令碼編寫和 URL 存取 (透過使用 HTTP URL、mailto: 等等) 是透過使用下列 API 來達成:
針對從本機檔案系統載入的內容,只有在程式碼和包含網頁 (如果有的話) 位於本機信任或 AIR 應用程式安全執行程序時,才能成功呼叫這些方法。如果內容在具有網路的本機或具有檔案系統的本機安全執行程序中,呼叫這些方法就會失敗。 針對不在本機載入的內容,所有這些 API 都可以與內嵌的網頁通訊 (取決於如下所述的 AllowScriptAccess 參數的值)。flash.net.navigateToURL() 函數有額外功能可與任何已開啟的瀏覽器視窗或影格通訊,而不只是 SWF 檔所嵌入的網頁。如需有關此函數的詳細資訊,請參閱使用 navigateToURL() 函數。 載入 SWF 檔之 HTML 程式碼中的 AllowScriptAccess 參數可控制是否能從 SWF 檔之內執行外傳 URL 存取。在 PARAM 或 EMBED 標籤之內設定此參數。如果沒有為 AllowScriptAccess 設定任何值,SWF 檔和 HTML 網頁只有在都是來自相同的網域時才能進行通訊。 AllowScriptAccess 參數可以有以下其中一個可能值:"always"、"sameDomain" 或 "never"。
以下是在 HTML 網頁中設定 AllowScriptAccess 標籤以允許傳出 URL 存取至不同網域的範例: <object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'> <param name='AllowScriptAccess' value='always'/> <param name='src' value=''MyMovie.swf'/> <embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/> </object> 使用 navigateToURL() 函數除了上述所討論由 allowScriptAccess 參數指定的安全設定以外,navigateToURL() 函數有第二個選擇性的參數 - target。target 參數可以用來指定 HTML 視窗或影格的名稱,以便傳送 URL 要求。這種要求也套用了其他安全性限制,而其限制則取決於是否已使用 navigateToURL() 做為指令碼或非指令碼陳述式。 若為指令碼陳述式,例如 navigateToURL("javascript: alert('Hello from Flash Player.')"),則套用下列規則。
若為非指令碼陳述式 (例如 HTTP、HTTPS 和 mailto:,如果套用下列所有條件,則要求會失敗:
如需詳細資訊如需外傳 URL 存取的詳細資訊,請參閱「適用於 Adobe Flash Platform 的 ActionScript 3.0 參考」中的下列項目:
|
|