Я разрабатываю флэш-приложение для сайта, к которому у меня нет прямого доступа. Предполагается, что приложение Flash вызывает на веб-сайте функцию javascript, определенную издателем веб-сайта. Мне посоветовали проверить наличие объекта javascript перед вызовом его функции из actionscript:
var ok:Boolean = ExternalInterface.call(function() {
return typeof customObject !== \'undefined\'
}
Если я продолжу:
if (ExternalInterface.available && ok) {
ExternalInterface.call('customObject.doSomething', someStr);
}
Будет ли это, если условие всегда будет ложным, потому что вызов, который сохраняется в ok
, возможно, не завершился до того, как я использую проверку, или это ExternalInterface.call
мгновенно? Другими словами, должен ли я как-то подождать результата первого вызова, прежде чем определить, могу ли я с уверенностью предположить существование customObject.
Редактировать: Обновлен код, предложенный в комментариях:
if (ExternalInterface.available) {
var ok:Boolean = ExternalInterface.call('function() { return typeof customObject !== \'undefined\' }');
if (ok) {
ExternalInterface.call('customObject.doSomething', someStr);
} else {
.. do some fallback
}
} else {
.. do some fallback
}