Форум 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.
Старый 21.01.2008, 23:17
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 2  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
ничего не понятно

Старый 21.01.2008, 23:37
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 3  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Да просто глянте прикрепленный файл, может где видели подобное, мне бы хотя бы образец.

Старый 21.01.2008, 23:48
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 4  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Пример
Только там горизонтальное меню
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

Старый 22.01.2008, 15:28
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 5  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
тема аналогичная
ктонибудь знает алгоритм движения как в меню: http://www.netpro.ru/?action=DABlank2
понимаю как считывать контекст меню из файла, как создавать пункты, применять функции
а вот не могу понять как все эти пункты так интерактивно, с инерцией реагируют на сдвижку/увеличение размера
помогите плиз
__________________
Самый великий программер - БОГ!

Старый 22.01.2008, 16:39
Fernando Costa вне форума Посмотреть профиль Отправить личное сообщение для Fernando Costa Найти все сообщения от Fernando Costa
  № 6  
Ответить с цитированием
Fernando Costa
 
Аватар для Fernando Costa

Регистрация: Oct 2006
Адрес: simferopol -> kyiv
Сообщений: 2,161
Отправить сообщение для Fernando Costa с помощью ICQ
видимо на обычных Tween-ах там все.
__________________
: M F N W :

Старый 22.01.2008, 17:11
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 7  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
Fernando Costa, я тоже мог бы так предположить
а поконструктивней ничего нет?
как именно могут эти твины между собой взаимодействовать?
__________________
Самый великий программер - БОГ!

Старый 22.01.2008, 18:09
Fernando Costa вне форума Посмотреть профиль Отправить личное сообщение для Fernando Costa Найти все сообщения от Fernando Costa
  № 8  
Ответить с цитированием
Fernando Costa
 
Аватар для Fernando Costa

Регистрация: Oct 2006
Адрес: simferopol -> kyiv
Сообщений: 2,161
Отправить сообщение для Fernando Costa с помощью ICQ
в событии онМоушнЧенжед расставляешь все остальные мувики в соответствии с новыми размерами мувика на которого действует твин. Вот и все батенька
__________________
: M F N W :

Старый 22.01.2008, 18:32
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 9  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Да, прикольно все это, спасибо за образцы менюшек.

Старый 22.01.2008, 19:58
Aisaid вне форума Посмотреть профиль Отправить личное сообщение для Aisaid Найти все сообщения от Aisaid
  № 10  
Ответить с цитированием
Aisaid
[+3 19.07.07]
 
Аватар для Aisaid

Регистрация: Aug 2006
Адрес: Kharkov, Ukraine
Сообщений: 129
Отправить сообщение для Aisaid с помощью ICQ
Цитата:
Сообщение от Fernando Costa
в событии онМоушнЧенжед расставляешь все остальные мувики в соответствии с новыми размерами мувика на которого действует твин. Вот и все батенька
ты сам-то представляешь что предлагаешь?
это нужно массив с координатами пересчитывать до тех пор пока последняя из строк не станет на своё место... тормоза будут нереальные, и к тому же как ты будешь определять, по очереди? стали ли все ячейки на своё место...

нужно что-то другое
__________________
Самый великий программер - БОГ!

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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