Форум 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=144447)

alexes 12.09.2010 19:29

Как использовать один класс, для разных мувиклипов?
 
Есть определенный класс, и я с помощью Linkage, прикрепляю его к определенному мувиклипу, из библиотеки. Сам мувик в это время лежин гдето на сцене. Все работает отлично.
Но вот я хочу этот же класс прикрепить к другому мувику тоже, и тут вылазиит ошибка:
Please enter a unique class name that is not associated with other library symbols.

Почему нужно для каждого мувиклипа писать отдельный класс, если они должны делать одно и то же?

i.o. 12.09.2010 19:44

Ну укажите общий класс в качестве базового для обоих мувиков.

stweet 12.09.2010 19:54

Есть такое понятие "Наследование". Один мувик а так же и все остальные могут быть унаследованы от одного класса. Собственно не могу понять в чём ваша проблема. Было бы не плохо посмотреть на вашу иерархию.

alexes 12.09.2010 20:14

i.o. Спасибо. Все решилось как вы и посоветовали. Я указывал в основной класс, главный класс проэкта. Спасибо еще раз.

in4core 12.09.2010 21:15

А я вот не понял. Сделал я 50 мувиков разных, хочу их аттачить с одинаковым классом, ок.
У нас есть 2 поля классов в библиотеке 1. UserClass 2. Base Class ( base это MovieClip поидее всегда).
Если я 50 мувикам в UserClass напишу какой нить свой класс, то как разпорядится при создании нового экземпляра класса какой мувик аттачим? Неясно.
Тоесть получается var a:myClass = new myClass() // какой из 50 аттачили не ясно.

Далее если же мы дадим некий пользовательский класс в Base, то ситуация в корне не изменится, выходит, что нужно для каждого нового аттача создавать каждый раз пустой класс.

Поэтому объясните, пожалуйста как оно делается прально

gloomyBrain 12.09.2010 21:29

Цитата:

Сделал я 50 мувиков разных, хочу их аттачить с одинаковым классом, ок.
Не получится. Один класс на один мувик.
если вы хотите, чтобы у всех 50 классов было что-то общее - создаем класс ЧтоТоОбщее, который наследует MovieClip. Далее в baseClass всем 50 мувикам указываем ЧтоТоОбщее, а в className конкретно имя класса для данного мувика.
Получается, что все мувики наследуют MovieClip, но между каждым классом мувика и MovieClip лежит дополнительная прослойка в виде ЧтоТоОбщее, в котором определены доп. свойства и методы

Psycho Tiger 12.09.2010 21:36

Цитата:

( base это MovieClip поидее всегда).
Ну, либо он, либо его наследник.

Да, 50 разных классов, с BaseClass = CustomClass.

@Глум: опередил, зараза)

gloomyBrain 12.09.2010 21:40

Цитата:

Ну, либо он, либо его наследник.
Для мувиков с одним кадром можно Sprite поставить, реально работает (CS4) =)

stweet 12.09.2010 21:56

При создании 50 мувиков, было бы логично добавлять их в массив в основном классе, после можно будет обращаться к объектам по индексу массива, а так же к методам элементов массива. Если же вы хотите узнать какой из элементов из массива обратился к классу, то придётся передавать позицию(индекс) элемента в массиве вместе с с самим элементом.

in4core 12.09.2010 22:06

to stweet да вопрос не в том был. Суть , что не хочется создавать сотню пустых классов тупо с public единственным, в котором пусто, если у клипов схожих по структуре ( например просто анимации какие то, или еще что то, не трогающее АС, но при нежелании все кидать на сцену, любитель я 1 кадра пустого и все тут) нет никаких полезных свойств для скрипта. Вот в чем дело.
Код AS3:

package {
        import flash.display.MovieClip;
        public class defaultClip extends MovieClip{
                public function defaultClip() {
                }
        }
}

Ну не приятно по 100 раз создавать нечто подобное для каждого...фу, это минус в данном авм


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

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