Форум 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=121754)

solo19770701 22.02.2009 22:42

размножение кнопок
 
Вопрос. Есть кнопка
Код 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(" Кнопка была нажата");
}
}

. Нажатие на кнопку проходит, но переход на метку кадра нет. Что не правильно делаю?:rolleyes:
Спасибо.

DarkLight 22.02.2009 23:01

Тема обсуждается стотысячный раз:) 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 из имени кнопки

solo19770701 22.02.2009 23:15

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

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

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

MANN 23.02.2009 00:00

может тут что то полезное найдеш
http://www.flasher.ru/forum/showthread.php?t=119700

Wolsh 23.02.2009 00:27

.num здесь - не оператор, а просто динамически созданное свойство, названное "от балды" (мувиклипы позволяют создавать в них свойства динамически, во время выполнения кода)
Поскольку внутри обработчика onPress this ссылается на кнопку, вызвавшую событие Press, this.num и будет этим сохраненным в кнопке свойством num.


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

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