PDA

Просмотр полной версии : Нажать на кнопку или клавишу Enter, для выполнения функции.


slavnovik
03.09.2013, 00:02
Привет, столкнулся с проблемой. Мне надо, чтобы функция
public function imfun(e:MouseEvent):void
{
if(Im.bar_mc.text_txt.text == "")
{
trace("Нельзя отправить пустое сообщение")
Im.opt.text = "Нельзя отправить пустое сообщение";
}
else {

Im.log_mc.log_txt.appendText (Ls.nick_txt.text + ": " + Im.bar_mc.text_txt.text + "\n" )
Im.bar_mc.text_txt.text = ""
Im.opt.text = "";



}


Работала и при нажатии кнопки и при нажатии клавиши Enter, подскажите, пожалуйста, как так сделать?

in4core
03.09.2013, 00:11
stage.addEventListener(KeyboardEvent.KEY_DOWN , onKey)
function onKey(e:KeyboardEvent):void
{ if(e.keyCode == Keyboard.ENTER) imfun(null);

}

slavnovik
03.09.2013, 00:18
stage.addEventListener(KeyboardEvent.KEY_DOWN , onKey)
function onKey(e:KeyboardEvent):void
{ if(e.keyCode == Keyboard.ENTER) imfun(null);

}

Обращение несущ. св. Keyboard

in4core
03.09.2013, 00:37
import вам поможет

caseyryan
03.09.2013, 07:49
stage.addEventListener(KeyboardEvent.KEY_DOWN , onKey)
function onKey(e:KeyboardEvent):void
{ if(e.keyCode == Keyboard.ENTER) imfun(null);

}

По KEY_UP такие вещи надо делать


import flash.events.KeyboardEvent;
import flash.ui.Keyboard;

// добавляем слушатель клавиатуры, когда доступна сцена
stage.addEventListener(KeyboardEvent.KEY_UP, imfun);

public function imfun(e:*):void { // убрал тип события, чтобы все поместить в один метод, хотя можно и как сказал in4core
if (e.type == KeyboardEvent.KEY_UP) {
var keyboardEvent:KeyboardEvent = e as KeyboardEvent;
if (keyboardEvent.keyCode != Keyboard.ENTER) return; // отрубаем выполнение, если клавиша не энтер
}
if(Im.bar_mc.text_txt.text.replace(/\s/g, "") == "") { // тут регулярным выражением сносим все пробелы, и проверяем. Иначе можно будет отправить сообщение состоящее, например, из пробела
trace("Нельзя отправить пустое сообщение")
Im.opt.text = "Нельзя отправить пустое сообщение";
} else {
Im.log_mc.log_txt.appendText (Ls.nick_txt.text + ": " + Im.bar_mc.text_txt.text + "\n" )
Im.bar_mc.text_txt.text = ""
Im.opt.text = "";
}

slavnovik
03.09.2013, 09:17
if(Im.bar_mc.text_txt.text.replace(/\s/g, "") == "" Я думал такое невозможно, ОГРОМНОЕ спасибо!