2009-03-14 1 views
0

У нас есть приложение Flex, говорящее на сервере. Нам нужно какое-то событие FlexEvent.ON_BROWSER_WINDOW_CLOSE, но, к сожалению, Flex не предоставляет такого.Как подписаться на форму события javascript Flex 3 action script code?

Итак, у меня есть совет, чтобы поймать событие «onbeforeunload» javascript и вызвать флеш-клиент через метод ExternalInterface-registred.

Есть ли способ подписаться на javascript-событие без кода javascript?

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

ответ

2

Вы можете скомпилировать код JS впрыснуть в ваш SWF файл:

package 
{ 

import flash.display.Sprite; 
import flash.external.ExternalInterface; 
import flash.net.SharedObject; 


public class CloseTest extends Sprite 
{ 
    private var so:SharedObject = SharedObject.getLocal("hello"); 

    public function CloseTest() 
    { 
     if (ExternalInterface.available) 
     { 
      ExternalInterface.addCallback("onclose", onClose); 
      ExternalInterface.call(this.javascript); 
     } 

     this.so.data.count ||= 0; 

     trace(so.data.count); 
    } 

    private function onClose():void 
    { 
     this.so.data.count++; 
     this.so.flush(); 
     this.so.close(); 
    } 

    private var javascript:XML = <javascript><![CDATA[function() 
    { 
     window.onbeforeunload = function() 
     { 
      alert("hello"); 
      document.getElementById("CloseTest").onclose(); 
     } 

    }]]></javascript>; 
} 

} 
2

Вы можете использовать ExternalInterface для вызова функций Javascript, определенных в контейнере. См. this.

This post описывает ситуацию, похожую на вашу. Взглянуть.

+0

Это полностью мы делаем. Однако для этого требуется браузер javascript на странице хостинга. –

+0

Если javascript не включен, вы все равно получите нужное событие? И если это так, почему бы и не поставить строку или две? – dirkgently

0

Извините, но вы не можете найти то, что ищете, не используя Javascript и ExternalInterface.

 Смежные вопросы

  • Нет связанных вопросов^_^