Краткое описание успеха:
Я использую AC_RunActiveContent.js
, как установлено Flash при публикации.
Мой swf называется fvar_js
, как показано ниже:
AC_FL_RunContent(
...
'src', 'fvar_js',
...
Я подчеркиваю это, потому что мне НИКОГДА не приходилось использовать такую функцию, как thisMovie
в посте выше, чтобы указать на объект SWF. Я был в состоянии использовать
fvar_js
сразу (ну, вроде, как вы увидите).
В моем коде as3 у меня были строки:
if (ExternalInterface.available) {
ExternalInterface.addCallback("js_to_as_f", js_from_as_f);
}
где js_from_as_f
- это функция, которая изменяла текст в текстовом поле.
В HTML я настроил следующее:
var timeoutId;
var js_initiate_callback = function() {
// This is the swf object:
fvar_js.js_to_as_f();
clearTimeout ( timeoutId );
}
var reset_fvar_f = function(new_val) {
fvar_val = new_val;
}
//js_initiate_callback();
timeoutId = setTimeout(js_initiate_callback, 1000);
Я пробовал 1 мс и 100 мс, но результаты были пятнистыми. С 1000мс
это работало в IE, FF и Safari на ПК. Не проверял на Mac OS X.
Ключ, очевидно, состоит в том, чтобы разрешить все объекты и все соединения объектов
время, чтобы настроить. Я понятия не имею, какое минимальное время.