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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.01.2008, 22:58
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 1  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Question Помогите сделать меню

В общем делаю меню следующее (файл прикрепляю).
Долго мучаюсь уже. Получается сделать красиво только если пункт выбирать мышкой сверху или снизу, а если с выбранного пункта переходить на соседний - никак не могу придумать как реализовать чтобы нормально работало, у меня уже все идеи кончились. Может у кого есть подобная swf чтобы код глянуть или кто-нить сталкивался с таким и может подсказать алгоритм, swf прикрепляю, при необходимости могу выложить fla.
Заранее спасибо! Очень нужно, помогите плиз!
Весь код ниже:

Код:
stop();
var count = 17;
var block = false;
var diff = 158;
var koef = Math.ceil(diff / count);
var speed = 1;
var base_width = 214;
var mask_base_x = 158;
function update_params(clip, body_width, clip_id, selected_id)
{
	clip.interval2 = setInterval (function(clip, body_width, clip_id, selected_id) 
	{
		speed2 = _root.speed;
		if ((body_width >= clip.body._width - (speed2 - 1)) && (body_width <= clip.body._width + (speed2 - 1)))
		{
			clip.body._width = body_width;
			clip.body2._width = body_width;
			if (body_width == _root.base_width)
			clearInterval(clip.interval2);
		}
		else
			if (body_width > clip.body._width)
			{
				clip.body._width = clip.body._width + speed2;
				clip.body2._width = clip.body2._width + speed2;
				if (clip_id > selected_id)
				{
					_root["a"+selected_id].body._x = _root["a"+selected_id].body._x - speed2;
					_root["a"+selected_id].body2._x = _root["a"+selected_id].body2._x - speed2;
				}
				else
				{				
					_root["a"+selected_id].mask._x = _root["a"+selected_id].mask._x + speed2;
				}
						if (clip_id > selected_id)
						{
							for (i = selected_id + 1; i <= clip_id; i++)
							{
								_root["a"+i].body._x = _root["a"+i].body._x - speed2;
								_root["a"+i].body2._x = _root["a"+i].body2._x - speed2;
								_root["a"+i].mask._x = _root["a"+i].mask._x - speed2;
							}
						}
						else
						{
							for (i = clip_id + 1; i < selected_id; i++)
							{
								_root["a"+i].body._x = _root["a"+i].body._x + speed2;
								_root["a"+i].body2._x = _root["a"+i].body2._x + speed2;
								_root["a"+i].mask._x = _root["a"+i].mask._x + speed2;
							}
						}
			}
			else
			{
				clip.body._width = clip.body._width - speed2;
				clip.body2._width = clip.body2._width - speed2;
				if (clip_id > selected_id)
				{
					_root["a"+selected_id].body._x = _root["a"+selected_id].body._x + speed2;
					_root["a"+selected_id].body2._x = _root["a"+selected_id].body2._x + speed2;
				}
				else
				{				
					_root["a"+selected_id].mask._x = _root["a"+selected_id].mask._x - speed2;
				}
						if (clip_id > selected_id)
						{
							for (i = (selected_id + 1); i <= clip_id; i++)
							{
								_root["a"+i].body._x = _root["a"+i].body._x + speed2;
								_root["a"+i].body2._x = _root["a"+i].body2._x + speed2;
								_root["a"+i].mask._x = _root["a"+i].mask._x + speed2;
							}
						}
						else
						{
							for (i = clip_id + 1; i < selected_id; i++)
							{
								_root["a"+i].body._x = _root["a"+i].body._x - speed2;
								_root["a"+i].body2._x = _root["a"+i].body2._x - speed2;
								_root["a"+i].mask._x = _root["a"+i].mask._x - speed2;
							}
						}
			}
	}, 20, clip, body_width, clip_id, selected_id);
}

count = 17;
elems = [];
e_width = 56;
e_interval = 2;

for (var k = 1; k <= _root.count; k++)
{
	_root['a'+k].onRollOver = function()
	{
			item = Number(this._name.substr(1,this._name.length-1));
			for (i = 1; i <= _root.count; i++)
			{
				clearInterval(_root["a"+i].interval2);
				if (i != item)
					update_params(_root["a"+i],_root.base_width - _root.koef + 1,i,item);
			}
	}
	_root['a'+k].onRollOut = function()
	{
			item = Number(this._name.substr(1,this._name.length-1));
			for (i = 1; i <= _root.count; i++)
			{
				clearInterval(_root["a"+i].interval2);
				if (i != item)
				{
					update_params(_root["a"+i],_root.base_width,i,item);
				}
			}
	}
}
Вложения
Тип файла: rar for_forum.rar (23.5 Кб, 70 просмотров)


Последний раз редактировалось mre; 21.01.2008 в 23:39.
Создать новую тему   Часовой пояс GMT +4, время: 12:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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