大家好!
我正在开发一个原型(prototype),该原型(prototype)需要我能够阅读和跟踪正在播放的 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>
预期的行为是:
到目前为止程序从 IDE 运行时行为符合预期 (在 FlashDevelop 和 FlashBuilder 上测试过),甚至在从输出文件夹手动运行文件时也是如此。但是,唉,当我尝试从调试文件夹以外的任何地方运行它时(无论是我计算机上的另一个位置还是网络服务器上的其他位置),Youtube 播放器似乎都吃掉了这些事件。
调试时我没有收到沙盒安全警告(感谢allowDomain(“*”)),但是一旦您将文件从调试文件夹中取出,我就无法理解程序为什么会失败。
我会非常感谢任何线索。请注意,就解决方案而言,如果您有证据证明它可以在其他地方工作,我愿意尝试与闪存不同的技术。
最佳答案
好的,所以我正在回答我自己的答案(我知道...),只是为了在有人需要时将其记录在某处。
尽我所能,调整安全沙箱设置没有成功。我什至尝试了所有可能的组合,没有骰子。
出于绝望,我所做的实际上是将鼠标监听器添加到 Loader.content
加载完成后的属性。它运作良好。
这是我发现加载应用程序可以安全地访问加载者的鼠标事件而不妨碍其内部鼠标逻辑的唯一地方。
希望它可以帮助其他人在 future 摆脱困境!
关于apache-flex - 允许鼠标事件通过 youtube 无 Chrome 播放器可靠地冒泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482380/