这里面临的挑战是:我有一个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