Просмотр полной версии : Непонятное поведение flash в IE после перезагрузки
Доброго времени суток!
У меня такой вопрос! Вставляю на html страницу flash, традиционным способом или через swfobject. Первый раз станица грузится нормально, все последующие разы, после перезагрузки часть графических элементов всего дизайна сайта, не догружается причем каждый раз в разных местах. Такая ситуация только в IE, в mozilla всё нормально. С чем это связано?
Что, неужели только у меня такая проблема?
screamge
03.12.2007, 07:45
Предлагаете гадать почему так у вас происходит?
Аналогичная ситуация.
Только когда флешка грузится через swfobject.
Походу размеры Stage после обновления страницы почему-то равны 0 и вообще все работает непонятно.
http://www.rivne-today.com/test/test_stage1.html
- посмотрите, что происходит после F5 в Интернет эксплорере.
В других браузерах и без использования swfobject такого нет.
Почему??? Очень нужна помощь.
не вопрос
http://www.rivne-today.com/test/test_stage.fla
В принципе решение я нашел:
http://blog.deconcept.com/swfobject/forum/discussion/582/refresh-issue-in-ie-please-help/
Но оно меня не устраивает по одной простой причине - необходимости каждый раз заново скачивать swf-файл, который таки что-то весит.
aQuestion
30.12.2007, 13:03
Походу размеры Stage после обновления страницы почему-то равны 0Это известные грабли, происходит в ИЕ при закашеной СВКе. Бороться с этим должны в Адобе, а нам с вами остается лишь писать по другому.
var Stage_width;
var Stage_height;
Stage.align = "TL";
Stage.scaleMode = "noScale";
function onResize () {
Stage_width = Stage.width;
Stage_height = Stage.height;
}
Stage.addListener (this);
//// строчку ниже не удалять
onResize ();
onEnterFrame = function () {
s1.show ();
delete onEnterFrame;
};
stop ();
При всем уважении, это не работает, как надо.
Да, переменным присваиваются правильные значения. И только.
По Ф5 в ИЕ круг не центрируется. Алерт например при рефреше тоже выводится в 0:0 всесто середины Stage.
См. http://www.rivne-today.com/test/test_stage1.html
Я вывел тестовые сообщения. В других браузерах все правильно, а в ИЕ - ерунда какая-то.
исходник:
http://www.rivne-today.com/test/test_stage.fla
...кстати
Всех присутствующих с Новым годом!!!
Вы кеш IE терли после обновления swf?
У меня круг центруется.
с потертым кешем центрируется
иначе - нет.
Результат загрузки в IE6.
18589
1. Загружен файл http://www.rivne-today.com/test/test_stage.swf
2. Браузер взял файл из кеша
3. Размеры рабочего поля определились
4. Круг встал по центру
CrazyFlasher
02.01.2008, 13:25
я из такой ситуации выходил используюя небольшой таймаут
2 iNils
swf файл нипричем - сам по себе он выполняется корректно
глючит связка IE+swfobject
см. http://www.rivne-today.com/test/test_stage1.html
А где я сказал, что swf глючит?
У меня на скриншоте видно:
- загрузка html
- загрузка swfobject
- загрузка swf
- отображение swf
То есть связка IE+swfobject и с корректным отображением swf.
Можете вместо swfobject попробывать использовать мой iobject (http://www.flasher.ru/forum/showthread.php?t=79184) (только он не детектит версию плеера).
aQuestion
03.01.2008, 21:26
swf файл нипричем - сам по себе он выполняется корректно
глючит связка IE+swfobjectчто значит "сам по себе"? в хтмл без свфобъекта, или напрямую свф в адресной строке?
эдит: вопрос снят. сам проверил.
2инильс: баг (http://www.flashgamer.com/2007/02/dont_trust_stagewidth.html) видится в ИЕ7
Пару раз сталкивался с этим багом, но в конечном итоге он так и не проявил себя, уж не знаю, почему.
aQuestion
03.01.2008, 22:15
В принципе решение я нашел:
http://blog.deconcept.com/swfobject/forum/discussion/582/refresh-issue-in-ie-please-help/
Но оно меня не устраивает по одной простой причине - необходимости каждый раз заново скачивать swf-файл, который таки что-то весит.вы плохо прочитали топик. в самом низу умный человек сообщил, что проблема упирается в innerHTML и использование document.write её решает. я только что проверил со скриптом инильса (как раз document.write) - таки работает. это не кошерно (http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite), но видимо выход.
Edit: немного повозился со скриптом нильса, вобщем результат такой:
function showFlash(o, cid){
...
var element = document.createElement("embed");
element.setAttribute ("type", "application/x-shockwave-flash");
element.setAttribute ("pluginspage", "http://www.macromedia.com/go/getflashplayer");
element.setAttribute ("src", o.name);
element.setAttribute ("width", o.width);
element.setAttribute ("height", o.height);
document.getElementById(cid).appendChild(element);
//debugger;
}увы, элемент "эмбед" не есть часть хнтмл, посему такой хак тоже не кошерен. к сожалению, не могу понять, почему не добавляется "обжект".
Edit 2: object tag added successfully withvar element = document.createElement("object");
element.setAttribute ("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000");
element.setAttribute ("codebase", "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+v+'");
element.setAttribute ("width", o.width);
element.setAttribute ("height", o.height);
document.getElementById(cid).appendChild(element);
element.movie = o.name;однако єтот код подвержен проблеме с кэшем :(
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.