PDA

Просмотр полной версии : Как вставлять разные флэш-файлы в зависимости от разрешения экрана?


tropican
15.07.2010, 12:22
Задача - при разном разрешении экрана у пользователя,
интернет-страница должна загружаться с разными флэшками. Чтобы было красиво.

Что нарыли: вот такой код:

<script language="javascript">
<!--

var width=0;

if (self.screen) { // for NN4 and IE4
width = screen.width
} else if (self.java) { // for NN3 with enabled Java
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
}
...........(((дальше код писать не стал -он не в тему)))

Присвоит переменной width значение ширины экрана у пользователя, но что делать дальше,
как написать загрузку в html- или php-страничке под неким условием той (или иной) флэшки?
Заранее спасибо.

membrilius
15.07.2010, 14:46
о, да у вас тут Java какая-то...

вообще вполне достаточно что-то вроде на скорую руку...


<script type="text/javascript">
var w = window.screen.width; // узнали ширину крана в пикселях

if(w == 800) // тут что-то делается (см ниже)
else if(w == 1024) // тут что-то делается (см ниже)
else if(w == 1204) // тут что-то делается (см ниже)
// итд смотря какие расширения у Вас запланированы
</script>


эту фигню можно сделать функцией, и в ней подключать SWFObject для добавления самой флехи. Можно сделать наоборот, что бы функция в зависимости от расширения экрана, возвращала имя соответствующего ролика и его уже вставлять в SWFObject...

tropican
15.07.2010, 16:19
Да это-то понятно, что "if" и "else" - как будет правильный синтаксис вставления swf в java-скрипт ?! Буду очень благодарен если покажете как или хотя бы - где. Как образец.

membrilius
15.07.2010, 16:40
Качаем последний swfobject 2.*

набросал функцию... конечно расширение экрана бывает разное, поэтому не знаю как Вы будите их все предусматривать.

<script type="text/javascript">
function screen_width()
{
var w = window.screen.width; // узнали ширину крана в пикселях

var f = {};

if(w == 800)
{
f = { swf : "rolik_800", w : "800", h : "200" } // это имя и размеры ролика
}
else if(w == 1024)
{
f = { swf : "rolik_1024", w : "1024", h : "200" }
}
else if(w == 1204)
{
f = { swf : "rolik_1204", w : "1204", h : "200" }
}
esle
{
f = { swf : "rolik_1024", w : "1024", h : "200" }
}

return f;
}

var rolik = screen_width();

swfobject.embedSWF("http://mydomain/rolik/"+rolik['swf']+".swf", "rolik_conteiner", rolik['w'], rolik['h'], "9", false, false, false, false);

</script>

Как-то так.. я не отлаживал, да и вообще уже 100 лет с JavaScript не работал, может где и ошибка есть, Но принцип думаю понятен )

tropican
15.07.2010, 17:07
Факир был трезв !!!
Показываю как это делается.НВот код целиком, который либо вставляет некую картинку - если ширина экрана 800 - либо вставляет флэшку !
..................................

<script type="text/javascript">
if (self.screen)
{
width = screen.width
}
else if (self.java)
{
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
}


if (width == "800") { document.writeln('<img src="images/logo_middle_b.gif" alt="Студия Пушка" width="198" height="155" />');}




else




{

document.writeln('<div>');
document.writeln('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="myFlashContent">');
document.writeln('<param name="movie" value="PAGE1/site.swf?xml_path=PAGE1/slides.xml" />');
document.writeln('<!--[if !IE]>-->');
document.writeln('<object type="application/x-shockwave-flash" data="PAGE1/site.swf" width="800" height="600">');
document.writeln('<!--<![endif]-->');
document.writeln('<a href="http://www.adobe.com/go/getflashplayer">');
document.writeln('<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />');
document.writeln('</a>');
document.writeln('<!--[if !IE]>-->');
document.writeln('</object>');
document.writeln('<!--<![endif]-->');
document.writeln('</object>');
document.writeln('</div>');

}






</script>

Добавлено через 2 минуты
Здесь обратите внимание на нижнюю часть, где вещами вида

document.writeln('');

тупо набивается обычный html - код вставления флэша.
Проверено - работает.

membrilius
15.07.2010, 17:25
Я не понимаю что Вам тогда надо, раз у Вас всё замечательно работает.