PDA

Просмотр полной версии : Резиновый флеш и 6 Интернет Эксплоуер


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


// расчет высоты 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");