Просмотр полной версии : Программное выделение группы клипов
Я бы хотел программно выделить несколько клипов, чтобы их повернуть одним блоком. Т. е. я бы хотел задать
_rotation
для всего блока, который включает несколько клипов.
вращайте контейнер, содержащий эти клипы
lexa2000lexa
14.10.2009, 14:57
вращайть контенер скорей всего не получиться так как измениться точка регистрации , а вот если в контенере пройти форинном то должно получиться.
так почему же "измениться" точка регистрации и с какого перепугу?
lexa2000lexa
14.10.2009, 15:04
ну вы предлогаете вращать весь контенер? правильно я васпонят. так в этом случае все будет вращаться относительно точки регистрации контенера а не каждый элемент относительно своей точки.
У меня эти клипы находятся в ячейках массива.
Добавлено через 3 минуты
lexa2000lexa, мне как раз нужно весь блок с клипами повернуть относительно одной точки.
Добавлено через 6 минут
У меня весь массив целиком не получается вращать!
Автор, простите, вы о каком массиве говорите? Что у вас находится на сцене и что подлежит вращению?
У меня на сцене появляется несколько клипов, каждый из которых помещается в ячейку массива. Нужно повернуть все клипы одновременно относительно левого верхнего угла самого крайнего.
lexa2000lexa
14.10.2009, 15:38
ну так помещайте их в контенер, и вращайте его как советовал dimarik
А как это поместить в контейнер, lexa2000lexa?
lexa2000lexa
14.10.2009, 15:49
каким образом они у вас появляються на сцене?
При помощи цикла
for()
Каждый новый клип помещается в ячейку массива.
Автор, в массиве у вас могут храниться только объектные ссылки на мувики. Сами мувики должны быть при этом на сцене (хотя бы в состоянии с _visible = false). Там их и придется вращать.
То есть, если они у вас появляются на сцене с помощью аттачмента из библиотеки, то аттачить их нужно внутрь предварительно созданного мувика-контейнера, который потом можно повернуть.
Если это не так, то даже не представляю, как вам помочь. Если они нарисованы в авторской среде, то значит они изначально должны быть нарисованы находящимися внутри мувика-контейнера.
Покажите ваш код.
А контейнером является ячейка и к ней можно обращаться, mooncar.
Угу. Я в курсе. Когда вы обращаетесь к ячейке, вы обращаетесь к мувику, находящимся на сцене, по хранящейся в этой ячейке объектной ссылке.
Но при этом сам массив не является экземпляром класса MovieClip, а является экземпляром класса Object и, следовательно, задать ему _rotation нельзя.
Массив "хранится" в памяти, а мувики - "хранятся" на сцене.
Поэтому вращать мы можем только мувик-контейнер на сцене, массив с объектными ссылками в памяти вам не поможет.
Вам нужен контейнер.
Кстати, сама сцена может быть контейнером.
Проведите эксперимент, нарисуйте что-нибудь на сцене и запишите в кадре код:
_level0._rotation = 45;
Не уверен что это лучший вариант, но обычно делаю так:
Создаю новый клип, вешаем его на сцену, в нем пишу функцию аттачинга. Потом для этого клипа меняю _rotation.
И не забудьте про корректировку его _x и _y.
Именно это вариант я автору и предлагал в посте №13.
У меня же несколько клипов!
Создаете клип-контейнер, туда аттачите, потом порачиваете его.
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 произносить нет необходимости.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.