Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Работа с текстовым полем (http://www.flasher.ru/forum/showthread.php?t=175254)

EndoCrinologist 13.02.2012 13:38

Работа с текстовым полем
 
Код AS1/AS2:

function initPanel(){
        Selection.setFocus(msg.text);
}
 
msg.onKeyDown = function():Void{
        if (Key.getCode() == 13) {
                msg.text = "";
        }
}

Функция initPanel должна устанавливать в поле msg.text фокус. Правильно?

А второй момент - это когда я что-то ввел в поле, я нажимаю Enter и поле должно очищаться. Правильно или нет?

Если нет, то прошу исправить. Заранее, спасибо!

lexa2000lexa 13.02.2012 13:48

А что вам мешает самому это проверить?
но вообще работать не будет, нужно изменить эту часть ващего кода
Код AS1/AS2:

var keyListener:Object = new Object();
keyListener.onKeyDown = function():Void{
        trace(Key.getCode())
        if (Key.getCode() == 13) {
                msg.text = "";
        }
}
Key.addListener(keyListener);


EndoCrinologist 13.02.2012 13:54

Проверка говорит о том, что код не выполняется, хотя сама функция initPanel срабатывает (я в конец функци поставил msg.text = ""). А вот по поводу нажатия, попробую разобраться...

Добавлено через 2 минуты
Попробовал так. Создал кнопку butSend и поменял кодик на
Код AS1/AS2:

butSend.onKeyDown = function():Void{
        if (Key.getCode() == 13) {
                msg.text = "";
        }
}

Всё равно не помогло

lexa2000lexa 13.02.2012 14:09

А чем вас не устраивает, предложенный мой вариант?

EndoCrinologist 13.02.2012 14:13

Даже нашел, как mooncar писал (http://www.flasher.ru/forum/showpost...&postcount=5):
Код AS1/AS2:

        var kl:Object = new Object();
        kl.onKeyDown = function():Void{
                if (Key.getCode() == 13) {
                        msg = "";
                }
        }
        msg.onSetFocus = function(){
                Key.addListener(kl);
        }       
        msg.onKillFocus = function(){
                Key.removeListener(kl);
        }

Тоже не вышло....

Добавлено через 2 минуты
Ладно, забил, сделал вот так:
Код AS1/AS2:

on (keyPress "<Enter>") {
        msg = "";
}

Но как вот мне сразу фоку устанавливать?

lexa2000lexa 13.02.2012 14:17

А вы ставили галку "control>Disable Keyboard Shortcut" ?
Или заустипе swf отдельно а не во Flash ide.

EndoCrinologist 13.02.2012 14:19

Цитата:

Сообщение от lexa2000lexa (Сообщение 1062513)
А что вам мешает самому это проверить?
но вообще работать не будет, нужно изменить эту часть ващего кода
Код AS1/AS2:

var keyListener:Object = new Object();
keyListener.onKeyDown = function():Void{
        trace(Key.getCode())
        if (Key.getCode() == 13) {
                msg.text = "";
        }
}
Key.addListener(keyListener);


Работает, большое спасибо, осталось с фокусом разобраться... Почему он не ставит фокус в поле?

lexa2000lexa 13.02.2012 14:47

на самом деле фокус получает поле, а вот курсора нету , можно исправить вот так
Код AS1/AS2:

function initPanel(){
        Selection.setFocus(msg);
        Selection.setSelection( 0,0 );
}

если я конечно правильно понял вашу проблемму.

EndoCrinologist 13.02.2012 14:58

Нет, не сработало.

Вот смотрите. Юзер нажимает на кнопку "ЧАТ", при этом происходит инициализация панели, которая должна установить фокус в поле, чтобы не щелкать туда мышкой, а сразу можно было вводить текст

lexa2000lexa 13.02.2012 15:04

Вложений: 1
вам вот так нужно


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

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