Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2012, 10:18
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 1  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
По умолчанию IE через innerHTML не видит методов флэшки (которые EnternalInterface)

Добрый день!
Понимаю, что вопрос не совсем в тему, долго определялся в какой раздел его адресовать,
решил все же выложить сюда, может есть люди, которые с таким уже встречались и решили.

Код HTML
PHP код:
    <div id="game">
    
сюда будем вставлять динамически вставим SWF через innerHTML
    
</div>
     
    <
script>
    
document.getElementById("game").innerHTML '<embed width="760" height="660" align="middle" type="application/x-shockwave-flash" salign="" allowscriptaccess="sameDomain" allowfullscreen="false" menu="true" name="Taxoman" id="Taxoman" bgcolor="#000000" devicefont="false" wmode="transparent" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="Taxoman.swf">';
     
     
    function 
test() {
        
Taxoman.test();
    }
    
</script> 

test() регистрируется во флэше с помощью ExternalInterface.callback()
Сразу скажу, во всех браузерах (Opera, Chrome, FireFox, Safari) эта штука нормально работает, а в IE не хочет.
Ругается, что не определен метод test у Taxoman.swf (очевидно из-за динамического внедрения)
Если внедрять SWF статически (сразу прописать в секции div: <embed ....>), то метод виден и понятен IE.

Как быть, что делать?
Альтернативный вариант: можно ли как то задавать момент запуска (старта для выполнения) флэшки SWF самому? Мне в коде JS надо дождаться определенного момента, когда станет известна одна переменная (приходит с сервера, но статическая флэшка стартует раньше, поэтому переменную не удается успеть передать через FlashVars. К тому же, если переменная не пришла, то надо флэшку вовсе не показывать)
Благодарю за внимание.

Старый 31.03.2012, 13:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А что ИЕ научился понимать тег <embed>? <embed> - это ж нестандартный довесок от Мозилы, в принципе <object>ом нужно пользоваться.
__________________
Hell is the possibility of sanity

Старый 31.03.2012, 13:38
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 3  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
да, знаю, но тем не менее его вполне хватало до сих пор (IE8, ранние не рассматриваю)

Старый 31.03.2012, 14:33
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 4  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Используйте swfobject

Старый 31.03.2012, 14:42
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 5  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
использовал, не помогло...

Добавлено через 4 минуты
самое интересное, что сама флэшка видна, как объект, а вот методы ExternalInterface-а не видны...

Старый 31.03.2012, 17:44
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А как использовали, что не помогло? Вы показываете код, который по мануалу вообще не должен работать, но не показываете код, который в принципе обычно работает...
По поводу "пока работает" - ну так и самолет можно 95-м заправить, и даже полетает немножко.
__________________
Hell is the possibility of sanity

Старый 31.03.2012, 21:57
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 7  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
да, похоже вы правы, <embed> хоть и отображает в IE флэшку и даже позволяет её использовать, но ExternalInterface при этом теряется (хотя обратная связь с флэша на JS связь есть). Сделал отдельно для IE внедрением через <object>, для остальных нетскейпообразных оставил как было.

Старый 31.03.2012, 21:59
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 8  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от Sociofilm Посмотреть сообщение
да, похоже вы правы, <embed> хоть и отображает в IE флэшку и даже позволяет её использовать, но ExternalInterface при этом теряется (хотя обратная связь с флэша на JS связь есть). Сделал отдельно для IE внедрением через <object>, для остальных нетскейпообразных оставил как было.
Значит не пробовали swfobject. Там этот велосипед изобретен.

Старый 01.04.2012, 08:12
Sociofilm вне форума Посмотреть профиль Отправить личное сообщение для Sociofilm Найти все сообщения от Sociofilm
  № 9  
Ответить с цитированием
Sociofilm

Регистрация: Aug 2010
Адрес: http://sociofilm.ru
Сообщений: 23
ну почему же не пробовал? я пробовал динамический способ создания swfobject.embedSWF() для innerHTML
PHP код:
<script>
...
document.getElementById("div_name").innerHTML 'swfobject.embedSWF(...)';
</script> 
Не работает, просто выводит в div-е эту строчку. Вставка тэгов <script> не спасает.
Также пробовал статический способ внедрения через <object>.
Если есть недоверие, попробуйте сами.

Немного расскажу про условия моей задачи: изначально div пустой в html/php. Если удалось получить переменную с фейсбука (fb id), то требуется вставить в div флэшку (swf) и передать ей параметром fb id (через FlashVars). Если не удалось, отобразить в div-е картинку, что доступ запрещен.
Таким образом подходит только динамический способ внедрения.

Старый 01.04.2012, 10:25
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 10  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Серега, ты чтоли?
SWFObject по-другому использовать надо.
Вот пример:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>SWFObject dynamic embed - step 3</title>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="swfobject.js"></script>


    <script type="text/javascript">
    swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
    </script>

  </head>
  <body>
    <div id="myContent">
      <p>Alternative content</p>
    </div>

  </body>
</html>
И лучше действительно использовать SWFObject, он инкапсулирует все заморочки с разными браузерами в настоящем и, скорее всего, в будущем.
На сколько я знаю adobe его рекомендует
Вот русская дока по swfobject

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
externalinterface , IE8 , innerHTML , swf
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.