PDA

Просмотр полной версии : createTextField в Классе


screamge
25.03.2007, 16:27
почему через класс не создаётся новое текстовое поле...вроде всё правильно делаю:


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
сенкс