PDA

Просмотр полной версии : Программное выделение группы клипов


Сникерс
14.10.2009, 13:51
Я бы хотел программно выделить несколько клипов, чтобы их повернуть одним блоком. Т. е. я бы хотел задать

_rotation

для всего блока, который включает несколько клипов.

dimarik
14.10.2009, 14:35
вращайте контейнер, содержащий эти клипы

lexa2000lexa
14.10.2009, 14:57
вращайть контенер скорей всего не получиться так как измениться точка регистрации , а вот если в контенере пройти форинном то должно получиться.

dimarik
14.10.2009, 15:02
так почему же "измениться" точка регистрации и с какого перепугу?

lexa2000lexa
14.10.2009, 15:04
ну вы предлогаете вращать весь контенер? правильно я васпонят. так в этом случае все будет вращаться относительно точки регистрации контенера а не каждый элемент относительно своей точки.

Сникерс
14.10.2009, 15:07
У меня эти клипы находятся в ячейках массива.

Добавлено через 3 минуты
lexa2000lexa, мне как раз нужно весь блок с клипами повернуть относительно одной точки.

Добавлено через 6 минут
У меня весь массив целиком не получается вращать!

mooncar
14.10.2009, 15:17
Автор, простите, вы о каком массиве говорите? Что у вас находится на сцене и что подлежит вращению?

Сникерс
14.10.2009, 15:21
У меня на сцене появляется несколько клипов, каждый из которых помещается в ячейку массива. Нужно повернуть все клипы одновременно относительно левого верхнего угла самого крайнего.

lexa2000lexa
14.10.2009, 15:38
ну так помещайте их в контенер, и вращайте его как советовал dimarik

Сникерс
14.10.2009, 15:46
А как это поместить в контейнер, lexa2000lexa?

lexa2000lexa
14.10.2009, 15:49
каким образом они у вас появляються на сцене?

Сникерс
14.10.2009, 15:51
При помощи цикла

for()

Каждый новый клип помещается в ячейку массива.

mooncar
14.10.2009, 15:58
Автор, в массиве у вас могут храниться только объектные ссылки на мувики. Сами мувики должны быть при этом на сцене (хотя бы в состоянии с _visible = false). Там их и придется вращать.
То есть, если они у вас появляются на сцене с помощью аттачмента из библиотеки, то аттачить их нужно внутрь предварительно созданного мувика-контейнера, который потом можно повернуть.
Если это не так, то даже не представляю, как вам помочь. Если они нарисованы в авторской среде, то значит они изначально должны быть нарисованы находящимися внутри мувика-контейнера.

Покажите ваш код.

Сникерс
14.10.2009, 16:04
А контейнером является ячейка и к ней можно обращаться, mooncar.

mooncar
14.10.2009, 16:07
Угу. Я в курсе. Когда вы обращаетесь к ячейке, вы обращаетесь к мувику, находящимся на сцене, по хранящейся в этой ячейке объектной ссылке.
Но при этом сам массив не является экземпляром класса MovieClip, а является экземпляром класса Object и, следовательно, задать ему _rotation нельзя.
Массив "хранится" в памяти, а мувики - "хранятся" на сцене.
Поэтому вращать мы можем только мувик-контейнер на сцене, массив с объектными ссылками в памяти вам не поможет.

Сникерс
14.10.2009, 16:08
Да, точно.

mooncar
14.10.2009, 16:16
Вам нужен контейнер.
Кстати, сама сцена может быть контейнером.
Проведите эксперимент, нарисуйте что-нибудь на сцене и запишите в кадре код:
_level0._rotation = 45;

true11
14.10.2009, 16:21
Не уверен что это лучший вариант, но обычно делаю так:
Создаю новый клип, вешаем его на сцену, в нем пишу функцию аттачинга. Потом для этого клипа меняю _rotation.
И не забудьте про корректировку его _x и _y.

mooncar
14.10.2009, 16:22
Именно это вариант я автору и предлагал в посте №13.

Сникерс
14.10.2009, 23:05
У меня же несколько клипов!

mooncar
15.10.2009, 00:05
Создаете клип-контейнер, туда аттачите, потом порачиваете его.

this.createEmptyMovieClip('movie_mc', this.getNextHighestDepth());
var mc1:MovieClip = movie_mc.attachMovie('movie1_id', 'movie1_mc', this.getNextHighestDepth());
var mc2:MovieClip = movie_mc.attachMovie('movie2_id', 'movie2_mc', this.getNextHighestDepth());
var mc3:MovieClip = movie_mc.attachMovie('movie3_id', 'movie3_mc', this.getNextHighestDepth());
//...и т. д.
//Либо аттачите циклом, если библиотечные ID нумерованные

movie_mc._rotation = 45;
"Что тут может быть непонятного?" (с), как говорят на форуме некоторые товарищи еще на стадии постановки вопроса.
Полагаю, что слова о расположении приаттаченного по нужным координатам внутри movie_mc произносить нет необходимости.