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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.03.2006, 20:12
den enda son вне форума Посмотреть профиль Отправить личное сообщение для den enda son Найти все сообщения от den enda son
  № 1  
Ответить с цитированием
den enda son

Регистрация: Aug 2005
Сообщений: 9
По умолчанию Поможите упростить код скрипта-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. Не пинайте сильно, если что-то подобное уже было, поиском пользовался, но ничего подобного по упрощению кода не нашел


Последний раз редактировалось den enda son; 27.03.2006 в 20:26.
Старый 24.03.2006, 21:22
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 2  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Код:
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] для отображения кода в своих сообщениях
__________________
BestMasterиZация

Старый 24.03.2006, 21:46
den enda son вне форума Посмотреть профиль Отправить личное сообщение для den enda son Найти все сообщения от den enda son
  № 3  
Ответить с цитированием
den enda son

Регистрация: Aug 2005
Сообщений: 9
Перестало фурычить. По событию 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;
}
}

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

Регистрация: Jun 2005
Адрес: в Питере
Сообщений: 981
Код:
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;
}
__________________
Делай всё быстро, но не торопись!.._/*o|o*\_.

Старый 25.03.2006, 23:18
den enda son вне форума Посмотреть профиль Отправить личное сообщение для den enda son Найти все сообщения от den enda son
  № 5  
Ответить с цитированием
den enda son

Регистрация: Aug 2005
Сообщений: 9
to Madasan
Чей-то не фурычит на последней надписи "txt_5", т.е. на ней цвет надписи так и остается синим. Да, а почему в твоем скрипте массив art начинается с "txt_0"?
Для наглядности прилагаю файл.
Вложения
Тип файла: rar array1.rar (9.4 Кб, 85 просмотров)


Последний раз редактировалось den enda son; 26.03.2006 в 01:32.
Старый 26.03.2006, 01:41
den enda son вне форума Посмотреть профиль Отправить личное сообщение для den enda son Найти все сообщения от den enda son
  № 6  
Ответить с цитированием
den enda son

Регистрация: Aug 2005
Сообщений: 9
Нашел где собака порылась!
Вместо
Код:
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!!!


Последний раз редактировалось den enda son; 26.03.2006 в 01:46.
Старый 26.03.2006, 01:44
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 7  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Цитата:
Сообщение от 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++)
__________________
Всё гениальное просто.

Старый 26.03.2006, 01:51
den enda son вне форума Посмотреть профиль Отправить личное сообщение для den enda son Найти все сообщения от den enda son
  № 8  
Ответить с цитированием
den enda son

Регистрация: Aug 2005
Сообщений: 9
to Homo Sapiens
Thank U too
__________
sapienti sat!


Последний раз редактировалось den enda son; 27.03.2006 в 19:40.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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