Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Создание экземляров дочерних классов от MovieClip (http://www.flasher.ru/forum/showthread.php?t=79183)

Alex T 03.05.2006 17:21

Создание экземляров дочерних классов от MovieClip
 
значит создаю подкласс класса 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

После чего экземляры класса нужно создавать фабричным методом класса 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... Но это детали уже...


Часовой пояс GMT +4, время: 07:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.