Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Поможите упростить код скрипта (http://www.flasher.ru/forum/showthread.php?t=77415)

den enda son 24.03.2006 20:12

Поможите упростить код скрипта-2
 
Есть набор мувиков с именами "butt_1", "butt_2" ... "butt_N" с расположенными на них надписями (Dynamic text) c именами "txt_1", "txt_2" ..."txt_N", т.е. на MC "butt_1" расположен текст "txt_1" и т.д.
При наведении курсора на "butt_1" c помощью скрипта меняется цвет "txt_1":

_root._root["butt_1].onRollOver = function() {
_root._root["txt_1"].textColor=0xFF0000;
}
Соответственно, при выходе курсора за пределы мува "butt_1" цвет "txt_1" становится прежним (синим):

_root._root["butt_1].onRollOut = function() {
_root._root["txt_1"].textColor=0x0000FF;
}

Затем идет код по смене цвета "txt_2", "txt_3" ... "txt_N"

Вопрос: как скомпоновать (упростить) код скрипта?
Пробовал что-то типа -

for (i=0;i<=ar.length;i++) {
for (j=0;j<=art.length;j++) {
_root._root["butt_"+i].onRollOver = function() {
_root._root["txt_"+j].textColor=0xFF0000;
}
}
}
Но не фурычит
P.S.
"ar" и "art" имена массивов мувиков и надписей соответственно

P.P.S. Не пинайте сильно, если что-то подобное уже было, поиском пользовался, но ничего подобного по упрощению кода не нашел :(

KUZEN 24.03.2006 21:22

Код:

for (j=0;j<=art.length;j++) {
_root["butt_"+i].onRollOver = function() {
_root["txt_"+j].textColor=0xFF0000;
}
_root["butt_"+i].onRollOut = function() {
_root["txt_"+j].textColor=0x0000FF;
}
}

Пользуемся тегом [code] для отображения кода в своих сообщениях

den enda son 24.03.2006 21:46

Перестало фурычить. По событию RollOver/RollOut ничего не происходит, т.е. цвет надписи с синего на красный и обратно не меняется :(
Привожу полный код
Код:

var ar:Array = new Array("butt_1", "butt_2", "butt_3", "butt_4", "butt_5");
for (i=0; i<=ar.length; i++) {
_root._root["butt_"+i].onPress = function(){
_root[_root.lastActivatedButton].gotoAndStop(1);
_root.lastActivatedButton = this._name;
this.gotoAndStop(2);
}
}
var art:Array = new Array("txt_1", "txt_2", "txt_3", "txt_4", "txt_5");                                       
for (j=0;j<=art.length;j++) {
_root["butt_"+i].onRollOver = function() {
_root["txt_"+j].textColor=0xFF0000;
}
_root["butt_"+i].onRollOut = function() {
_root["txt_"+j].textColor=0x0000FF;
}
}


Madasan 25.03.2006 13:19

Код:

var art:Array = new Array("txt_0", "txt_1", "txt_2", "txt_3", "txt_4");
function Over() {
        this.t.textColor = 0xFF0000;
}
function Out() {
        this.t.textColor = 0x0000FF;
}
for (j=0; j<art.length; j++) {
        _root["butt_"+j].t= _root["txt_"+j];
        _root["butt_"+j].onRollOver = Over;
        _root["butt_"+j].onRollOut = Out;
}


den enda son 25.03.2006 23:18

Вложений: 1
to Madasan
Чей-то не фурычит на последней надписи "txt_5", т.е. на ней цвет надписи так и остается синим. Да, а почему в твоем скрипте массив art начинается с "txt_0"?
Для наглядности прилагаю файл.

den enda son 26.03.2006 01:41

Нашел где собака порылась!
Вместо
Код:

for (j=0; j<art.length; j++) {
нужно было писать
Код:

for (j=0; j<=art.length; j++) {
2 Madasan
Thousand thanx!
U're right, bro - Make it fast but don't hurry!!!

Homo Sapiens 26.03.2006 01:44

Цитата:

Сообщение от den enda son
Перестало фурычить. По событию RollOver/RollOut ничего не происходит, т.е. цвет надписи с синего на красный и обратно не меняется

потому что у тебя получается обращение к butt_butt_1, а не фурычит код Madasan, потому что в массие нумерация начинается с 0, а у тебя с 1, соответственно строку
Код:

for (j=0; j<art.length; j++)
меняй на
Код:

for(j = 1; j <= art.length; j++)

den enda son 26.03.2006 01:51

to Homo Sapiens
Thank U too
__________
sapienti sat!


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

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