Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   textField input (http://www.flasher.ru/forum/showthread.php?t=195701)

fduch 11.03.2013 21:58

textField input
 
Стыдно спрашивать, но :)))
Запрашиваем ввод текста от юзверя:
Код AS3:

                                var sendmail_tf:TextField = new TextField ();
                                sendmail_tf.maxChars = 150;
                                sendmail_tf.type = TextFieldType.INPUT;
                                sendmail_tf.wordWrap = true;
                                sendmail_tf.x = 10; sendmail_tf.y = 50; sendmail_tf.width = 380; sendmail_tf.height = 160; sendmail_tf.border = true;
                                cont_sendmail.addChild(sendmail_tf);

В какой переменной будет то, что ввелось???
Код AS3:

trace (sendmail_tf)trace(sendmail_tf.text);

недают разультата.

КорДум 11.03.2013 22:01

Код AS3:

sendmail_tf.text

Не дает результата - ищите архитектурную ошибку.

fduch 11.03.2013 22:09

А оно записывается в переменную сразу после ввода, или после какогото действия? ок нажать гденить или еще что?

КорДум 11.03.2013 22:22

Через геттер text можно получить введенный текст у текстфилда в любой момент времени. Не понимаю, что Вам нужно.

Wolsh 11.03.2013 22:31

Намекаю: Справка по классу TextField — раздел События - Event.CHANGE.

fduch 11.03.2013 23:02

Код AS3:

sendmail_tf.addEventListener(TextEvent.TEXT_INPUT, textInputHandler);
sendmail_tf.addEventListener(Event.CHANGE, textInputHandler);

Повесил прослушку....
техтинпутхандлер не отрабатывает ни так и так.

Добавлено через 1 минуту
Цитата:

Сообщение от КорДум (Сообщение 1124677)
Через геттер text можно получить введенный текст у текстфилда в любой момент времени. Не понимаю, что Вам нужно.

Мне нужно чтобы "trace(sendmail_tf.text);" Выдало то, что я ввел в инпут.

MikroAcse 11.03.2013 23:10

Код AS3:

var tf:TextField = new TextField();
addChild(tf);
tf.text = "Введите текст...";
tf.type = TextFieldType.INPUT;
tf.addEventListener(Event.CHANGE, onChange);
 
function onChange(e:Event):void {
        trace(tf.text);
}

Или
Код AS3:

var tf:TextField = new TextField();
addChild(tf);
tf.text = "Введите текст...";
tf.type = TextFieldType.INPUT;
tf.addEventListener(Event.CHANGE, onChange);
 
var debug:TextField = new TextField();
addChild(debug);
debug.y = tf.textHeight + 4;
debug.text = "Ожидание...";
debug.autoSize = TextFieldAutoSize.LEFT;
 
function onChange(e:Event):void {
        debug.text = "Вы только что изменили текст: " + tf.text;
}


fduch 11.03.2013 23:18

Да все так и есть! неработает!

Добавлено через 1 минуту
Аа... Вот оно.....
Оно у меня обьявляется 2а раза!
Сперва public var потом var )
Теперь все работает спс.

Добавлено через 5 минут
А вопрос не совсем в тему, как кодировку поменять, чтобы в mysql норм виделась?
в mysql стоит utf8_unicode_ci

MikroAcse 11.03.2013 23:32

Цитата:

Аа... Вот оно.....
Оно у меня обьявляется 2а раза!
Сперва public var потом var )
Теперь все работает спс.
Если не понял, почему так происходит:
Код AS3:

public var variable = 1;
public static var variable = 2;
public function func() {
    var variable = 0;
    trace(variable); // 0
}

Код AS3:

public var variable = 1;
public static var variable = 2;
public function func() {
    trace(variable); // 1
}

Код AS3:

public static var variable = 2;
public function func() {
    trace(variable); // 2
}

Вот так можно обратиться ко всем variable's:
Код AS3:

public var variable = 1;
public static var variable = 2;
public function func() {
    var variable = 0;
    trace(variable, this.variable, ThisClass.variable); // 0 1 2
}

Т.е. переменные могут быть локальными, статическими и, как-бы так сказать, классовыми (private/public/protected/internal const/var ...).
Переменная в локальной среде (в нашем случае это: var variable = 0) имеет наивысший "приоритет".
Переменная в "классовой" среде имеет приоритет ниже, чем в локальной, но и больше, чем в статической среде.
Переменная в статической среде имеет найнизший приоритет.
Надеюсь, понятно рассказал :)
Прошу прощения за незнание наименований.

fduch 12.03.2013 00:04

Прикольно, спс, учту, запишу себе)))
Вопрос на эту же тему...
Я когда вывожу несколько данных допустим в цыкле, использую одну и туже переменную, обьявляя ее постоянно и смещаю координаты вывода.
Код AS3:

for (var i:int = unit_list_begin; i < unit_list_begin+kol_unit; i++) {
 
                                var ataka:TextField = new TextField();
                                ataka.y = yy; ataka.x = xx;        ataka.text = "Атака:  " + load_unit.ataka[i];
                                ataka.setTextFormat(fontFormat); cont_unit_list.addChild(ataka);

Это нормальный способ "сэкономить" переменные, или как то проще можно поступить?


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

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