Поймать ошибки из ExternalInterface, когда доступ к сценарию не разрешен?
У меня есть SWF, который работает на многих сайтах, большинство из которых разрешают доступ к сценариям. Для тех, кто этого не делает, я пытаюсь поймать ошибки, но безуспешно. (Я также проверяю, является ли ExternalInterface.available истинным, но Flash Player всегда говорит мне, что это так.)
static public function callExternal(str:String):Object {
var result:*;
try {
result = ExternalInterface.available?ExternalInterface.call(str):null;
} catch (e:Error) {
log.exception(e);
}
return result;
}
И вот что я получаю в журнале:
SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller
(my swf) cannot access (some site)
Что я могу сделать, чтобы предотвратить выполнение этого вызова, если у меня нет разрешения, или перехватить ошибку безопасности по факту?
1 ответ
Решение
static public function callExternal( str:String ):void
{
try
{
ExternalInterface.call( str );
}
catch( e:SecurityError )
{
trace( 'handle no external interface' );
}
}