2011-03-30 56 views
4

大家好!允許鼠標事件通過youtube無鉻播放器可靠地泡泡?

我的工作,要求我能夠閱讀和跟蹤在播放Youtube視頻,鼠標移動的原型。基本的代碼複製我的問題歸結爲這個簡單的測試案例:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" 
initialize="{go();}"> 
<mx:VBox> 
    <mx:Label id="test" text=""/> 
    <mx:SWFLoader source="http://www.youtube.com/apiplayer?version=3" /> 
</mx:VBox> 
<mx:Script> 
    <![CDATA[ 
    function go(){ 
    Security.allowDomain("*"); 
    Security.allowInsecureDomain("*"); 
    addEventListener(MouseEvent.MOUSE_MOVE, 
        function(e:MouseEvent){trace(test.text=e.stageX+"")}); 
    } 
    ]]> 
</mx:Script> 
</mx:Application> 

預期的行爲是:

  • YouTube播放器加載
  • 右上角跟蹤X座標標籤鼠標
  • 數量應該在YouTube播放器移動鼠標時更新甚至

到目前爲止,從IDE(在FlashDevelop和FlashBuilder上測試)以及從輸出文件夾手動運行文件時,程序的行爲與預期相同。但是,唉,當我試圖從任何地方運行而不是調試文件夾(不管是在我的電腦上的另一個位置還是在網絡服務器上),Youtube播放器似乎都吃掉了這些事件。

調試時,我不會收到沙箱安全警告(感謝allowDomain(「*」)),但是我一旦將文件從調試文件夾中取出,爲什麼程序會失敗

我會非常欣賞任何線索。請注意,就解決方案而言,如果您有其他地方的工作證明,我願意嘗試一種與閃存不同的技術。

+0

請問有什麼意義?你要通過這樣做來解決什麼問題?另外,你應該設置swf加載器上的applicationDomain與你的應用程序相同,如下所示:'applicationDomain =「{ApplicationDomain.currentDomain}」 – 2011-03-30 16:06:15

+0

我試圖將youtube視頻集成到遊戲原型中,用戶將會請求點擊或拖動給定視頻中的對象。 除此之外,我認爲能正常運行鼠標事件以允許更多正常操作(如拖放操作)會更好嗎? – 2011-03-30 18:04:43

+0

哎呀。再次確保applicationDomain是相同的。它應該工作。 – 2011-03-30 18:28:11

回答

4

好了,所以我回答我自己的答案(我知道...)只讓它記錄的地方,如果有人需要它。

雖然我試過了,有一個與調整安全沙箱設置沒有成功。我甚至嘗試了所有可能的組合,並且沒有骰子。

我沒做什麼,出於絕望,竟是添加鼠標偵聽到Loader.content財產一旦加載完成。它運作得很好。

這是我發現加載應用程序可以安全訪問loadee的鼠標事件而不妨礙其內部鼠標邏輯的唯一地方。

希望它可以幫助別人擺脫這種困境在未來!