Форум Flasher.ru

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

TanaTiX 11.11.2009 02:54

Заставить курсор мигать по центру
 
Как в INPUT-текстовом поле заставить курсор при перемещении в это текстовое поле мигать по центру, а не слева. Выравнивание по центру проблему не решает, т.к. выравнивает по центру текст, т.е. пока его не введешь...

Как вариант - можно было бы заморочиться с пробелами, но, во-первых, есть ограничение на допустимые символы, во-вторых, это слишком сложно (как мне кажется) для такой задачи (не в отношении создания, а в отношении целесообразности), а в третьих, если пользователь решит пару раз нажать backspace или delete, то все пойдет насмарку.
В общем хотелось бы помощи или хотя бы совета. Заранее спасибо.

Kuruki 11.11.2009 03:10

Цитата:

Выравнивание по центру проблему не решает, т.к. выравнивает по центру текст, т.е. пока его не введешь...
непонятно.. вам нужно, чтоб курсор мигал по центру, но выравнивание было слева или что?

TanaTiX 11.11.2009 03:24

да, мне нужно что б курсор мигал по центру тогда, когда текстовом поле еще ничего нет (или уже ничего нет)

kackbip 11.11.2009 08:28

Правильно вопрос задаете :)
Если в текстовом поле ничего нет то делайте выравнивание по центру, иначе - по левому краю. :) Вы же сами примерно так и написали.

TanaTiX 11.11.2009 11:26

kackbip, если делать выравнивание по центру, то по центру отображается содержимое текстового поля, т.е. символы, а вот если в текстовом поле ничего нет, то курсор мигает у левого края. А мне нужно чтоб он мигал по центру. О том и спрашиваю, что не знаю как его заставить мигать по центру, когда в текстовом поле ничего нет.

Kuruki 11.11.2009 11:29

Так он по центру и мигает.. выложите исходник
в cs3

TanaTiX 11.11.2009 12:21

Можно и без исходника, все в один класс поместить можно.
Код AS3:

package {
        import flash.display.Sprite;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
        import flash.text.TextFormatAlign;
        import flash.text.TextFieldType;
        import flash.events.Event;
        public class Main extends Sprite {
                var txt:TextField=new TextField();
                var format:TextFormat=new TextFormat("Tahoma",12,0x73785d);
                public function Main():void {
                        addChild(txt);
                        txt.width=100;
                        txt.height=30;
                        txt.wordWrap=true;
                        txt.border=true;
                        txt.type=TextFieldType.INPUT;
                        txt.autoSize=TextFieldAutoSize.CENTER;
                        format.align=TextFormatAlign.CENTER;
                        txt.setTextFormat(format);
                        txt.addEventListener(Event.CHANGE, onChange);
                }
                private function onChange(e:Event):void {
                        format.align=TextFormatAlign.CENTER;
                        txt.setTextFormat(format);
                }
        }
}


Kuruki 11.11.2009 16:56

Код AS3:

package {
        import flash.display.Sprite;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
        import flash.text.TextFormatAlign;
        import flash.text.TextFieldType;
        import flash.events.Event;
 
        public class Main extends Sprite
        {
                var txt:TextField=new TextField();
                var format:TextFormat = new TextFormat("Tahoma", 12, 0x73785d);
 
                public function Main():void
                {
                        addChild(txt);
                        txt.width=100;
                        txt.height=30;
                        txt.wordWrap=true;
                        txt.border=true;
                        txt.type=TextFieldType.INPUT;
                        txt.autoSize=TextFieldAutoSize.CENTER;
                        format.align=TextFormatAlign.CENTER;
                        //txt.setTextFormat(format);
                        txt.defaultTextFormat = format;
                }
        }
}

Почитайте про разницу между setTextFormat и defaultTextFormat

TanaTiX 11.11.2009 19:14

Kuruki, спасибо, разобрался.


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

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