Форум 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=213515)

EndoCrinologist 20.10.2016 21:12

Как создать такой класс?
 
Добрый вечер.
Понимаю, что вопрос несуразный но суть такова.
Я пишу игру на HAXE
У меня есть класс CosmoFont, который расширяет TextField.
Код AS3:

package;
import openfl.Assets;
import openfl.text.TextField;
import openfl.text.TextFieldAutoSize;
import openfl.text.TextFormat;
 
/**
 * ...
 * @author Volodin A.S.
 */

class CosmoFont1 extends TextField
{
 
        public function new(txt:String, x:Float=0, y: Float=0, size:Int=22, color:Int=0x000000, autosize:String = "l")
        {
                super();
 
                this.x = x;
                this.y = y;
 
                var textFormat: TextFormat = new TextFormat();
                textFormat.color = color;
                textFormat.size = size;
                textFormat.font = Assets.getFont("fonts/CosmoFont1.ttf").fontName;
 
                defaultTextFormat = textFormat;
 
                embedFonts = true;
 
                switch(autosize)
                {
                        case "l":
                                autoSize = TextFieldAutoSize.LEFT;
                        case "r":
                                autoSize = TextFieldAutoSize.RIGHT;
                        case "c":
                                autoSize = TextFieldAutoSize.CENTER;
                        default:
                                autoSize = TextFieldAutoSize.LEFT;
                }
 
                mouseEnabled = false;
 
                this.text = txt;
        }
 
}

И чтобы создать текстовое поле, мне необходимо передавать в конструктор класса кучу параметров.
Выходит нечто вроде этого:
Код AS3:

coordsTF2 = new CosmoFont2("", 100, 150, 22, 0xffffff);

Вопрос: как мне создать класс, который можно будет настраивать постепенно (ИЛИ в конструкторе)?
Имею в виду:
Код AS3:

cosmo = CosmoFont1();
cosmo.txt = "текст";
cosmo.x = 123
// и т.д.


ZackMercury 20.10.2016 21:34

Почитайте про get- и set-методы
Кстати, x/y наследуются от TextField, их можно по-прежнему трогать за те же геттеры и сеттеры.


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

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