PDA

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


Fj17
16.01.2006, 16:26
Проблема:

есть класс наследуемый от MovieClip
в нём конструктор с параметрами
с использованием этих параметров инициализируются другие переменные класса.

на сцене объект данного класса создаётся с помощью AttachMovieClip
каким образом мне передать значения параметров в конструктор класса?
как понял InitObject из AttachMC инициализирует переменные класса после его создания.

можно ли как-нибудь по-другому создавать и прикреплять экземпляры данного типа?

спасибо.

Nirth
16.01.2006, 16:30
есть два выхода
1) Наследование, использовать initObject (или реализовать это по своему, как например createClassObject в компонентах макромедии)
2) Композиция, создать класс, который бы контролировал какой либо мувиклип.
и в его конструкторе уже можно все вводить.

silin
16.01.2006, 17:06
>>как понял InitObject из AttachMC инициализирует переменные класса после его создания
тут такая штука (поправьте если я не прав)- конструктор нормально видит InitObject:
class Test extends MovieClip{
private var a;
public function Test(){
trace(a);
}
}
////////////////
this.attachMovie('mc','tmp',0,{a:'xxx'})//xxx

KPaul
16.01.2006, 21:23
Это точно, еще была такая практика в AS1:
class Test extends MovieClip{
private var params;
public function Test(){
this.a = this.params.a;
...
delete this.params;
}
}

var params = {a:"", b:1};
this.attachMovie('mc','tmp',0,params})

Antares
16.01.2006, 21:31
Расскажу сказку про то, о чем сказал Давид.

Еще какое-то время назад я почти и не наследовал от мувиклипа. Гораздо удобнее держать класс со ссылкой на его вид. Однако, создавая более-менее серьезный фреймворк пришел к мысли, что надо отказаться от наследования у такого вот самописного заменителя. Почему? Вам надо будет исхитриться реализовать тот же API своими руками, что иногда очень просто, но иногда -- как в случае с созданием копии attachMovie, содержит массу нюансов, отлавливать которые умрешь.

Поэтому теперь если знаю, что классов будет достаточно много и все с разным назначением и видами, наследую от MovieClip. В остальных случаях делаю как и раньше.