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

zinchencko 27.03.2008 18:31

Как обратиться к группе объектов?
 
Вложений: 1
В приложении исходник. Как сдвинуть с места не одну картинку а все?

badun 27.03.2008 18:38

Засунуть их все в один контейнер и сдвинуть его.

zinchencko 27.03.2008 18:52

а если без засовывания? как обратиться к ним с помощью перебора? или обратиться к одному конкретному? я пробовал задавать им имена с меняющимся id ( в исходнике он закоментирован ).
Код:

private function moveiImg (evt:Object):void
                {
                       
                                        trace(evt.target.name);

// трэйс выдаст contaner1 , т.е имя того контэйнера на который кликнули,
 но если тут же приписать

contaner1.x +=10; // Ругается на несуществующий объект

                       
                }


Storm[pfp] 27.03.2008 18:59

1) при создании мувика (програмно) помещать их в массив
Код:

var mc:MovieClip=createEmptyMovieClip('mc',1)
arr.push(mc)

соответственно потом его перебирать и обращаться
2)можно их засунуть в контейнер (для удобства) и уже в нем перебирть циклом for(in) , искать нужный мувик.

Storm[pfp] 27.03.2008 19:01

Цитата:

Сообщение от zinchencko
а если без засовывания? как обратиться к ним с помощью перебора? или обратиться к одному конкретному? я пробовал задавать им имена с меняющимся id ( в исходнике он закоментирован ).
Код:

private function moveiImg (evt:Object):void
                {
                       
                                        trace(evt.target.name);

// трэйс выдаст contaner1 , т.е имя того контэйнера на который кликнули,
 но если тут же приписать

contaner1.x +=10; // Ругается на несуществующий объект

                       
                }




правильно ругается : что такое contaner1
попробуй так
Код:

var mc:MovieClip=evt.target as MovieClip
mc.x+=100


zinchencko 27.03.2008 19:06

сдвинуть тот на который кликаеш не проблема, можно просто написать
Код:

evt.target.x +=10;
а вот как сделать так что бы при этом и другие сдвинулись?

CrazyFlasher 27.03.2008 19:20

как уже написали - запихать в массив и потом двигать пробежавшись по всему массиву

FilimoniC 28.03.2008 11:32

Надо сдвигать каждую отдельно, либо засовывать их в контейнер и сдвигать его

ulik 28.03.2008 15:25

Цитата:

Сообщение от zinchencko
...я пробовал задавать им имена с меняющимся id ( в исходнике он закоментирован ).
[code]

Если вы рассчитывали на as2 метод перебора по name - зря. В as3 обращаться по "name" к объекту уже нельзя, как это было в as2. Свойство name - "номинально". А ответ на ваш вопрос описали выше (ООП принципы).
Я склоняюсь к методу register/unregister т.е. при создании объекта, регистрировать его (пихать в массив).

zinchencko 28.03.2008 17:00

я уже решил проблему с помощью выше указанного метода. Гигантское спасибо Storm[pfp]


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

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