Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Резиновый флеш и 6 Интернет Эксплоуер (http://www.flasher.ru/forum/showthread.php?t=123807)

kyzi007 10.04.2009 16:58

Резиновый флеш и 6 Интернет Эксплоуер
 
Итак я делаю резиновые странички, но непростые. Это значит что странички тянутся по размеру содержимого (картинок от 100*100 до 3400*3400) и появляется скролл у броузера. Скрол появляется так - флеш грузит картинку, определяет размеры говорит их js а js меняет размер контейнера в котором болтается флеш. Все хорошо до того момента пока не открываеш ie 6. Происходят 2 вещи - по непонятным мотивам он не отрисовывает флеш на всю высоту содержащего его контейнера, второе - под флешем лежит обычная страничка имеющая свою высоту. Так вот ie иногда не вытягивает контейнер для флеш на всю высоту... Ключевое слово иногда. Это происходит не с конкретными картинками а при неком сакральном соотношении высоты и ширины.


Код AS1/AS2:

// расчет высоты javascript - все работает выложила чтоб не говорили что ошибка в js
function getClientWidth(){
 return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}
function getClientHeight(){
 return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.innerHeight;
}
function setLiteboxSizes(w,h){/* эту функцию вызывает флеш передает минимальные свои размеры*/
flashOpen = true;
w_flash = Math.round(w);
h_flash = Math.round(h);
w_client = Math.round(getClientWidth());
h_client = Math.round(getClientHeight());
 
temp_w = w_flash - w_client;
if(temp_w>-1 && temp_w<5){w_flash = w_flash-5-temp_w}
 
////////////////////////  ширина    ///////////////////////
if(w_client >= pageMinWidth){ var width = w_client; }
else { var width = pageMinWidth;}
 
if(w_flash <= width){ flashcontent.style.width = (width - 6)+'px'; Stage_w = width;}
else { flashcontent.style.width  = (w_flash)+'px'; Stage_w = w_flash;}
 
////////////////////////  высота    ///////////////////////
if(h_client >= pageMinHeight) { var height = h_client; }
else { var height = pageMinHeight; }
 
if(h_flash <= height) { flashcontent.style.height = height+'px'; Stage_h = height;}
else { flashcontent.style.height = h_flash+'px'; Stage_h = h_flash}
}

ЗЫ я уже вторые сутки маюсь СПАСИТЕ!!!.

NarutoUdzumaki 16.04.2009 18:27

Спасатель!
Могу сказать, что AS3 мало кто ещё знает на форуме, судя по постам и вопросам…
Кто знает, тот молчит потому-то он жаден или его просто тут нет так как он это знает…
То, что ты пошёл в такую замечательную направленность в таких сайтах, то это Гуд!
Я тоже вот буду пробовать скоро. Это реальный скачёк AS3 и Флэша Гордона.

MrPoma 18.04.2009 05:59

NarutoUdzumaki, автор про АС3 ни слова не сказал.
kyzi007, где АС код?

kyzi007 27.04.2009 19:00

Вот проблема в голом виде.
http://prohost.***********/11837367

kyzi007 29.05.2009 11:29

Решение - принудительная перерисовка флеш через swfObgect:
so.write("flashcontent");


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

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