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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Aug 2011
Сообщений: 2
По умолчанию Не работает вызов методов флэшки в IE

Проблема, блин. Я новичок во флэше, сейчас стоит задача прикрутить флэшку в стандартную верстку. Флэшка имеет несколько методов, которые дергаются джаваскриптом. Подключается на страницу с помощью swfobject. Всё нормально работает в FF, Opera и Chrome, но не работает в IE. Он выдает ошибку: "Объект не поддерживает это свойство или метод". В чем проблема, непонятно. Один и тот же код не работает в IE (7-8), но работает в других браузерах.

Подключается флэшка таким образом

Код:
				<div id="uploader-flash" class="uploader-flash">
					<div id="uploader-flash-object"></div>
					<script type="text/javascript">
						var params = {
							allowscriptaccess: "always",
							play: true,
							loop: false,
							scale: "exactfit",
							flashvars: "uploadUrl={{ $uploaderUrl }}file%2F&authUrl={{ $uploaderUrl }}auth%2F"
						};
						swfobject.embedSWF("http://files.dev11.zarium/uploader.swf", "uploader-flash-object", "400", "150", "10", false, false, params, false);
					</script>
				</div>
После подключения флэшки верстка выглядит так:

Код:
<object width="400" height="150" id="uploader-flash-object" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" style="visibility: visible;" startUpload="function () { 
    return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  }" cancelUpload="function () { 
    return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  }" removeFile="function () { 
    return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  }" changeFolder="function () { 
    return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
  }">


Методы флэшки дергаются:

Код:
	var s = swfobject.getObjectById('uploader-flash-object');
	s.removeFile( someID );

Как заставить флешку работать адекватно в IE?

Старый 03.08.2011, 22:57
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Попробуйте дергать стандартным способом:
Код:
var node = document.getElementById('uploader-flash-object');
node.имя_метода(аргумент);
У меня все ок во всех браузерах.

Еще одно соображение. Атрибуты задайте, у вас в swfobject.embedSWF(...) там на месте объекта для атрибутов сейчас false, желательно прописать нечто вроде
Код:
var atr = { id: "uploader-flash-object" };
...
swfobject.embedSWF("http://files.dev11.zarium/uploader.swf", "uploader-flash-object", "400", "150", "10", false, false, params, atr);
После внедреня, насколько помню, что-то стирается, надо переназначать. Хотя вы показали код "верстки" с id, боюсь, что последнее соображение все же нужно учесть.
Я делаю так и тогда все callback'и работают хорошо.
__________________
Идите первым!


Последний раз редактировалось mooncar; 03.08.2011 в 23:06.
Старый 04.08.2011, 17:46
Дмитрий Т вне форума Посмотреть профиль Отправить личное сообщение для Дмитрий Т Найти все сообщения от Дмитрий Т
  № 3  
Ответить с цитированием
Дмитрий Т

Регистрация: Aug 2011
Сообщений: 2
Ок, спасибо, проблема решена. Оказалось, в ходе выполнения JS скрипта временно пряталась флэшка, и это напрочь сносило в IE её внешний функционал. Теперь прочно запомнил принцип: флэшку скрывать нельзя никогда и ни за что, инача работать в IE не будет!

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

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

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


 


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


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