Необходимо отметить переопределения getMood с ключевым словом "переопределения". Необходимо будет также отметить основу getMood метод с "виртуальным" ключевым словом.
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 );
}
}
}
Я не помню, откуда я это взял, но я использовал его, и он работает не плохо. Конечно, не все браузеры будут сотрудничать, но это лучше, чем ничего ...
Вы можете использовать комбинацию Javascript и Flash для достижения того, что вы ищете.
Используйте Javascript, чтобы определить, когда пользователь уходит со страницы. Используйте событие javascript для вызова вашего Flash-фильма с помощью ExternalInterface. После вызова кода вы можете обработать событие по мере необходимости.
Вышеописанное отлично сработало для меня с одним исключением: если я возвращаю null в качестве строки, я не хочу, чтобы появлялось какое-либо сообщение. Это работает во всех браузерах, кроме IE, который выводит диалоговое окно с надписью "null".
Это можно исправить, изменив одну строку, чтобы добавить проверку на null:
var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){if (" + jsExecuteCallBack + ") return "+jsExecuteCallBack+"};}";