Позволить событиям мыши надежно всплывать через проигрыватель youtube chromeless?

Привет всем!

Я работаю над прототипом, который потребует, чтобы я мог читать и отслеживать движение мыши при воспроизведении видео на 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>

Ожидаемое поведение:

  • Ютуб плеер загружается
  • Метка в правом верхнем углу отслеживает координату X мыши.
  • Номер должен обновляться даже при наведении курсора мыши на проигрыватель Youtube.

На данный момент программа ведет себя так, как ожидалось, при запуске из IDE (проверено как на FlashDevelop, так и на FlashBuilder) и даже при запуске файла вручную из выходной папки. Но, увы, когда я пытаюсь запустить его из откуда, кроме папки отладки (будь то другое место на моем компьютере или на веб-сервере), проигрыватель Youtube, кажется, поглощает события.

Я не получаю предупреждений безопасности песочницы при отладке (спасибо allowDomain("*")), но у меня заканчиваются идеи о том, почему программа дает сбой, когда вы вынимаете файл из папки отладки .

Я был бы безмерно признателен за любые подсказки. Обратите внимание, что что касается решений, я готов попробовать технологию, отличную от флэш-памяти, если у вас есть доказательство того, что она работает где-то еще.


person Balthazar Auger    schedule 30.03.2011    source источник
comment
Могу я спросить, в чем смысл? Какую проблему вы пытаетесь решить, делая это? Кроме того, вы должны установить applicationDomain в загрузчике swf так, чтобы он совпадал с вашим приложением, например: applicationDomain="{ApplicationDomain.currentDomain}"   -  person J_A_X    schedule 30.03.2011
comment
Я пытаюсь интегрировать видео YouTube в прототип игры, где пользователю будет предложено щелкнуть или перетащить объекты в данном видео. Кроме того, я думаю, было бы неплохо иметь правильное поведение событий мыши, чтобы разрешить более обычные операции, такие как перетаскивание?   -  person Balthazar Auger    schedule 30.03.2011
comment
Попался. Опять же, убедитесь, что домен приложения тот же. Тогда это должно сработать.   -  person J_A_X    schedule 30.03.2011
comment
Я попытался настроить домен приложения, но, увы, никаких изменений в поведении. Поиск на досках API YouTube, кажется, указывает на то, что я не единственный, кто столкнулся с этим странным поведением. Я попробую спросить там, если здесь нет альтернативы.   -  person Balthazar Auger    schedule 31.03.2011


Ответы (1)


Итак, я отвечаю на свой собственный ответ (я знаю ...) только для того, чтобы он где-то был записан, если кому-то это нужно.

Как бы я ни пытался, мне не удалось изменить настройки песочницы безопасности. Я даже перепробовал все возможные комбинации, и никакие кости.

То, что я сделал, от отчаяния, на самом деле добавил слушателей мыши к свойству Loader.content после завершения загрузки. И это работало достаточно хорошо.

Это единственное место, где я нашел, где загрузочное приложение может безопасно получить доступ к событиям мыши загружаемого объекта, не препятствуя его внутренней логике мыши.

Надеюсь, это поможет кому-то еще отклеиться в будущем!

person Balthazar Auger    schedule 13.04.2011