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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 sem1313:
Я покажу обработку "роллов" на мувиклипы, которые находятся внутри одного большого мувиклипа, имеющего onRollOut...

2 Kookla:
Сперва создаём в библиотеке мувиклипы кнопки и кнопок-выпадаек. Внутри обоих этих мувиклипов создаём мувиклип label, в котором содержится текстовое поле с именем caption. Это текстовое поле будет отвечать за подписи на кнопках. Можно было не вкладывать текстовое поле в мувиклип label, но я это делаю для гибкости на случай, если в будущем вам захочется сделать не просто изменение цвета надписи на кнопках, но и более сложные эффекты.
Итак, отталкиваясь от моего прошлого примера, который вы видели, пишем скрипт в первом кадре сцены:
Код:
var buttonHeight:Number = 24;
var buttonCaption:String = "НАВОДИТЬ СЮДА"
var buttonX:Number = 100;
var buttonY:Number = 100;

var dropDowns:Array = new Array();
dropDowns.push("ПУНКТ 1");
dropDowns.push("ПУНКТ 2");
dropDowns.push("ПУНКТ 3");
var dropDownHeight:Number = 24;

var dropDownTextColor:Number = 0x000000;
var dropDownHoverTextColor:Number = 0xFF0000;

this.attachMovie("button", "button", this.getNextHighestDepth(), {_x:buttonX, _y:buttonY});
this.button.label.caption.text = buttonCaption;
setColor(this.button.label, dropDownTextColor);

function setColor(MC:MovieClip, colorToSet:Number)
{
	var newColor:Color = new Color(MC);
	newColor.setRGB(colorToSet);	
}

this.button.onRollOver = function()
{
	setColor(this.label, dropDownHoverTextColor);
	var dropDownsLength:Number = dropDowns.length;
	for (var index:Number = 0; index < dropDownsLength; index++)
	{
		var newDropDownName:String = "dropDown" + index;
		var dropDownClip:MovieClip = this.attachMovie("dropDown", newDropDownName, this.getNextHighestDepth(), {_x:0, _y:buttonHeight + index * dropDownHeight});
		setColor(dropDownClip.label, dropDownTextColor);
		dropDownClip.label.caption.text = dropDowns[index];
		dropDownClip.id = index;
	}
}

this.button.onRollOut = this.button.onReleaseOutside = function()
{
	setColor(this.label, dropDownTextColor);
	var dropDownsLength:Number = dropDowns.length;
	for (var index:Number = 0; index < dropDownsLength; index++)
	{
		var dropDownName:String = "dropDown" + index;
		this[dropDownName].removeMovieClip();
	}
}

this.button.onMouseMove = function()
{
	var dropDownsLength:Number = dropDowns.length;
	for (var index:Number = 0; index < dropDownsLength; index++)
	{
		var dropDownName:String = "dropDown" + index;
		var dropDownTextNewColor:Number;
		if (this[dropDownName].hitTest(this._parent._xmouse, this._parent._ymouse, true))
		{
			dropDownTextNewColor = dropDownHoverTextColor;
		}
		else
		{
			dropDownTextNewColor = dropDownTextColor;
		}
		setColor(this[dropDownName].label, dropDownTextNewColor);
	}
}

this.button.onPress = function()
{
	var dropDownsLength:Number = dropDowns.length;
	for (var index:Number = 0; index < dropDownsLength; index++)
	{
		var dropDownName:String = "dropDown" + index;	
		if (this[dropDownName].hitTest(this._parent._xmouse, this._parent._ymouse, true))
		{
			trace("Pressed: " + dropDowns[this.id]);
		}
	}
}
Функция setColor определена для удобства.
Исходник прикрепляю.
Будут вопросы, спрашивайте...
Вложения
Тип файла: zip SimpleDropDownMenuMultiline.zip (6.8 Кб, 77 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 02.10.2006 в 23:04.
Создать новую тему   Часовой пояс GMT +4, время: 21:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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