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

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

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию Цикл: неправильный счет

Сабж.
Код:
for (n = 2; n <= 6; n++){
     _root.top_menu["top_b" + n].onPress = function(){
          trace(n);
     }
}
При нажатии на соответствующую кнопку выдает 7. Т.е. с самого начала ролика происходит счет до 6, а потом при нажатии плюсуется еще 1 и выносится в трэйс.
Что не правильно(желательно с объяснениями) в этом коде и как это исправить?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!


Последний раз редактировалось TanaTiX; 02.03.2008 в 22:25.
Старый 02.03.2008, 22:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
1. Персонально вам говорю, перед вставкой код, форматируйте его. Собюлюдайте табуляцию, ставте между операндами пробелы и тп. Это упрощает чтения кода глазами, а у вас каша.
2. Избегайте писать конструкции n <= 6, пишите лучше n < 7
3.
Код:
for (n = 2; n < 7; n++) {
	_root.top_menu["top_b" + n].n = n;
	_root.top_menu["top_b" + n].onPress = function () {
		trace (this.n);
	};
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.03.2008, 22:14
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
for (n = 2; n < 7; n++) {
	var top_b = _root.top_menu["top_b" + n];
	top_b.n = n;
	top_b.onPress = function() {
		trace(this.n);
	}
}

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Спасибо, работает.
Цитата:
Сообщение от iNils
1. Персонально вам говорю, перед вставкой код, форматируйте его. Собюлюдайте табуляцию, ставте между операндами пробелы и тп.
ок, учту
Цитата:
Сообщение от iNils
2. Избегайте писать конструкции n <= 6, пишите лучше n < 7
Почему?
И если не сложно, можно объяснить 2ю строчку кода?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 02.03.2008, 22:33
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 5  
Ответить с цитированием
Mr. Fixit
Banned
[+1 08.05.08]
[+4 14.04.08]
[+1.3 02.05.08]

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
MovieClip - динамический клас. И ты просто создаешь ему свойство, в даном случае, n и присваиваешь текущее числовое значение.

Старый 02.03.2008, 22:38
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Почему?
Простая оптимизация, <= требует чуть больше операций (на уровне байт кода), чем <.

Цитата:
И если не сложно, можно объяснить 2ю строчку кода?
В строки trace(n); n это имя переменной изменяемое циклом, а не ее значение.
Поэтому втроая строчка создает локальную переменную внутри кнопки и присваивает ее текущие значение n цикла.
То есть у вас на самом деле два n: локальное в кнопке и у предка.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.03.2008, 23:58
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 7  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
У меня внутри мувика при нажатии должна проигрываться анимация. Я по аналогии внутри цикла ввожу:
Код:
top_b.menu_title_mc.gotoAndPlay(21);
Но тем не менее ничего не проигрывается, т.е. в данному случае top_b опять воспринимается как глобальная переменная, а не как свойство мувика. Что нужно исправить?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 03.03.2008, 00:04
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код:
this.menu_title_mc.gotoAndPlay(21);

Старый 03.03.2008, 00:14
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 9  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
udaaff, я это пробовал, но не работает. Если написать тот код, который я написал вначале, то срабатывает не на нажимаемой кнопке, а только на последней из списка однотипных
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 03.03.2008, 00:24
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Должен срабатывать...
Код:
for (n = 2; n < 7; n++) {
	var top_b = _root.top_menu["top_b" + n];
	top_b.n = n;
	top_b.onPress = function() {
		trace(this.n);
		this.menu_title_mc.gotoAndPlay(21);
	}
}

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

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

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


 


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


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