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

flax4Noob 03.01.2011 16:54

массив Спрайтов... как обратится по имени?
 
Добрый день.

Код AS1/AS2:

package 
{
//--skiped...       
 
        public  class Grid extends Sprite
        {
            private var Cells:Array= new Array(); //-- мой ненаглядный костылек...
            //.....
        public function addCells()
                {
 
                        for (var j:uint=0;j < 5; j++){
                                for (var i:uint=0; i < 5; i++) {
                                        var t:Sprite = new TSprite();  //  -- создаем спрайтик.
 
                                        this.addChild(t);  //-- привязываем его к сетке, чтобы он отображался.
                                        t.x = i*32;        //-- меняем координаты.
                                        t.y = j*32;
                                        t.z = -1;
                                        t.name = "cell"+j+"_"+i; //-- меняем имя
                                        Cells.push(t); //-- сохраняем в массив, Это я вынужден делать пока гетчаилд не заставил работать.
                                }
                        }
                }
 
                public function activateCell(x,y)
                {
                        //-- и вот тут не могу придумать как обратиться к ячейке. :(
                        trace((getChildByName("Cell1_1") as TSprite).name);
                }

вот такой простенький код. на экране сетка из ячеек 5 на 5 чтук. По событию мне необходимо обновлять нужную ячейку. Например, центральную. Сейчас я пробегаю по всему массиву пока не найду нужное имя, но это капец костыль. Как бы заставить getChildByName возвращать нужный мне объект... или как вообще принято хранить двумерные ячейки во флеше?

Не пулять памидорками - поставил флакс в этом году только. Не успел прочитать все, что понаписано в интернете ))

Zebestov 03.01.2011 17:17

Код AS3:

public function activateCell(x,y)
{
        trace((Cells(y*5 + x) as TSprite).name);
}


flax4Noob 03.01.2011 17:29

эхъ, как тяжка после нормального пыха тут калупацца))) Понял, пасипа.


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

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