![]() |
центрирование MovieClip по объектам в нем
можно ли так сделать.
есть большой мувик (map1), в нем находится много объектов (object1, object2 ....) нужно сделать поиск их на карте. я делал так: двигал весь мувик (карту) чтоб нужный объект был в центре, смотрел его координаты в info, потом в лист боксе писал Код:
case "object1":Знакомый говорит, что наверняка есть какой то способ, чтоб каждый раз не определять координаты объектов, а как то программно центрировать мувик (map1) по объектам в нем находящихся (object1, object2 ....) . Вопрос: Можно ли центрировать мувик (чтоб объект был в центре экрана), по именам мувиков (object1, object2 ....), в нем находящихся, а не определяя каждый раз координаты мувика? |
Не совсем понятен вопрос!
А вообще Код:
this["имя мува"]._x = Stage.width/2 //точка регистрации мува в центре |
Код:
this["имя мува"]._x = Stage.width/2 //точка регистрации мува в центрея имел ввиду что то вроде этого Код:
this["map1.object1"]._y = Stage.height/2 // мувик map1 переместится |
Пользуйтесь в таком случае функциями localToGlobal и globalToLocal
И потом код Код:
this["map1.object1"]._x;Код:
map1["object1"]._xА вообще алгоритм такой: 1. Поскольку клип object1 находится на временной шкале клипа map1 локальные координаты клипа object1 необходимо пересчитать в глобальные (главной временной шкалы. Или в Ваших терминах - экрана), используя для этого localToGlobal(). 2. Получив глобальные координаты клипа object1 находим разницу между ними и глобальными координатами центра экрана с использованием лексем Xцентра_экрана = Stage._width/2 и Yцентра_экрана = Stage._height/2. 3. Вычитаем/складываем (в зависимости от знака) эти координаты с/из координат клипа-носителя map1 и центр мува object1 совпадет с центром экрана. |
Вложений: 1
наверное, так
|
Весьма оригинальный пример с классом Tween!
Но нет гарантии, что заказчику нужны именно такие расширенные функции:) С localToGlobal() все делается намного проще. |
Когда я делал карту, просто добавил новое свойство для всех мувиков:
Код:
MovieClip.prototype.addProperty("coord",function(){ // Свойство координаты центра мувика |
прикольно, я тогда делал пол дня наверно (obj1 ... obj125), а можно было минут за десять сделать.
|
Я в своё время для создания карты делал так: снимал показатели объектов по _x и _y
и прописывал скрипт: Если данный _x меньше нужного то увеличивать, если больше уменьшать то же и по _y выходило прикольно, при срабатывании функции общая картина ехала с заданной скоростью к нужной точке |
Можно было и без if....
Просто находишь разницу между требуемой точкой клипа и текущей, и делишь все это на количество шагов - получаешь шаг, а потом, например, в обработчике onEnterFrame прибавляешь полученную величину к текущей координате клипа и заодно контроллируешь кол-во сделанных шагов. |
| Часовой пояс GMT +4, время: 16:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.