2011-10-31 44 views
0

我深化發展這個視頻播放器: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/index.htmlAS3:crossdomain.xml的不工作

在上面的爲例,播放器加載這個啓動圖像,視頻的播放之前,顯示它: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/videos/HF_REEL.jpg

-

在這裏,我再告訴玩家加載相同的圖像,但在另一個領域: http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/index2.html

給出的形象是:http://www.daviddarx.com/HF_REEL.jpg

-

正如你所看到的,它不工作了。 我在Google上搜索,發現我在理論上不得不添加一個crossdomain.xml,以確保沒有安全保護,避免swf從其他域加載圖像。

我這樣把我的不同領域的這兩個文件,告訴SWF可以從所有的*域接受文件: http://www.horsform.com/crossdomain.xml

http://www.daviddarx.com/crossdomain.xml

但它仍然是不工作...你知道什麼是錯的?我錯過了什麼嗎? 預先感謝您的幫助!

戴維斯

回答

1

的RTE實際上告訴你該怎麼做:

策略文件是必需的,但將checkPolicyFile標誌未設置 加載此媒體時。

從AS3幫助:

當調用Loader對象的load()方法,可以指定 上下文參數,這是一個LoaderContext對象。該 LoaderContext類包括三個屬性,讓你定義的加載的內容如何被使用的 背景:

將checkPolicyFile:加載圖像文件 (不是SWF文件)時,僅使用此屬性。爲其他 以外的域中的映像文件指定此文件,而不是包含Loader對象的文件。如果將此 屬性設置爲true,則加載程序將檢查源服務器是否存在 跨域策略文件(請參閱網站控制(跨域策略 文件))。如果服務器授予加載程序域的權限,則加載程序域中SWF文件的動作腳本 可以訪問加載的圖像中的數據 。換句話說,您可以使用Loader.content 屬性獲取對錶示加載圖像的 的Bitmap對象的引用,或者使用BitmapData.draw()方法從加載的圖像訪問像素 。

所以你需要傳遞一個LoaderContext實例與checkPolicyFile標誌設置爲true爲Loader#load方法

喜歡的東西的參數:

var loader : Loader = new Loader(); 
loader.load(new URLRequest('http://www.daviddarx.com/HF_REEL.jpg'), new LoaderContext(true)); 
+0

太好了!感謝您提供非常有效的支持!這只是正常工作:http://www.horsform.com/_WIP/mjf_2011/live/demo_player/_final/index2.html 順便說一下,以便我可能會自己解決更多的問題,什麼是什麼你打電話給RTE?那是否允許你在瀏覽器中看到actionscript錯誤?感謝您的幫助! – daviddarx

+0

RTE是播放swf時引發的運行時錯誤。還有CTE(編譯時間錯誤)在編譯swf時被編譯器拋出。如果您安裝Flash播放器的調試版本,您可以看到RTE的。你可以在這裏找到它們: http://www.adobe.com/support/flashplayer/downloads.html – Creynders