Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   натянуть Sprite на объекты (http://www.flasher.ru/forum/showthread.php?t=163679)

Max360 10.08.2011 13:02

натянуть Sprite на объекты
 
Здравствуйте. Пишу что-то типа прокрутчика, вообщем перелистывает фотографии в полосе. Для этого пользуюсь спрайтом, т.е. добавляю объеты на спрайт, а потом весь спрайт передвигаю по экрану. Следующим щагом добавляю новый элемент с нужной стороны, передвигаю спрайт, удаляю вылезший - лишний элемент. Так вот у меня глюки, вообщем размеры спрайта каким-то странным образом изменяются. А мне нужно чтобы после каждого сдвига его размеры становились прежними.
Можно как-нибудь сказать спрайту чтобы он обтянулся вокруг существующих детей?

Hidest 10.08.2011 13:07

Двигайте не сам спрайт, а детей в нем. Ну или scrollRect в помощь. Возможно не до конца понял вопрос с этим вот вашим "обтянуть" :)

GBee 10.08.2011 13:08

Добавляете детей в "конец" спрайта, удаляете от (0,0), вот он и растет. Как я понимаю.

Max360 10.08.2011 13:11

Цитата:

Сообщение от GBee (Сообщение 1020039)
Добавляете детей в "конец" спрайта, удаляете от (0,0), вот он и растет. Как я понимаю.

Да именно так, при удалении ребенка из (0,0) мне нужно чтобы спрайт уменьшился иначе следующее добавление в конец будет, уже совсем не вконец (((

goodguy 10.08.2011 14:15

Он не может стать меньше, чем края самого крайнего ребенка ) (о как выразился :D )
Тебе надо все добавленное в него смещать ближе к нулю, когда что-то удаляется. + не используй простой спрайт, лучше расширь его и сделай оверрайд геттеров width и height, а в них возвращай какую-то постоянную величину

Max360 10.08.2011 14:55

Цитата:

Сообщение от goodguy (Сообщение 1020071)
Он не может стать меньше, чем края самого крайнего ребенка ) (о как выразился :D )

так мне и не нужно меньше, было 8 элементов, добавил справа (стало 9-ть), передвинул, удалил слева (стало 8-семь). Теперь получается что слева лишнее место, а ребенка там нет. Как это место удалить. Я предполагал что есть какая-то функция которая определит размеры спрайта по его детям.

goodguy 10.08.2011 15:00

Цитата:

Я предполагал что есть какая-то функция которая определит размеры спрайта по его детям.
Он и так становится меньше. Смотри то, что я написал после этого. С переопределением геттеров. После этого возвращай, например 800
Код AS3:

override public function get width():Number {
      return 800;
}

тогда будет пофиг, сколько там детей, ширину всегда будет возвращать постоянную

КорДум 10.08.2011 15:01

numChildren + removeChildAt() в помощь.

Max360 10.08.2011 15:05

попробую )))


Часовой пояс GMT +4, время: 10:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.