這裏面臨的挑戰是:我有一個Flash電影,它將嵌入到一個使用未知DOM ID的頁面中,我希望能夠在JS函數中識別/存儲回調。JavaScript函數可以檢測哪個Flash DOM對象調用它?
我理想中的用戶流量將是:
- 用戶點擊暴扣。
- Flash暫停任何動畫/視頻/聲音等。
- Flash調用注入的JS函數來顯示覆蓋頁面的覆蓋體驗。
- 當用戶關閉重疊體驗時,將調用Flash對象上的回調方法。
- Flash繼續播放。
問題是,當AS3使用ExternalInterface.call(「functionName」,args ...)方法時,似乎沒有觸發的DOM事件,因此無法分辨哪個對象稱爲JS函數,因此具有「registerMe()」函數似乎不起作用。基本上,注入的JS函數無法確定調用哪個DOM對象,因爲Flash對象的ID是未知的。
[UPDATE] 事實證明,SWF可以使用loaderInfo.url來確定自己的url。我將這些信息傳遞給啓動覆蓋體驗的腳本,以便將來可以與所有應用程序/ x-shockwave-flash DOM對象進行比較。當找到匹配項時,這就是調用的SWF。有沒有人看到這個邏輯的缺陷? (我不像使用JS那樣精通JS)
我有時會爲了讓Flash和JS一起工作而做噩夢。 – sdleihssirhc 2011-05-20 23:49:42
在頁面上找到所有的SWF文件,並嘗試每個SWF文件上的回調函數總是有蠻力的方法,但這樣做會讓我感到冒險和不負責任,所以它並不是真的在桌面上。 – 2011-05-21 00:23:56
你有沒有控制瑞士法郎? – 2011-05-21 03:05:21