Flex ExternalInterface обратный вызов - PullRequest
0 голосов
/ 05 декабря 2011

Flex:

public function callFromJavaScript():String
{
       test.label='dfdsfsdf';
       return "1";
}
public function init():void {
       ExternalInterface.addCallback("sendToFlash", callFromJavaScript);
}

HTML

<object classid='clsid:x-x-x-x-x' height='200px' width='300px'>
        <param name="allowScriptAccess" value="always" />
        <param name='src' value='${swf}.swf'/>
        <embed  name='mySwf' id='qwe' src='${swf}.swf' height='200px' width='300px'/>
</object>

Я знаю, что есть несколько (javascript) методов, таких как: document.getElementById ( 'FlexAppId') SetName (имя);.

Тем не менее:

  1. Понятия не имею, кто из них совместим с кросс-браузерами (не могу установить IE для проверки)
  2. Я пробовал несколько, но я не могу заставить их работать (в любом браузере), я, вероятно, использую неправильный идентификатор, я пробовал и ошибался в течение нескольких часов, но у меня ничего не работает. (Я слышал, что существует проблема с ExternalInterface.addCallback в локальной файловой системе? Должен ли я загрузить файл SWF? <Правильно ли указан гибкий код и проблема = сторона JavaScript / HTML?) </li>

1 Ответ

4 голосов
/ 05 декабря 2011
Известно, что функции

ExternalInterface имеют проблемы в браузерах и операционных системах. Вот некоторые из рекомендаций:

  1. Пользователь swfobject или любая другая стандартная библиотека для embed вашего swf. ( SWFObject )
  2. Использовать 'allowcriptaccess = всегда'
  3. Дайте правильные id и name тегу для встраивания
  4. id и name должны быть всегда одинаковыми.
  5. Если ваш SWF-файл поступает из домена, отличного от HTML-страницы, используйте Security.AllowDomain('domain-of-html-page.com')
...