![]() |
Программное движение по элипсу, проблемы
Появилась задача реализовать подобное программно. Муви клип постоянно движется по определенной элиптической траектории. С помощью рисованной траектории и таймлайновой анимации реализовывать подобное не хочется.
Была попытка сделать это с помощью цикла и четырех движений классом TweenLite. Ничего вразумительного из этого не вышло. Буду очень благодарен, если кто-то поделится своими предложениями и знаниями) |
http://demiart.ru/forum/index.php?showtopic=78132
можно тут глянуть, пример Монстра весьма подробно изложен. |
Огромное спасибо, ссылка очень помогла. А то я тут велосипед изобретал)
|
Вложений: 1
На основе примера Монстра сделал нужное движение.
Код AS1/AS2:
Решается это вот так: Код AS1/AS2:
И тогда, предварительно передвинув муви клип на точку (60, 60), я решаю проблему так: Код AS1/AS2:
В чем может быть проблема? Как избавиться от этого побочного эффекта? Один из нюансов. Когда вместо численных кординат, прописал "mc._x" и "mc._у", мувиклип крутился как бешенный, пока я не увеличил делитель в самой формуле. С 2 до 60. P.S. Мувик обязательно должен быть на главной сцене. Конечно, если бы его можно было просто вложить в другой мувик, и тот уже двигать куда надо, проблем не было бы. Однако код моей флешки не позволяет делать этот клип вложенным. |
Вы подумайте, что вы сделали, заменив 60 на переменную, которую в этой-же строке изменяете, и поймёте, что не так.
|
Ну да.. Глупо было спрашивать почему при этом работает не так, как надо. Но как еще в данном случае заставить клип двигаться вокруг своего положения в сцене, не указывая координат?
|
Эти цифры и есть положение клипа в сцене, т.е. центр эллипса. Вам нужно завести вместо них две новые переменные, и для движения клипа изменять их, а не mc._x,mc._y.
|
Ну допустим:
Код AS1/AS2:
Добавлено через 4 минуты Имеется класс, в котором "mc._x" на "a" поменять никак нельзя. Координаты записываются иным способом. Код AS1/AS2:
|
Вам надо всё-таки немного думать, что вы делаете и что в результате этого происходит. Если вы будете постоянно присваивать a и b значения _x и _y, какой тогда смысл в добавлении этих переменных?
Вторую проблему можно решить разными способами. Можно сделать невидимый объект, к которому вы будете применять трансформации, а потом перемещать на новое место видимый; можно сделать новый класс на основе нужного, и т.д. |
Цитата:
|
Нечего тут демонстрировать, это элементарнейшая вещь.
Переменные инициализируются один раз - задаётся начальное положение объекта. Дальше вы меняете их, когда вам требуется переместить объект. Всё. |
Код AS1/AS2:
|
Вложений: 1
Извиняюсь за долгое отсутствие на форуме.
Код проверил. Работать то работает, а проблема осталась. Объясню поподробнее. У меня есть кнопка(mc). Именно она крутится вокруг своей оси. За кнопкой есть отдельный мувиклип(bg) в два раз больше кнопки. При наведении на него кнопка устремляется за курсором мыши. Когда кнопка его достигает, срабатывает delete mc.onEnterFrame; и пока мышь на ней, она уже не крутится. Дальше если курсор резко отвести в сторону от кнопки, она возвращается на привычное место (60;60) и снова начинает там крутиться. Проблема - когда стал использовать координаты в коде: Код AS1/AS2:
Более очевидно думаю все будет в исходнике. Линиями я выделил область bg. Очень надеюсь на вашу помощь в данной ситуации. |
| Часовой пояс GMT +4, время: 11:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.