![]() |
Set transformation point программно
Здравствуйте, такой вопрос: можно ли программно задавать координаты точки преобразования?
|
Нет. Много раз обсуждалось. Попробуйте погуглить или поиск по форуму.
|
Еще один кандидат на прикрепленную тему... Хотя, таких частых тем полно, будет первая страница вся в прикрепленных...
Программно нельзя, используйте контейнер, в котором смещайте свой клип как вам надо, а в дальнейшем странсформируйте уже контейнер как надо. |
можно, но проще поместить его в спрайт и сместить как надо.
Добавлено через 4 минуты вот решение попроще |
Это просто имитация, сама точка регистрации клипа никуда не смещается. То же самое можно сделать через матрицы трансформации.
Все подобные решения являются заменой, а не реальным изменением точки (можно просто все чайлды клипа еще подвинуть как надо), хотя эти действия и приводят к нужному результату. UPD: блин, речь же о точке трансформации, а не о точке регистрации. Тогда да, в таком контексте можно. |
Цитата:
|
Я уже написал, что сначала писал о точке регистации, а потом понял, что нужна была точка трансформации.. В Flash IDE при трансформации вручную можно эту точку перемещаться как хочется. Автору нужно было именно это, насколько я понял. Но вот никакого метода setTransfomationPoint() у нас, естественно нет, поэтому я и сказал про имитацию именно функционала IDE. Естественно, что точка, относительно которой происходит трансформмирование - понятие абстрактное.
|
точка есть. это точка (0,0). сдвинуть ее нельзя, можно сдвинуть все остальное относительно ее.
при особом желании можно все содержимое обьекта сдвинуть поштучно, а потом сдвинуть то что получилось, но это геморой. вращение например, через матрицу делают, но у меня с первого раза не получилось :) пришел к тому что порекомендовал Hidest |
Цитата:
Цитата:
|
на счет частозадаваемых вопросов не былобы лучше сделать одну прикрепленную тему и там списком давать ссылки на частозадаваемые вопросы. это решилобы часть вопросов.
|
Цитата:
|
Присоединюсь к вопросу автора.
alatar, просто с матрицами, да не просто:) К примеру я с успехом применяю матрицу для смещений всяких. Вращение тоже работает ок - пматрицей ноль клипа передвинул и ок. А вот со скейлами полдня промучался и ничего не получилось. Скейл при любых раскладах работал из лево-верха клипа, а не из нуля оного. (хотя такое же смещение нуля помогало мне когда надо было крутить клип вокруг этого самого нуля). |
Цитата:
|
Цитата:
Код AS3:
|
Спасибо Кэп, я именно так и сделал:)
Вопрос не про "подогнать по пикселам после скейла", а в том что если делать это в ИДЕ - то смена центра влияет и на центр скейла. Кодом у меня это сделать не получилось, кроме как подогнать так как ты привел в своем примере. |
FlashIDE просто сдвигает содержимое в контейнере относительно 0,0. Что значит не получилось кодом?
|
Не получилось - значит при любых раскладах скейлится из лево-верха - вправо-низ.
И кроме как центровать в процессе - ниче не придумалось. Хотя я так полагал что скейл работает из точки нуля мувика (черненький крестик в ИДЕ). И вот знатоки вопрос: - Это я неправильно думаю про скейл и он при любых раскладах таки работает из лево-верха, и пофиг где ноль - или я прав насчет скейла, но все танцы с матрицей на самом деле делают что-то другое, но не сдвигают ноль - или я просто что-то не так делал, и скейл у нас должен быть из точки нуля, и матрица должна свигать именно этот ноль. |
Длина стороны прямоугольника зависит от того, где находится начало координат?
|
Все трансформации работают относительно 0,0 клипа (включая скейл и матрицу).
Матрица сдвигает объект, а не его 0,0. |
А не все ли равно, сдвинуть ноль относительно объекта (что и звучит то абсурдно), или сдвинуть объект относительно нуля?
В итоге этих действий мы получим(ну это как я себе понимаю) один результат - ноль будет в определенной точке клипа (не лево-верх клипа, но что-то другое). |
Ноль всегда будет в нуле,
|
О. теперь понял.
Так а на что же тогда влияет матрица? Куда там она что двигает? |
Она смещает сам объект в родительских координатах. При поворотах объекта создается иллюзия, что объект повернулся относительно некоторой точки.
|
Т.е. получается чтобы действительно сдвинуть центр - нам нужно делать какой-то спрайт-обертку. И интересующий нас спрайт пихать в эту обертку с отрицательными координатами нашего нужного центра?:)
Только так? (Я вообще поначалу только так и делал, пока не узнал что такое матрица и с чем ее едят, считал правда этот метод унылым чуть менее чем полностью в виду потребности плодить дополнительный спрайт. Потом научился пользоваться матрицей, от этого отказался. А теперь выясняется что не настолько этот метод и уныл) |
Ничего унылого в этом методе нет, за исключением лишнего контейнера (если он делается только для трансформаций). Но сам плеер работает через матрицы, по-крайней мере матрица влияет на x, y, width, height, scaleX, scaleY и наоборот, эти параметры влияют на матрицу.
|
Ок, спасибо.
Ура, товарищи, истина найдена:) Держи плюс в карму:) |
| Часовой пояс GMT +4, время: 15:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.