![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Квач
Регистрация: 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]);
}
}
}
Исходник прикрепляю. Будут вопросы, спрашивайте...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 02.10.2006 в 23:04. |
![]() |
Часовой пояс GMT +4, время: 21:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|