Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Класс и экземпляры (http://www.flasher.ru/forum/showthread.php?t=206966)

Febz 16.03.2014 20:43

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

Создал мувиклип врага с несколькими кадрами на бег, удар и т.п, и в его Symbol Properties указал класс Enemy. Т.е при добавлении мувика на сцену, ему автоматически присваивается все методы и свойства этого класса.
А как теперь сменить мувиклип этого класса или присвоить этот же класс другому мувиклипу, где изображен другой враг? Или я вообще как-то неправильно подхожу к этому?

alexandrratush 16.03.2014 20:58

Создаете новый мувиклип SubEnemy, рисуете графику, и в разделе "Связывание ActionScript->Базовый класс" указывайте ваш класс Enemy.

in4core 16.03.2014 22:13

Я бы делал так :
Имел бы общий класс Enemy ( view type ) , EnemyModel ( model type ) . В IDE создавал бы только ассеты ( графику ) . Далее линкованием занимался бы внутри ( кодом ).
Код AS3:

var _model:EnemyModel = new EnemyModel ();
_model.name = "Крокодил";
_model.assets = "Asset.swf";
_model.id = 12345;
var _croco:Enemy = new Enemy(_model);

Списки имен, айди, графики и прочее, можно держать ( даже нужно ) в отдельных файлах типа xml например, создавая в моделе алгоритм списания данных.

Febz 16.03.2014 22:51

alexandrratush,
- создаю новый мувиклип,
- отмечаю чекбокс Export for ActionScript,
- в поле Class пишу рандомное название,
- в поле Base class вместо "flash.display.MovieClip" ввожу Enemy и жму ОК.

Выдает "A definition for the base class could not be found in the classpath. Please enter the name of a class that is defined in the classpath, or enter the default base class 'flash.display.MovieClip'.".
Что не так?

toFL 17.03.2014 00:38

Зачем вам множественное наследование мувиков/графики? It's bad idea. fla файлы желательно использовать только для графических исходников.
"Разделяй и властвуй."

alexandrratush 17.03.2014 01:15

Значит путь к классу указан неверно. Нужно писать название с учетом пакета в котором находится класс Enemy, как пример вот это flash.display.MovieClip

Но как сказали выше, это плохая идея.:)

Febz 17.03.2014 10:46

Хм, а каким тогда способом будет эффективней всего, если учитывать, что врагов будет много, но отличаться будут лишь внешним видом и значениями характеристик?

MikroAcse 17.03.2014 10:52

Febz, вам уже in4core ответил по этому поводу.

Babylon 17.03.2014 17:50

Я бы "линкование" вынес во внешний файл. Конечно кому нравиться лазить в код не могу запретить.

in4core 17.03.2014 19:31

Да по разному можно, главное общую систему понять, я пояснил как.


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

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