Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   createTextField в Классе (http://www.flasher.ru/forum/showthread.php?t=93620)

screamge 25.03.2007 16:27

createTextField в Классе
 
почему через класс не создаётся новое текстовое поле...вроде всё правильно делаю:

Код:

class Test extends MovieClip {
        private var sus_txt:TextField;
        public function Test (){
                this.createTextField ("sus_txt", 1, 10, 10, 100, 20)
                this.sus_txt.text = "some text"
        }
}


или я не от отого расштряю?

etc 25.03.2007 16:30

Ну по-хорошему надо конструктор супер-класса вызвать.
А как ты клип с этим классом создаешь?

screamge 25.03.2007 16:36

создаю так:

Код:

var texs:Test = new Test ();
texs.Test ()

вообще это просто пример, я пишу класс чуть-чть посложнее
просто с этим как-то не получается

iNils 25.03.2007 16:39

Test наследник MovieClip, MovieClip так не создают.

screamge 25.03.2007 16:40

а как?

я вас iNils чуть-чуть не понял

iNils 25.03.2007 16:44

attachMovie, объекту в библиотеке указан класс Test

screamge 25.03.2007 16:46

либо я не понял либо вы меня недопоняли...я не пытаюсь запихнуть на сцену мувиклип..я расширяю класс мувиклипом так как createTextField в другом случае выдаёт ошибку на стадии компиляции

моя задача создать на сцене текстовое поле

iNils 25.03.2007 16:56

Вставте в конструктор класса
Код:

trace (this);
И моймете где вы пытаетесь создать текстовое поле.

etc 25.03.2007 16:57

screamge, прочти пост #7 ещё раз.

screamge 25.03.2007 17:22

_etc, я то прочёл раз этак 7, но чесно говоря......вообщем что с ним? нельзя расширять базовыми классами, не то и ни для того экстендю...или ещё что-то?
iNils, всё понял что малазевс )...

etc 25.03.2007 17:26

Клипы с заданным классом аттачатся через attachMovie.

iNils 25.03.2007 17:33

Можно хакнуть
Код:

class Test extends MovieClip {
        private var sus_txt:TextField;
       
        public function Test (mc:MovieClip){
                mc.__proto__ = Test.prototype;
                this = Test (mc);

                trace (this);
                this.createTextField ("sus_txt", 1, 10, 10, 100, 20)
                this.sus_txt.text = "some text"
        }
}

Код:

var texs:Test = new Test (this);
А можно просто
Код:

class Test {
        private var sus_txt:TextField;
       
        public function Test (mc:MovieClip){
                mc.createTextField ("sus_txt", 1, 10, 10, 100, 20)
                mc.sus_txt.text = "some text"
        }
}

Код:

var texs:Test = new Test (this);

screamge 25.03.2007 17:42

сенкс


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

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