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

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

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

Регистрация: Mar 2009
Сообщений: 7
По умолчанию составные имена для кнопок в цикле

На сцене расположены 10 кнопок.
Их instance name соответственно:

image0_btn
image1_btn
...
image9_btn

В зависимости от переменной n нужно изменять свойство _visible первых n кнопок.

Код AS1/AS2:
for (j=0; j<n+1; j++) {
"image"+j+"_btn"._visible = true;
}
возможен ли вообще такой вариант составных имен?
само собой данная строка в цикле не работает.
нашел временный выход с помощью switch case, но более 100 строк кода не вариант.

Старый 06.12.2009, 19:53
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код AS1/AS2:
var n:Number = 5;
for ( i = 0; i < n; i++) {
       _root['image' + i + '_btn']._visible = true;
}
Предупреждая обычные трудности при работе с кнопками или мувиками в цикле, покажу также пример, как на них повесить обработчик:
Код AS1/AS2:
for ( i = 0; i <= 100; i++) {
       _root['image' + i + '_btn'].num = i; 
       _root['image' + i + '_btn'].onRelease = btnOnRelease;
       _root['image' + i + '_btn'].onRollOver = btnOnRollOver;
}
 
function btnOnRelease () {
    trace('Я - событие onRelease на кнопке номер ' + this.num);
}
 
function btnOnRollOver () {
    trace('Я - событие onRollOver на кнопке номер ' + this.num);
}


Последний раз редактировалось mooncar; 07.12.2009 в 00:30.
Старый 06.12.2009, 20:14
plea5ure вне форума Посмотреть профиль Отправить личное сообщение для plea5ure Найти все сообщения от plea5ure
  № 3  
Ответить с цитированием
plea5ure
 
Аватар для plea5ure

Регистрация: Mar 2009
Сообщений: 7
ведь всё просто.
благодарю!

Старый 25.12.2009, 00:29
Oleksiy вне форума Посмотреть профиль Отправить личное сообщение для Oleksiy Найти все сообщения от Oleksiy
  № 4  
Ответить с цитированием
Oleksiy

Регистрация: Dec 2008
Сообщений: 15
Большое спасибо! И мне очень пригодилось.

Старый 29.12.2009, 15:53
spacecadet вне форума Посмотреть профиль Отправить личное сообщение для spacecadet Найти все сообщения от spacecadet
  № 5  
Ответить с цитированием
spacecadet

Регистрация: Dec 2009
Сообщений: 41
Спасибо, mooncar, я тоже воспользовался!

Старый 06.01.2010, 18:15
vladislove вне форума Посмотреть профиль Отправить личное сообщение для vladislove Найти все сообщения от vladislove
  № 6  
Ответить с цитированием
vladislove

Регистрация: Jul 2008
Сообщений: 31
А как правильно написать в случае вложенности?
например если у меня this.mainClip_mc.Picture_mc.(если обращаться надо к обоим вложенным)
И можно ли THIS вместо _ROOT?

Старый 06.01.2010, 18:40
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Не очень понятно, что вы хотите. Развернуто спросите.
(А this в моем примере в разных местах будет указывать на разные объекты - в цикле, и если код на _root, то на него и укажет. А в кнопочных функциях - укажет на нее.)

Старый 06.01.2010, 23:49
vladislove вне форума Посмотреть профиль Отправить личное сообщение для vladislove Найти все сообщения от vladislove
  № 8  
Ответить с цитированием
vladislove

Регистрация: Jul 2008
Сообщений: 31
я имел ввиду что в этой иерархии this.mainClip_mc.Picture_mc клипов много
соответственно существуют mainClip1_mc,mainClip2_mc,и тд и так же Picture1_mc,Picture2_mc и тд
как правильно обратиться к ним в цикле-у меня как раз стоит такая задача
подробнее здесь http://www.flasher.ru/forum/showthread.php?t=134434

Добавлено через 1 час 46 минут
например вот так могу написать
this.['tn' + i + '_mc'].hitareaL_mc._x;

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если сложная вложенная структура, то можно, например, так:

Код AS1/AS2:
for (i = 1; i <= 20; i++) {
    for (k = 1; k <= 10; k++) {
        var mc:MovieClip = this['main' + i]['pic' + k];
        mc._x = i * 20;
        mc._y = k * 20;
        mc.onRelease = picOnRelease;
        mc.num_i = i;
        mc.num_k = k;
     }
}
 
function picOnRelease () {
   trace (this + ',   num_i = ' + this.num_i); //будет выводить номера мувиков согласно их при принадлежности к какому-то main
   trace (this + ',   num_k = ' + this.num_k); //будет выводить номера мувиков согласно их нумерации внутри отдельного  main
}
и т. д.


Последний раз редактировалось mooncar; 07.01.2010 в 16:22.
Старый 07.01.2010, 18:43
vladislove вне форума Посмотреть профиль Отправить личное сообщение для vladislove Найти все сообщения от vladislove
  № 10  
Ответить с цитированием
vladislove

Регистрация: Jul 2008
Сообщений: 31
спасибо огромное за помощь - здесь не часто встретишь такое участие
Как я понял вы предлагаете Цикл в Цикле - Пока не пойму зачем.
В моем случае i = k,или это для реалезации структуры вложенности и даже при i=k надо так?
3 строка вашего кода означает var mc:MovieClip = main1.pik1 ?(при х и к = 1)
Где бы почитать про все эти трюки с квадратными скобками,многие вопросы отпали бы сами собой

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

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

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


 


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


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