Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Работа над сайтом > HTML/DHTML/CSS/JS/VB

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2006, 04:09
WWWD вне форума Посмотреть профиль Отправить личное сообщение для WWWD Найти все сообщения от WWWD
  № 1  
Ответить с цитированием
WWWD
[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="clsid27CDB6E-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 есть много копий одного и того же файла так что похоже что они действительно создаются каждый раз заново.

Вопрос: где моя ошибка и можно ли это вообще сделать так как я хочу?
Респект всем кто поможет.

Старый 21.01.2006, 04:16
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 2  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
для этого делается всё в 1й флешке а инфа грузится из иксмл.

а вообще руки обрывать тем, у кого в хтмл сайте меню на флешке.
__________________
Breakcore them all!

Старый 21.01.2006, 04:26
WWWD вне форума Посмотреть профиль Отправить личное сообщение для WWWD Найти все сообщения от WWWD
  № 3  
Ответить с цитированием
WWWD
[1.10 28.01.2006]

Регистрация: Jan 2006
Сообщений: 54
а вот если можно, подробнее, что именно нужно делать в первой флешке и как её скопировать в другие ячейки так чтоб заново не грузило?


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


Последний раз редактировалось WWWD; 21.01.2006 в 04:29.
Старый 21.01.2006, 06:32
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 4  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
я сегодна писал в руфлеш 1ну штуку.
тебе тоже подойдёт. завтра как найду, напишу.
суть: флешки вставлялись почти так же но по виндоу.онлоад.
__________________
Breakcore them all!

Старый 21.01.2006, 13:06
undeddy вне форума Посмотреть профиль Отправить личное сообщение для undeddy Найти все сообщения от undeddy
  № 5  
Ответить с цитированием
undeddy

Регистрация: Dec 2005
Адрес: Холодная Сибирь...
Сообщений: 268
Отправить сообщение для undeddy с помощью ICQ
Цитата:
Сообщение от KidsKilla
а вообще руки обрывать тем, у кого в хтмл сайте меню на флешке.
Объясни, почему.

Старый 21.01.2006, 14:29
WWWD вне форума Посмотреть профиль Отправить личное сообщение для WWWD Найти все сообщения от WWWD
  № 6  
Ответить с цитированием
WWWD
[1.10 28.01.2006]

Регистрация: Jan 2006
Сообщений: 54
спасибо, ждём-с

Старый 21.01.2006, 15:19
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 7  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
по мотивам тв-во скрипта.
не проверял, могут быть ошибки. но суть ясна.
Код:
<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>
хтмл:
Код HTML:
<script> 
pasteMenu("flash/menu_item.swf","100%",50,"1./page1.html","page1"); </script>
<noscript>тут дубль</noscript>
__________________
Breakcore them all!

Старый 21.01.2006, 15:22
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 8  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Цитата:
Сообщение от undeddy
Объясни, почему.
мею = навигация. должно быть доступно безусловно. во всех 100%, а значит уже не флеш.
дубль меню внизу страницы -- левая отмазка.
меню это сугубо функциональная вещь, а не рюшечки.
+ это крайне плохой стиль.

всё остальное объяснять не намерен. зайди на любой сайт по юзабилити, тебе объяснят и даже больше.
__________________
Breakcore them all!

Старый 22.01.2006, 04:39
WWWD вне форума Посмотреть профиль Отправить личное сообщение для WWWD Найти все сообщения от WWWD
  № 9  
Ответить с цитированием
WWWD
[1.10 28.01.2006]

Регистрация: Jan 2006
Сообщений: 54
однако... даже данные мои подставил, за что отдельное спасибо, но либо я не понимаю скрипта, либо там всё-таки логическая ошибка есть (более мелкие уже подправил (сайл)).
Конкретно:
функция pasteMenu ещё не выполняется (?), а функция на onload уже выплонена.
Как я понимаю, именно функция на onload вписывает флэш в div'ы, но как она это может сделать если pasteMenu их ещё не создала и document.flashes данными не заполнила?
PS. если это бред, просьба не посылать меня слишком далеко

Старый 22.01.2006, 10:08
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 10  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
попробуй не 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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