Вопрос

У меня есть HTML-страница с встроенным флэш-фильмом, который имеет кнопку. Эта кнопка в Flash вызывает событие щелчков Lnkemail. Предполагается, что он останавливается на самом деле навигацию на новую страницу, но Event.PreventDefault (); И возвращение ложного из обработчика событий, похоже, не работает для меня. Кто-нибудь может дать представление?

Приведенный ниже пример работает в Chrome, но не удается в IE 7 и FF. В этих браузерах он перенаправляет на пустую страницу с объектом [Object], так как тело, а в FF есть URL-адрес, установленный на код JavaScript, который I выполняется из флэш-фильма. (т. е.: «JavaScript: jQuery ('# lnkemail'). Нажмите ();")

Ниже приведен код в Flash ActionScript.

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
   navigateToURL(
      new URLRequest(
         "javascript:jQuery('#lnkEmail').click();"
      ), 
      "_self"
   );
}

На содержащей HTML-странице есть следующие скрипты и элементы:

<script type="text/javascript">
   $(function(){
      $.nyroModalSettings({
         debug: true
      });

      $('#lnkEmail').click(function(event) {
         event.preventDefault();
         $.nyroModalManual({
            url: 'demoRequest.aspx?Type=4'
         });
         return false;
      });
   });
</script>

А позже в том же файле:

<div id="box_stage_home">
   <script type="text/javascript">
      $(document).ready(function() { 
         $('#HomeAnimation').flash({ 
            swf: 'Flash/index_page.swf', 
            height: 288, 
            width: 686, 
            wmode: 'transparent' 
         }); 
      });
   </script>
   <div id="HomeAnimation"><!--IE 6.0--></div>
   <a href="emailSend.aspx?Type=4" id="lnkEmail">&nbsp;</a>
</div>
Это было полезно?

Решение 2

Выяснил правильный путь (спасибо Corneliu), чтобы сделать это, так думал, что я отправлю его здесь для справки. В файле HTML:

<script type="text/javascript">
   function viewDemo() {
      $.nyroModalManual({
         url: 'emailSend.aspx?Type=4'
      });           
   }
</script>

В Flash-файле:

import flash.system.Security;

cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void {
   flash.system.Security.allowDomain("business.com");
   ExternalInterface.call("viewDemo");
}

Другие советы

Посмотрите на navigateToURL документация: http://livedocs.aDobe.com/flash/9.0/40-39/04/net/package.html#navigatetourl%28%29.. Отказ Это не намерена быть использованным с javascript: Ссылки.

Делать то, что вы хотите, используйте ExternalInterface.call().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top