У меня проблемы с передачей строки обратно в SWF с использованием класса EternalInterface во Flash CS4.
У меня есть SWF со следующим кодом:
var externalString:String = ExternalInterface.call("IncomingJS")
, которыйнаходится внутри прослушивателя событий, прикрепленного к Event.ENTERFRAME, и оператора if, ожидающего ExternalInterface.available.
Функция IncomingJS
выглядит следующим образом:
function IncomingJS() {
return stringFromHTML;
}
и располагается на странице HTML с помощью swf.
Я могу успешно получить переменную externalString
и продолжить работу с остальной частью скрипта AS3 в Firefox, Safari и Chrome, но не в IE.
Если я добавлю alert (stringFromHTML)
перед оператором возврата в Javascript, я получу значение stringFromHTML
спам, который выглядит так, как будто Flash запускает функцию с правильной скоростью.
Код для встраивания в HTML для SWF немного прост:
<object width="750" height="200" id="controlledScale"><param name="movie" value="http://www.myURL.com/controlledScale.swf"><param name="allowScriptAccess" value="sameDomain" /><embed src="http://www.myURL.com/controlledScale.swf" width="750" height="200" allowScriptAccess="sameDomain"></embed></object>
Любая помощь или советс благодарностью.
Спасибо, DavidB
Edit
Я понимаю, насколько плох код SWF для встраивания.К сожалению, HTML-код фактически работает в стороннем генераторе HTML, и одно из его ограничений заключается в том, что я могу иметь только одну строку (с неограниченной длиной) HTML-кода за раз.
Есть и другие варианты(swfObject и т. д.) может работать либо без разрывов строк в коде, либо я бы попросил проблемы с Javascript и SWF, чтобы вместо встраивания SWF напрямую использовать что-то вроде iFrame и ссылаться на «правильную» флэш-памятьHTML-файл delpoyment?
В какой-то момент, когда я даже не уверен, где проблема на самом деле находится.SWF-файлы находят отправку в Javascript во всех браузерах, но не возвращают информацию только в IE.