Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как "вмешаться" в название переменной? (http://www.flasher.ru/forum/showthread.php?t=157851)

hobbystudio 11.06.2011 19:16

Как "вмешаться" в название переменной?
 
Здравствуйте. На сцене лежить 10 мувиков с названиями circle_0, circle_1, circle_2, circle_3, circle_4 и т.д. Надо в цикле сделать чтото со всеми мувиками. Как мне подстовлять переменную i в таком коде:
Код AS3:

for(var i:uint = 0; i < this.circles.numChildren; i++) {
        this.circles.circle_1.x = 10;
}

Как бы хочу написать circle_i.

Bgg 11.06.2011 19:23

Если в контейнере только ваши circle, то можно так:
Код AS3:

for(var i:uint = 0; i < this.circles.numChildren; i++) {
  var circle:DisplayObject = this.circles.getChildAt(i);
  circle.x = 10;
}

А ещё лучше занести в массив все circle:
Код AS3:

var circlesArray:Array = [circle_0, circle_1, circle_2, circle_3, circle_4];
for(var i:uint = 0; i < circlesArray.length; i++) {
  var circle:DisplayObject = circlesArray[i];
  circle.x = 10;
}

Есть ещё один колхозный метод:
Код AS3:

for(var i:uint = 0; i < this.circles.numChildren; i++) {
  var circle:DisplayObject = this.circles.getChildByName("circle_" + i.toString());
  circle.x = 10;
}


hobbystudio 11.06.2011 19:32

Bgg A чтото вроде нельзя?
Код AS3:

this.circles.['circle_' + i].x = 10


КорДум 11.06.2011 19:43

Код AS3:

(this.circles['circle_' + i] as DisplayObject).x = 10


Psycho Tiger 11.06.2011 21:59

Код AS3:

(this.circles['circle_' + i] as DisplayObject).x = 10

У автора лежит 10 мувиков с instance name, а не 10 полей класса, ссылающимися на эти мувики.
"Колхозный" метод Bgg самый правильный.

КорДум 11.06.2011 22:04

Так FlashIDE сам же генерирует соответствующие поля.

Psycho Tiger 11.06.2011 22:07

Уверен, во FlashIDE это можно отключить.
Более того, где хоть слово о том, что человек использует FlashIDE? =)

КорДум 11.06.2011 22:11

Убедительно :)

hobbystudio 12.06.2011 02:28

Всем спасибо. Воспользовался "колхозным методом" и все работает как надо. Тема закрыта.


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

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