PDA

Просмотр полной версии : Проблема с extends Movieclip


Ariel
13.02.2007, 05:50
Отстой какой-то! Туплю безмерно! Создаю форму (обычный мувиклип) с динамическими текстами. Каждому тексту присваиваю инстанс-нейм. Типа, field1, field2, field3 и т.д. Для имени, фамилии, телефона.. как водится. Линкую форму (этот мувиклип) с классом. В классе пишу стандартно:

class Form1 extends MovieClip {

public function Form1() {
field1.text="kjsdbg";
}
}

И ни фига не работает! Пишет, что There is no property with the name 'field1'. И так пишет, пока я не вставлю определение этого field1. Будет тогда так :

class Form1 extends MovieClip {
private var field1: TextField;

public function Form1() {
field1.text="kjsdbg";
}
}

Тогда работает. Но это же ужас!:eek: А если у меня 10 полей? Каждый раз писать private var fieldХ: TextField; ? Почему, если писать во фреймовом скрипте, то не надо ничего специфицировать, всё и так видно? А если у меня еще и вложенные мувиклипы и вообще членов в этом мувиклипе до хрена? ВСЕХ ОПИСЫВАТь? :wacko: Это же простыни кода!
Неужели настолько все неуклюже в Actionscript-e? Или я, как всегда, путаюсь в областях видимости?

etc
13.02.2007, 13:03
Потому что это AS2. В любом нормальном типизированном языке так надо делать. Пишите на AS1, если не хотите.

Ariel
13.02.2007, 15:11
Ой! Неожиданно, однако! :( Т.е., получается, что мой класс должен описывать ВСЕ члены обслуживаемого мувиклипа, так что ли? Все эти текстфилды, встроенные мувиклипы для прогресс-индикаторов и прочая? Ой-ой! Странно как-то получается.. Какие-нибудь еще рекомендации дадите, а то мне тут резко поплохело? Только что вот достойно завершил проект на АС1 (потому как это часть старого проекта была, и на АС2 нельзя было) и решил наваять по-новому в АС2, а оно как упрётся рогом! Может как-то можно налету наследовать от существующего нарисованного мувиклипа в памяти? А то в самом деле, 15 текстфилдов, компоненты, надписи выводить, мувиклипы прогрессиндикаторские крутить.. Кучу всякого специфицировать надо! Неласково как-то получаеццо.. Чего-нть еще в утешение скажите! :umnik2:

iNils
13.02.2007, 15:43
1. Сделать класс динамическим
2. Обращаться к элементам так: this["field1"].text = ...

Ariel
13.02.2007, 15:55
Ага, ага... А как рекомендуеццо? Что-то я там читал, что динамические вроде память жруть или что-то такое.. А возможность обращаться к this, как к массиву, вроде является незащищенностью АС1\АС2...:confused:

etc
13.02.2007, 19:01
Рекомендуется все-таки прописать всё, что есть, для вашего же блага. Если поля однотипны и имеют имена в виде fieldX, то можно обрабатывать в цикле.

Ariel
13.02.2007, 19:45
Усё понял! Спасибо!