Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Класс для текстого поля не передает значения. (http://www.flasher.ru/forum/showthread.php?t=207959)

firefedot 21.05.2014 14:27

Класс для текстого поля не передает значения.
 
Доброе...
Скажите пожалуйста, как поправить класс, чтобы после его применения, смог взять значения текстового поля?)

Код класса:
Код AS3:

package  {
                import flash.display.Sprite;
                  import flash.events.MouseEvent;
                  import flash.text.TextField;
                  import flash.text.TextFormat;
                import flash.text.*;
        public class box_text extends Sprite{
 
                private var box_label:TextField;
 
                public function box_text() {
                        box_label = new TextField();
                        box_label.type = TextFieldType.INPUT;
                        box_label.multiline=false;
                        box_label.maxChars=25;
                        box_label.width=300;
                        box_label.height=30;
                    box_label.y = 15;
                        var myFont:Font = new Font1();
            var format:TextFormat = new TextFormat();
            format.align = "left";
            format.font = myFont.fontName;
            format.size = 22;
            box_label.defaultTextFormat = format;
            addChild(box_label);
        }
 
        public function setText(label:String, x1,y1:int):void {
            box_label.text = label;
                        box_label.x=x1;  //Координаты строки
                        box_label.y=y1;
        }
 
        }
 
}


Вот код применения класса:
Код AS3:

//Кнопка, нажатием на которую хочу получить текст TextFieldá
 
btn_next_reg.addEventListener(MouseEvent.CLICK, regComplite)
 
function regComplite(event:MouseEvent):void{
        trace(box1.text); //Выдает
}
 
var box1 = new box_text();
box1.setText("",330,75);
form_menu_reg.addChild(box1);

Тестовое поле появляется, текст ввожу. а вот применить не могу)
Получаю такое сообщение:
Код:

ReferenceError: Error #1069: Не удалось найти свойство text в box_text; отсутствует значение по умолчанию.
        at Function/<anonymous>()

Подскажите пожалуйста, как получить значение текста?
Или может по другому надо Класс переписать?
Спасибо.

alexcon314 21.05.2014 14:31

Код AS3:

// добавить в класс
public function getText():String {
            return box_label.text;
        }
// применение
function regComplite(event:MouseEvent):void{
        trace(box1.getText());
}


firefedot 21.05.2014 14:41

Спасибо огромное...
Помогло.

in4core 21.05.2014 15:27

alexcon314 -
Код AS3:

public function get text():String {
            return box_label.text;
        }

И выглядит приятнее и понятно, что это геттер. А в твоем случае метод, а метод не требующий параметров и возвращающий что то - всегда делается геттером, а не методом. Ай айай йай

ZackMercury 21.05.2014 15:29

in4core, а как же getTextFormat у TextField, и прочие стандартные примеры?
Ай, забыл, что getTextFormat всё же принимает параметры...
Но всё равно, даже в книге Мука написано, что это дело каждого.
Да и у геттеров и сеттеров есть там какие-то ограничения.

in4core 21.05.2014 15:32

Цитата:

in4core, а как же getTextFormat у TextField, и прочие стандартные примеры?
К тому же, это дело каждого.
Да вот нифига это не дело каждого , это читаемая концепция, в отличие от предидущей. getTextFormat еще с времен AS1 мигрировал.
Короче че тут спорить, пишите как хотите - я буду писать понятно, а главное понятно для себя.

alexcon314 21.05.2014 15:53

Цитата:

метод не требующий параметров и возвращающий что то - всегда делается геттером
ай-я-яй.
Не повернул рубильник "AS3 mode" в положение "ON'", каюсь :). Потом, у автора уже есть setText(). Я за единообразие.

in4core 21.05.2014 17:37

Цитата:

Не повернул рубильник "AS3 mode" в положение "ON'", каюсь
Ну здрасте - в яве такой же асмод )

ZackMercury 21.05.2014 19:04

Цитата:

в яве
Но alexcon314 ведь проповедует С++ :) Он вроде говорил, что яву недолюбливает)

in4core 21.05.2014 19:56

Цитата:

Но alexcon314 ведь проповедует С++
Как в анекдоте - я за 2 недели выучил C++


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

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