Flash player, уведомленный относительно браузера близко или страницы (as3) изменения

Необходимо отметить переопределения getMood с ключевым словом "переопределения". Необходимо будет также отметить основу getMood метод с "виртуальным" ключевым словом.

6
задан Jacob Poul Richardt 14 July 2009 в 13:14
поделиться

3 ответа

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 );
        }
    }
} 

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

15
ответ дан 8 December 2019 в 13:48
поделиться

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

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

1
ответ дан 8 December 2019 в 13:48
поделиться

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

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

var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){if (" + jsExecuteCallBack + ") return "+jsExecuteCallBack+"};}";
1
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: