PDA

Просмотр полной версии : Пути в AS2


ujim
16.10.2005, 00:20
как обращаться к объектам из классов?

Создал MovieClip назвал "TopText", внего поместил "TextArea" с именем "tip" в Linkage для AS2 Class назначил класс "TopText":
Код:

import mx.controls.TextArea;

class TopText extends MovieClip {* *
* *var tip:TextArea;* *
* *function TopText() {};* ** *
*
* *public function setText(showTopText:String) :Void {

* ** *//проверяю выполнение класса при обращении
* ** *//trace("Test Ok");

* ** *//пытаюсь при обращении просмотреть * ** ** *//содержимое текстового поля
* ** *trace(this.tip.text);

* ** *// присвоение значения тексовому полю
* ** *this.tip.text = showTopText;
* *}
}


обращаюсь к классу
Код:

*var Test2:TopText = new TopText();
*Test2.setText(selectedTest);


При обращении тест проходит, появляется сообщение трассировщика "Test Ok", но просмотреть содержимое текстового поля или передать ему значение не получается.

Подскажите в чем ошибка, что не так делаю?

7thsky™
16.10.2005, 14:36
читать хелп и юзать поиск!

MovieClip, TextField, Button нельзя создать посредством new

только методами родительского Мувиклипа:

attachMovie
attachSound
createEmptyMovieClip
createTextField
duplicateMovieClip

так же их и нельзя удалить через delete, а можно только соответствующими методами родительского Мувиклипа

ujim
16.10.2005, 19:43
Я может чего напутал или не так понял, но мной создавался НОВЫЙ класс на основе класса MovieClip, а не сам мувик!

Если бы разобрался с хелпом, сталбы сюда писать и ждать "быстрого" ответа? ;)

iNils
16.10.2005, 19:50
Я может чего напутал или не так понял, но мной создавался НОВЫЙ класс на основе класса MovieClip, а не сам мувик!
Роли не играет, ты ведь хочешь в результате получить мувиклип на сцене?

ujim
16.10.2005, 19:54
вовсе нет, он уже существует там. Всего лишь хочу передать текстовую переменную в его текстовое поле

7thsky™
16.10.2005, 20:06
Я может чего напутал или не так понял, но мной создавался НОВЫЙ класс на основе класса MovieClip, а не сам мувик!

Если бы разобрался с хелпом, сталбы сюда писать и ждать "быстрого" ответа? ;)

"Быстрый ответ"?


*var Test2:TopText = new TopText();
*Test2.setText(selectedTest);

Тут ты именно пытаешься создать instance класса:
По этому два варианта

* либо ты не понимаешь что такое extends MovieClip
* либо одно из двух :)

В твоем варанте если ты действительно в окне Linkage прописал AS2 Class Indificator

то твой класс уже присабачен к мувику лежащему на сцене, точне мув, который лежит УЖЕ наследует от твоего TopText Class
поэтому чтобы определить там лайбл достаточно


yourInstanceName.setText(selectedTest);