Flash Player уведомил о закрытии браузера или изменении страницы (as3) - PullRequest
6 голосов
/ 13 июля 2009

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

Ответы [ 3 ]

15 голосов
/ 14 июля 2009

ExternalInterfaceUtil.addExternalEventListener ("window.onunload", handleLogout, "unloadFlex");

package
{
    import flash.external.ExternalInterface;

    public class ExternalInterfaceUtil
    {
        public static function addExternalEventListener( qualifiedEventName:String, callback:Function,callBackAlias:String ):void
        {
            // 1. Expose the callback function via the callBackAlias
            ExternalInterface.addCallback( callBackAlias, callback );
            // 2. Build javascript to execute
            var jsExecuteCallBack:String = "document.getElementsByName('"+ExternalInterface.objectID+"')[0]."+callBackAlias+"()";
            var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){"+jsExecuteCallBack+"};}";
            // 3. Execute the composed javascript to perform the binding of the external event to the specified callBack function
            ExternalInterface.call( jsBindEvent );
        }
    }
} 

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

1 голос
/ 16 июня 2010

Вышесказанное отлично сработало для меня, за одним исключением: если я верну null в качестве строки, я не хочу, чтобы какое-либо сообщение всплыло Он работает для всех браузеров, кроме IE, который вызывает диалоговое окно с надписью «null».

Это можно исправить, изменив одну строку, добавив нулевую проверку:

var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){if (" + jsExecuteCallBack + ") return "+jsExecuteCallBack+"};}";
1 голос
/ 13 июля 2009

Вы можете использовать комбинацию Javascript и Flash для достижения того, что вы ищете.

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

...