apache-flex - 允许鼠标事件通过 youtube 无 Chrome 播放器可靠地冒泡?

标签 apache-flex actionscript-3 youtube youtube-api

大家好!

我正在开发一个原型(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>

预期的行为是:
  • Youtube 播放器加载
  • 右上角的标签跟踪鼠标的 X 坐标
  • 即使将鼠标移到 Youtube 播放器上,该数字也会更新

  • 到目前为止程序从 IDE 运行时行为符合预期 (在 FlashDevelop 和 FlashBuilder 上测试过),甚至在从输出文件夹手动运行文件时也是如此。但是,唉,当我尝试从调试文件夹以外的任何地方运行它时(无论是我计算机上的另一个位置还是网络服务器上的其他位置),Youtube 播放器似乎都吃掉了这些事件。

    调试时我没有收到沙盒安全警告(感谢allowDomain(“*”)),但是一旦您将文件从调试文件夹中取出,我就无法理解程序为什么会失败。

    我会非常感谢任何线索。请注意,就解决方案而言,如果您有证据证明它可以在其他地方工作,我愿意尝试与闪存不同的技术。

    最佳答案

    好的,所以我正在回答我自己的答案(我知道...),只是为了在有人需要时将其记录在某处。

    尽我所能,调整安全沙箱设置没有成功。我什至尝试了所有可能的组合,没有骰子。

    出于绝望,我所做的实际上是将鼠标监听器添加到 Loader.content加载完成后的属性。它运作良好。

    这是我发现加载应用程序可以安全地访问加载者的鼠标事件而不妨碍其内部鼠标逻辑的唯一地方。

    希望它可以帮助其他人在 future 摆脱困境!

    关于apache-flex - 允许鼠标事件通过 youtube 无 Chrome 播放器可靠地冒泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482380/

    相关文章:

    apache-flex - 有没有办法标准化/零点SVG路径数据?

    apache-flex - AS3 中的多维向量

    html - 如何将Facebook分享门添加到Youtube视频

    javascript - Flash 和 javascript 外部接口(interface)安全

    html - 如何修复HTML中的YouTube实时聊天

    android - 如何以图片模式在我的 Activity 图片中播放youtube视频

    apache-flex - 如何在运行时从 xsd 模式转到 Actionscript 对象 (Flex)?

    mysql - 在 Flex 中格式化文本

    android - Adobe AIR 3 native 扩展 - Android res 文件夹未包含在 .ane 文件中

    php - 动态创建从 PHP 到 Actionscript 3 的 XML