Форум 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)
-   -   Отправка сообщение Enter'ом (http://www.flasher.ru/forum/showthread.php?t=136277)

kodemak 13.02.2010 11:36

Отправка сообщение Enter'ом
 
хочу сделать отправку сообщения клавишей enter
Код AS1/AS2:

on (release, keyPress "<Enter>") {send("hi")}

только когда курсор находится в текстовом поле осуществляется переход на новую строку
клавиша <Up> получается
как мне добиться отправки ентером
и можно ли сделать переход на следующею строку Ctrl + Enter ?

mooncar 13.02.2010 11:47

В таких случаях более верным сделать отправку через Ctrl + Enter, так как Enter все-таки - это перевод на новую строку, эта интерфейсная традиция старше.

kodemak 13.02.2010 11:50

а не очень понимаю как написать код плюсования клавиш

mooncar 13.02.2010 12:07

Пишите код нормально, в кадрах.
Код AS1/AS2:

var keyListener:Object = new Object();
keyListener.onKeyDown = function  () {
        if(Key.isDown(Key.ENTER) && Key.isDown(Key.CONTROL)) {               
                test_tf.text = 'Отпрвлено';
        }
};
Key.addListener(keyListener);

Проверять - вне среды разработки.
Фокус должен стоять на флешке.

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

var keyListener:Object = new Object();
keyListener.onKeyDown = function  () {
        if(Key.isDown(Key.ENTER) && Key.isDown(Key.CONTROL)) {               
                sendFunc ();
        }
};
 
Key.addListener(keyListener);
 
btn.onRelease = sendFunc;
 
function sendFunc () {
        //отправка
}


kodemak 13.02.2010 12:28

спасибо огромное

mooncar 13.02.2010 12:56

Рекомендую также сделать прослушку клавиатуры на предмет Ctrl + Enter только, если юзер что-то делает в поле (вводит текст), чтобы не срабатывало, если фокус вне поля:
Код AS1/AS2:

var keyListener:Object = new Object();
keyListener.onKeyDown = function  () {
        if(Key.isDown(Key.ENTER) && Key.isDown(Key.CONTROL)) {               
                sendFunc ();
        }
};
 
input_tf.onSetFocus = function  () { //курсор встал на поле ввода
        Key.addListener(keyListener);
 
};
 
input_tf.onKillFocus = function  () { //курсор вне поля ввода, оно потеряло фокус
        Key.removeListener(keyListener);
};
 
btn.onRelease = sendFunc;
 
 
function sendFunc () {
        //отправка
}


kodemak 13.02.2010 13:26

почему то при этом нельзя перейти на следующею строку (
и работает только Enter + Ctrl а не Ctrl + Enter несмотря на то в каом порядке написанно это в каде

mooncar 13.02.2010 16:46

Вложений: 1
Цитата:

Сообщение от kodemak (Сообщение 886117)
почему то при этом нельзя перейти на следующею строку

Нужно сделать поле multiline.

Посмотрите пример, там еще нужно некоторые меры принять.

Maximer 13.02.2010 17:52

Код AS1/AS2:

if(Key.isDown(Key.ENTER) && Key.isDown(Key.CONTROL)) {

замени на
Код AS1/AS2:

if(Key.isDown(Key.ENTER) & Key.isDown(Key.CONTROL)) {


udaaff 13.02.2010 18:09

Цитата:

Сообщение от Maximer (Сообщение 886178)
Код AS1/AS2:

if(Key.isDown(Key.ENTER) && Key.isDown(Key.CONTROL)) {

замени на
Код AS1/AS2:

if(Key.isDown(Key.ENTER) & Key.isDown(Key.CONTROL)) {


Зачем правильный вариант менять на неправильный?


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

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