Просмотр полной версии : Создание экземляров дочерних классов от MovieClip
значит создаю подкласс класса MovieClip и пытаюсь сразу определить событие onMouseDown, но ничего не получается...
Помогите кто чем может...
class temp extends MovieClip {
function onMouseDown() {
trace("ok");
}
}
И как ты юзаешь этот класс? (И классы надо с большой буквы называть)
Рекомендация - класс именовать с большой буквы.
в классе ошибки не вижу, есть только придирки к оформлению=)
Да то, что с большой буквы это формальности (я торопился, когда писал)...:)
А юзаю ну как обычно: var my_temp=new Temp();
Мувиклипы так не создаються.
После написания класса, нужно открыть библиотеку и создать там новый мувик, после чего щелкнуть по галочке 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);
Я юзаю такую конструкцию для создания мувика-экземпляра класса 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... Но это детали уже...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.