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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.07.2006, 21:45
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 1  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
По умолчанию Как сократить (универсализировать) код?

есть такой код:

Код:
item1.onRelease = function () {
	story.load("item1.xml");
	state.text = "item1";
	_root.big.bpic.loadMovie("item1-01.jpg");
	_root.spic.loadMovie("item1-02.jpg");
};
Объектов item (кнопок), при нажатии которых запускается данный код, около 8.

Как сделать, чтоб не повторять данный код 8 раз подряд ( только с разными item ессно - item1, item2 и т.д.), а написать код так, чтоб при нажатии item1 - подгружался item1.xml, при нажатии item2 - погружался item2.xml и т.д.?
вообщем как сделать универсально всё чотб код не увеличивался при увеличении количества item'ов? А-то если объектов будет штук 100, то код вообще километровый получится, да и редактировать его будет сложно...
__________________
see you later


Последний раз редактировалось xenOnn; 28.07.2006 в 21:49. Причина: изменение заголовка
Старый 29.07.2006, 15:57
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 2  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
По умолчанию ?!!

ну неужели никго не знает???
ведь по-идее просто всё должно быть
нужно как-то ловить имя кнопки которая нажимается...
__________________
see you later

Старый 29.07.2006, 16:06
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 3  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
Код:
for (i=0; i<10; i++) {
	this["item"+i].onRelease = function() {
		story.load("item"+i+".xml");
		state.text = "item1";
		_root.big.bpic.loadMovie("item"+i+"-01.jpg");
		_root.spic.loadMovie("item"+i+"-02.jpg");
	};
}
и, возможно, всегда, как только у тебя появляется мысль в стиле "если объектов будет штук 100", всмоминай о циклах FOR или WHILE - и перебирай себе свои сотни и тысячи. ))) Удачи!


Последний раз редактировалось Что такое хорошо?; 29.07.2006 в 16:10.
Старый 29.07.2006, 18:38
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 4  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
Сенкс, правда циклы же есть... вот я пень..

А как быть если имена инстансов не под номерами идут, а с произвольными именами?
Можно наверное как-то через промежуточную переменную
что писать не так:

this["item"+i].onRelease = function() ...

а что-то вроде этого:

this.X.onRelease = function() ...

где X приравнивался к имени инстанса на который в данный момент нажали

Как такое можно реализовать?


===================

И ещё один вопрос уже по другой теме: как можно ловить имена инстансов на которые нажимают иих координаты тоже?
__________________
see you later

Старый 29.07.2006, 18:58
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 5  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
так, я поспешил
что-то не работает Ваш код

вот что у меня получается:
Код:
for (i=0; i<8; i++) {
	this["item"+i].onRelease = function() {
		state.text = "item"+i;

	};
}
при нажатии на любую кнопку - в текстовом поле появляется одна и таже надпись - item8
ну ессно... цикл проходит от начала до конца и i становится равной 8, всегда...

Как быть-то?
__________________
see you later


Последний раз редактировалось xenOnn; 29.07.2006 в 19:48.
Старый 29.07.2006, 19:20
sergMX вне форума Посмотреть профиль Отправить личное сообщение для sergMX Посетить домашнюю страницу sergMX Найти все сообщения от sergMX
  № 6  
Ответить с цитированием
sergMX

Регистрация: Jan 2006
Сообщений: 54
можно так:

Код:
 
for (i=0; i<8; i++) {
	this["item"+i].X = i;
	this["item"+i].onRelease = function() {
		state.text = "item"+this.X;
	};
}


Последний раз редактировалось sergMX; 29.07.2006 в 19:30.
Старый 29.07.2006, 19:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
sergMX и xenOnn, вам устное предупрежедние за не использование тегов для кода. Если не исправите сами, то предупреждение будет не устным. Время пошло.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 29.07.2006, 19:45
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 8  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
о, сенкс э лот, всё работает
Х - промежуточная переменная так я понимаю, непонимаю почему без неё не работает?...

Вопрос второй (пока был без ответа):

а как быть если имена инстансов не item1, item2...
а что-то вроде этого: item1, button2, circlew
как в тамом случае быть? тут цикл-то не поможет...
__________________
see you later

Старый 29.07.2006, 19:56
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 9  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
может наверное через массив то как-то сделать...
но хочется как-то проще
чтоб AS ловил имя нажатой кнопки
т.е., к примеру, если нажата кнопка с именем green - в текстовое поле вписывался текст "green" и подгружалась картинка с именем green.jpg;
если нажата кнопка с именем bigtman - в текстовое поле вписывался текст "bigman" и подгружалась картинка с именем bigman.jpg и т.д.

Так такое можно сделать?
__________________
see you later

Старый 29.07.2006, 20:06
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 10  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
Код:
green.onRelease=function  () {
	trace(this._name);

}

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

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

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


 


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


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