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

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

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

Регистрация: Aug 2007
Сообщений: 124
Thumbs down размножение кнопок

Вопрос. Есть кнопка
Код AS1/AS2:
b1.onPress = function()
{
gotoAndStop("pg1");
};
все очень просто. Но вот пробелмма, со временем кнопок стало очень много (25). Писать код для каждой кнопки как то долго - глупо. И вот здесь к чему я пришел
Код AS1/AS2:
for(var i:Number = 1; i<26; i++)
{
this['b'+i].onPress = function()
{
gotoAndStop('pg' + i);
trace(" Кнопка была нажата");
}
}
. Нажатие на кнопку проходит, но переход на метку кадра нет. Что не правильно делаю?
Спасибо.

Старый 22.02.2009, 23:01
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Тема обсуждается стотысячный раз i за пределами цикла отсутствует, и реализуется это так:

Код AS1/AS2:
for(var i:Number = 1; i<26; i++)
{
this['b'+i].num = i;
this['b'+i].onPress = function()
{
gotoAndStop('pg' + this.num);
trace(" Кнопка была нажата");
}
}
Конкретно в Вашем случае можно даже не вводить дополнительное свойство, а получать номер с помощью substr из имени кнопки
__________________
4am is time to rock

Старый 22.02.2009, 23:15
solo19770701 вне форума Посмотреть профиль Отправить личное сообщение для solo19770701 Найти все сообщения от solo19770701
  № 3  
Ответить с цитированием
solo19770701

Регистрация: Aug 2007
Сообщений: 124
to DarkLight: спасибо
Я подозревал что цикл остается локальным.Но не мог додуматсья как его вывести за пределы функции. А то что вопрос обсуждался моног раз, ты прав, но я пропуситл/ненашел это обсуждение.

Вопрос, для общего просвящения, как this['b'+i].num = i, может быть видима внутри onPress функции, и что значит .num (я не смого найти описание этого операторав в хелпе).

Еще раз спасибо за помощь.


Последний раз редактировалось solo19770701; 22.02.2009 в 23:49.
Старый 23.02.2009, 00:00
MANN вне форума Посмотреть профиль Отправить личное сообщение для MANN Найти все сообщения от MANN
  № 4  
Ответить с цитированием
MANN
 
Аватар для MANN

Регистрация: Jul 2008
Адрес: USofA
Сообщений: 42
может тут что то полезное найдеш
http://www.flasher.ru/forum/showthread.php?t=119700

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
.num здесь - не оператор, а просто динамически созданное свойство, названное "от балды" (мувиклипы позволяют создавать в них свойства динамически, во время выполнения кода)
Поскольку внутри обработчика onPress this ссылается на кнопку, вызвавшую событие Press, this.num и будет этим сохраненным в кнопке свойством num.
__________________
Reality.getBounds(this);

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

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

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


 


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


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