![]() |
|
||||||||||
|
|||||
|
[1.10 28.01.2006]
Регистрация: Jan 2006
Сообщений: 54
|
итак, есть замысел: использовать одну и ту же флэшку как ячейку меню а инфу в неё грузить из html страницы.
Вот как я это реализовал в html: //-------------скриптовая часть----------- <script type="text/javascript"> function makeMenu(name, target, enable){ var a = new Array() a[1] = name a[2] = target a[3] = enable document.write('<object classid="clsid 27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="50">');document.write('<param name="movie" value="flash/menu_item.swf?ar2='+a[3]+a[2]+'">'); document.write('<param name=quality value=high>'); document.write('<param name="FlashVars" value="ar='+a[1]+'">'); document.write('<embed src="flash/menu_item.swf?ar2='+a[3]+a[2]+'" FlashVars="ar='+a[1]+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="100%" height="50"></embed>'); document.write('</object>'); }</script> //-------------/скриптовая часть----------- //-------------HTML часть------------------- <td width="20%" class="main_button" valign="middle"><script type="text/javascript">makeMenu("page1", "./page1.html", "1")</script></td> <td width="20%" class="main_button" valign="middle"><script type="text/javascript">makeMenu("page2", "./page2.html", "1")</script></td> <td width="20%" class="main_button" valign="middle"><script type="text/javascript">makeMenu("page3", "./page3.html", "1")</script></td> <td width="20%" class="main_button" valign="middle"><script type="text/javascript">makeMenu("page4", "./page4.html", "1")</script></td> <td width="20%" class="main_button" valign="middle"><script type="text/javascript">makeMenu("page5", "./page5.html", "1")</script></td> //-------------/HTML часть------------------- Как видно из примера, я хотел чтобы использлвался один и тот же flash файл для ускорения загрузки, я почему-то считал что с сервера таким путём все пять ячеек будут создаваться одновременно, но: - создаются они далеко не одновременно, как будто каждая грузится заново. - в temporary internet files есть много копий одного и того же файла так что похоже что они действительно создаются каждый раз заново. Вопрос: где моя ошибка и можно ли это вообще сделать так как я хочу? Респект всем кто поможет. |
|
|||||
|
.grin! wuz here
|
для этого делается всё в 1й флешке а инфа грузится из иксмл.
а вообще руки обрывать тем, у кого в хтмл сайте меню на флешке.
__________________
Breakcore them all! |
|
|||||
|
[1.10 28.01.2006]
Регистрация: Jan 2006
Сообщений: 54
|
а вот если можно, подробнее, что именно нужно делать в первой флешке и как её скопировать в другие ячейки так чтоб заново не грузило?
"а вообще руки обрывать тем, у кого в хтмл сайте меню на флешке." хе-хе, согласен, сам бы так ответил, но там случай особый да и флэш резиновый тоже, сайт в бок тянуть не мешает. Последний раз редактировалось WWWD; 21.01.2006 в 04:29. |
|
|||||
|
.grin! wuz here
|
я сегодна писал в руфлеш 1ну штуку.
тебе тоже подойдёт. завтра как найду, напишу. суть: флешки вставлялись почти так же но по виндоу.онлоад.
__________________
Breakcore them all! |
|
|||||
|
Цитата:
|
|
|||||
|
[1.10 28.01.2006]
Регистрация: Jan 2006
Сообщений: 54
|
спасибо, ждём-с
|
|
|||||
|
.grin! wuz here
|
по мотивам тв-во скрипта.
не проверял, могут быть ошибки. но суть ясна. <script type="text/javascript">
document.flashes = [];
function pasteMenu(src,w,h,param,vars){
var txt='<object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+w+'" height="'+h+'">';
txt+='<param name="movie" value="'+src+'?'+param+'">';
txt+='<param name=quality value=high>';
txt+='<param name=FlashVars value="ar='+vars+'">';
txt+='<embed src="'+src+'?'+param+'" FlashVars="ar='+vars+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+w+'" height="'+h+'"></embed>';
txt+='</object>';
document.write('<div id="f'+document.flashes.length+'"></div>');
document.flashes.push(document.getElementById(['f'+document.flashes.length),txt])
}
window.onload=function(){
for(var i in document.flashes) document.flashes[i][0].innerHTML=document.flashes[i][1]
}
</script>
__________________
Breakcore them all! |
|
|||||
|
.grin! wuz here
|
Цитата:
дубль меню внизу страницы -- левая отмазка. меню это сугубо функциональная вещь, а не рюшечки. + это крайне плохой стиль. всё остальное объяснять не намерен. зайди на любой сайт по юзабилити, тебе объяснят и даже больше.
__________________
Breakcore them all! |
|
|||||
|
[1.10 28.01.2006]
Регистрация: Jan 2006
Сообщений: 54
|
однако... даже данные мои подставил, за что отдельное спасибо, но либо я не понимаю скрипта, либо там всё-таки логическая ошибка есть (более мелкие уже подправил (сайл)).
Конкретно: функция pasteMenu ещё не выполняется (?), а функция на onload уже выплонена. Как я понимаю, именно функция на onload вписывает флэш в div'ы, но как она это может сделать если pasteMenu их ещё не создала и document.flashes данными не заполнила? PS. если это бред, просьба не посылать меня слишком далеко |
|
|||||
|
.grin! wuz here
|
попробуй не window.onload, а document.body.onload хотя по идее всё должно пахать. бо алгоритм такой:
pasteMenu вставляет моментально дивы, и задаёт им айди, по которым эти дивы тут же и заносятся в массив. а как окошко загрузилось (явно после всех этих действий) в эти дивы проставляются флешки. тут баг: document.flashes.push(document.getElementById(['f'+document.flashes.length),txt]) надо: document.flashes.push([ document.getElementById('f' + document.flashes.length), txt])
__________________
Breakcore them all! |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|