Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Нажать на кнопку или клавишу Enter, для выполнения функции. (http://www.flasher.ru/forum/showthread.php?t=203133)

slavnovik 03.09.2013 00:02

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

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

Код AS3:

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


slavnovik 03.09.2013 00:18

Цитата:

Сообщение от in4core (Сообщение 1145333)
Код AS3:

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

Цитата:

Сообщение от in4core (Сообщение 1145333)
Код AS3:

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


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

Код AS3:

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, "") == "" Я думал такое невозможно, ОГРОМНОЕ спасибо!


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

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