![]() |
Сдвиг системы координат
Всем доброго времени суток :)
Есть вопрос про сдвиг системы координат. При изменении размеров клипа начало координат смещается в зависимости от того, на сколько растянули клип... Например, начальная ширина клипа была 100, объект находился по x = 10, потом растянули клип до 200, соответственно произошёл сдвиг начальных координат и объектов, и теперь, чтобы сместить объект в клипе на прежнее место, надо задавать ему не x = 10, а x = -90. Вопрос такой: можно при изменении размеров клипа сдвинуть систему координат клипа так, чтобы 0.0 находился в верхнем левом углу клипа? |
Клип, поди, нарисованный? Не программно созданный?
Я думаю, что у Вас в нарисованном клипе точка отсчета стоит по центру, а когда Вы программно его растягиваете, то он растягивается от левого-верхнего угла. Соответственно Вам нужно либо в клипе установить точку начала координат руками в левый-верхний угол, либо изменять не width, а scale. |
всё дело в том, что клип чисто программный :) нарисованного там ничего нет ))
можно, конечно, ничего не сдвигать и написать свой класс, который рассчитывал бы всё, но, может быть, можно стандартными средствами реализовать? |
Кхм, а если изменять scale?
|
Вы имеете ввиду изменять его в хтмл? там по умолчанию стоит 'showall', тогда такой вопрос, на что его надо сменить? :)
|
Нет, почему в хтмл?
У MovieClip наряду со свойством width есть и свойство scaleX. Я о нем говорю. |
Дело в том, что у меня связка actionscript 3 + javascript
actionscript вызывает функцию javascript, которая растягивает клип и возвращает его ширину и высоту в пикселях. пробовал менять stage.ScaleX, не помогло :( |
Ну тогда не знаю чем помочь, я сам в общем-то новичок :)
Ждите ответа от старших коллег :) |
кстати, у меня сделано так:
stage.scaleMode = StageScaleMode.NO_SCALE; чтобы компоненты не растягивались вместе с клипом при изменении его размера. если задавать scaleX, то компоненты начинают растягиваться вместе с клипом, поэтому этот способ не подходит :( |
а зачем применять scaleX к stage? Его надо к мувиклипу применять который Вы растягиваете, если я Вас правильно понял.
|
К сожалению, это тоже не помогло :(
Решил траблу с помощью обычной математики: Допустим, дефолтная ширина клипа = 550, новая = 938. С учетом того, что при изменении ширины, компоненты клипа попадают как-бы в середину измененного клипа, получаем: делим клиентскую часть пополам: 550 / 2 = 275 // Старая клиентская область 938 / 2 = 469 // Новая клиентская область 275 - 469 = -194 // Именно на столько нам надо сместить компоненты, чтобы они встали на место :) Аналогично делается для высоты :) Спасибо Вам, Fergus, за поддержку... Но вопрос остается открытым :) |
Что-то не совсем понятно. Вы хотите, чтобы ваш DisplayObject растягивался только в одну сторону, в то время как он у вас растягивается по обеим сторонам?
|
| Часовой пояс GMT +4, время: 12:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.