Значит так, вышло у меня сл.
Код AS3:
package
{
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class Hook extends Sprite
{
private const HTML_CONTAINER_DIV_ID:String = 'FlashOutput';
private const RECEIVER_FUNCTION_NAME:String = 'onBeforeUnLoad';
public function Hook()
{
if (ExternalInterface.available)
{
ExternalInterface.addCallback(RECEIVER_FUNCTION_NAME, onBeforeUnLoad);
var query:String = 'window.onbeforeunload = function(){document["' + HTML_CONTAINER_DIV_ID + '"].' + RECEIVER_FUNCTION_NAME + '({Event:"onbeforeunload"});}';
ExternalInterface.call('function(){' + query + '}');
}
}
private function onBeforeUnLoad(value:Object = null):void
{
// Debug.traceObj( { 'onBeforeUnLoad()':value } );
// do some before unload;
}
}
}
Работает в Chrome.
Добавлено через 5 часов 52 минуты
...хотя это пофигу, потому что flash контейнер ВКонтакт`а передает allowscriptaccess="never"