PDA

Просмотр полной версии : Создание экземляров дочерних классов от MovieClip


Alex T
03.05.2006, 17:21
значит создаю подкласс класса MovieClip и пытаюсь сразу определить событие onMouseDown, но ничего не получается...
Помогите кто чем может...


class temp extends MovieClip {
function onMouseDown() {
trace("ok");
}
}

etc
03.05.2006, 17:22
И как ты юзаешь этот класс? (И классы надо с большой буквы называть)

Nirth
03.05.2006, 17:23
Рекомендация - класс именовать с большой буквы.
в классе ошибки не вижу, есть только придирки к оформлению=)

Alex T
03.05.2006, 17:25
Да то, что с большой буквы это формальности (я торопился, когда писал)...:)
А юзаю ну как обычно: var my_temp=new Temp();

Nirth
03.05.2006, 17:31
Мувиклипы так не создаються.
После написания класса, нужно открыть библиотеку и создать там новый мувик, после чего щелкнуть по галочке Export For ActionScript, откроесть в поле AS2 Class вписать путь к файлу, изходя из CLASSPATH(тоесть com.onorange.crypt.MD5 например).

Для загрузки классов-мувиклипов стоит почитать соотвествующую тему в FAQ (http://flasher.ru/forum/showthread.php?t=71896)

После чего экземляры класса нужно создавать фабричным методом класса MovieClip - attachMovie
myContainer.attachMovie("myClassID",other params);

etc
03.05.2006, 17:37
Я юзаю такую конструкцию для создания мувика-экземпляра класса MyClass:
class MyClass extends MovieClip {
function MyClass() {
// contructor
}
public static function create(this_mc:MovieClip, name:String, depth:Number, init_obj:Object):MyClass {
var out_mc:MovieClip = this_mc.createEmptyMovieClip(name, depth);
var current_constructor:Function = MyClass;
out_mc.__proto__ = current_constructor.prototype;
for (var i:String in init_obj) {
out_mc[i] = init_obj[i];
}
current_constructor.call(out_mc);
return MyClass(out_mc);
}
}
// USAGE
var my_mc:MyClass = MyClass.create(this,"myclass_mc",0,{_x:25,_y:65});

з.Ы. Спасибо Ване за счастливое детство.
Впрочем, данную конструкцию усовершенствовали до класса McFactory... Но это детали уже...

Alex T
03.05.2006, 17:40
Т.е. я делаю сл. шаги:
1.Создаю класс во внешнем файле.
2.Прописываю путь к нему (как в import) в свойстве пустого библиотечного символа.
3.Потом аттачу мувик из библиотеки?
4.И делаю var my_temp=new Temp();? т.е. как мне создать екземпляры класса?

Nirth
03.05.2006, 17:42
Нет экземляры класса создаються фабричным методом класса MovieClip
_root.attachMovie("myClassID",other params);