Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как центрировать input поле в спрайте (http://www.flasher.ru/forum/showthread.php?t=178841)

Isfet 30.04.2012 10:10

как центрировать input поле в спрайте
 
Вообщем проблема такая, нужно центрировать Input текстовое поле в различного размера спрайтах.
Пример кода привести не могу, так как отрисовка спрайтов берется из БД.
Код AS3:

public function ClickOnSprite(e:MouseEvent){
                                var myText:TextField = new TextField();
                                        this.addChild(myText);
                                        myText.width = 15;
                                        myText.height = 15;
                                        myText.border = true;
                                        myText.y = e.target.height/2-myText.height/2;
                                                        myText.y = e.target.width/2-myText.width/2;
                                        myText.type = TextFieldType.INPUT;
}

таким макаром он конечно центрируется, но мне нужно забивать в это поле числа от 1 до 999 и хотелось бы конечно чтобы оно при разном размере числа автоматом центрировалось.
пробовал myText.autoSize = TextFieldAutoSize.CENTER ;
но он как то не так работает, помогите кто сталкивался уже с такой проблемой

Wolsh 30.04.2012 10:58

autoSize и константы TextFieldAutoSize занимаются размером текстового поля, что и отражено в их названии. Никакого отношения к положению в нем текста они не имеет. Для этого есть свойство TextFormat#align, первое в списке свойств, и набор констант TextFormatAlign, а в нем — заветная константа CENTER.

AlexFrost 01.05.2012 05:49

Wolsh прав. Тоже вначале пути столкнулся с этим. Проблема в понимании. Видимо, .CENTER - неумышленно(подсознательно) воспринимается за выравнивание по центу(эхо из CSS?).
А так да, нужно создавать TextFormat и присваивать его текстовому полю.

Isfet 02.05.2012 08:06

а еще вопрос маленько не по теме.
Есть вращающийся спрайт, в нем текстовое поле (что-то проде номера этого спрайта), когда ничинаю вращать спрайт текстовое поле пропадает, появляется только когда спрайт вернется в первоначальное положение. Как сделать так, чтобы при вращении спрайта текстовое поле было неподвижно и его было видно?

Wolsh 02.05.2012 10:03

1. использовать внедренный (embed) шрифт
2. использовать кеширование в битмап или битмап-фильтры
3. компилировать для плеера 10.3 и выше (на дворе версия 11.2)
4. не вращать текстфилд

Isfet 02.05.2012 13:18

а если текстфилд внутри спрайта, как его не вращать если вращается спрайт?

ramshteks 02.05.2012 13:57

можно не делать текстовое поле "ребенком" это спрайта. Если это по каким то причинам невозможно, то необходимо поворачивать текстовое поле в обратную сторону относительно поворота родительского спрайта. То есть при повороте вашей конструкции на 15 градусов, нужно текстфилд повернуть на -15.


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

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