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

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

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

Регистрация: Jul 2012
Сообщений: 2
По умолчанию синтаксис слияния строк и переменных as

я в as новичок.
вопрос такой: как правильно складывать строки + переменные?
вот например нужно сделать
Код AS1/AS2:
 
while (i<100){
_root.mc+i.gotoAndPlay(2);
i++;
}
т.е. чтобы все клипы mc1, mc2, mc3 , mc 4 и т.д. перешли на 2 кадр.
но такой синтаксис не работает. как правильно это писать? я смотрел в примерах там в некоторых местах квадратные скобки. вместо точки. но куда тогда точки деваются?
вообщем кто может объяснить доступными словами этот момент объясните. т.к. сам я не могу понять

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Код AS1/AS2:
_root["mc" + i].gotoAndPlay(2);
Точка "исчезает" там, где используется запись с применением скобок.
В скобках можно записать строковое значение.
Связано это с тем, что любой объект по сути - это ассоциативный массив собственных свойств (а также внутренних переменных, мувиков и т.д.). Грубо, но примерно так.
Поэтому можно обратиться к ним с помощью такого синтаксиса, когда нужно - то есть, например, если нужно использовать меняющуюся величину в имени содержащегося в нем объекта.

Например:
Код AS1/AS2:
this.mc1.mc2
равнозначно
Код AS1/AS2:
this["mc" + 1]["mc" + 2]
Точечного оператора между ["mc" + 1] и ["mc" + 2], как мы видим, нет.

Удобно при групповом назначении свойств, обработчиков событий и т.д:

Код AS1/AS2:
for (i = 1; i <= 50; i++)
{
  var btn:MovieClip = container_mc["btn" + i]; //в container_mc - все кнопки btn1, btn2 ...
  btn.n = i;
  btn.onRelease = btnRelease;
  btn._x = - 20;
}
 
function btnRelease()
{
  trace(this.n); //выведет номер, который в цикле был i
}
__________________
Идите первым!


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

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

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


 


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


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