![]() |
Управление графикой с помощью классов - без addChild()
Есть SWC подключенный к FD.
В SWC зашита графика Main(Мувиклип) в которой вручную добавлены три объекта(Мувика) Clon1, Clon2, Clon3. Для Main и для каждого из Clon есть AS файлы с их классами. Main после прелодинга успешно попадает на сцену и ведет себя в соответсвие с Main.as Мувики (Clon1 2 3) также стоят на своих местах - как я их и расставил внутри Main. Нигде никаких ошибок не выдается - но почемуто поведение описанное для ClonX не срабатывает Подозреваю что их необходимо также через код addChild() на сцену - но вопрос в том: Разве нельзя обойтись без добавления на сцену программно так, чтоб Мувиклипы автоматом подхватывали и исполняли предписамные им классы в библиотеке? Например у меня есть игра в которой целая куча предметов (ящики, столы, стулья) расставленные мной в ручную для каждой стадии, при этом программно (ВСЛЕПУЮ) расставлять хаотично разбросанные объекты былобы очень сложно |
Это у вас какой то косяк, все должно работать. Но обычно так не делают. Делают вот как : логику описываем отдельно, это значит, что создав в библиотеке символ и задав ему класс, мы должны так же создать отдельно управляемый класс extends ваш графический класс. Но как вы описали, объектов много и кодом добавлять не хочется, тогда придется все описывать в одном классе, - поведение будет нормальным, это 100%.
|
"управляемый класс extends ваш графический класс"
Вот это уже ближе к делу. Но при этом нужно будет добавлять на сцену управляющие классы? Больше интересует даже вопрос как заставить эти Clons начать двигаться, если все они расставлены в ручную ? И в дагонку немного позаковырестей вопрос - Если все Clonx будут extends некий MoveClon в котором описано движение и каждый в super(50); передает скорость своего движения. Вот как тогда прописать в библиотеке? класс - Clon1 ? базовый - MoveClon ? И как всё это дело запустить ? |
По сути, то, что расставлено в ручную на сцене - это экземпляры класса. Они вполне могут расширять один и тот же класс, если выглядят одинаково. Если по разному, но поведение у них подобно, то да, надо указать базовый, всё верно.
Пишем где-то класс MoveClone в нем описываем движение объектов. Сам этот класс пусть расширяет мувиклип. Например: Код AS3:
вот, собственно, и всё |
Вложений: 1
Ну вот у меня так и с сделано.
Есть 3 клона в каждом из них одинаковый мувик с анимацией (клоны закрашены в разный цвет) Каждому клону прописал в библиотеке класс Clon1, базовый MoveClon (также для 2 3) В MoveClon присутвует цикл(setInterval) с движением по X Все клоны лежат внутри Main Cоздаю SWC, подключаю, добавляю Main на сцену. Все отображается но в клонах не срабатывает даже trace как в Clon1 конструкторе так и в MoveClon На простых примерах никак не могу понять более глубокий принцип работы. Чтоже и где делаю не так? Поубирал все лишнее Clon1 не хочет работать даже с базовым классом MovieClip Код AS3:
а быть может все правильно делаю и подводит Flash или FD Если не сложно протестируйте на вашем ПО - сдвинется ли синенький клон на 400? ((( подозрения усиливаются - так как с рядом лежащими graphics.fla и ClonClass Clon1 не хочет добавляться в базовый класс - ClonClass ((( |
Используйте композицию и не мучайтесь.
|
Ахренеть можно!!!!!
Разобрался! Вообщем класс в библиотеке Clon1 не должен был присутвовать в раельном Clon1.as Тупо убил это файл и Flash позволил указать Clon1 с базовым ClonClass Запустил в FD и Clon1 стал вести себя как предписанно в ClonClass Надеюсь эта темка пригодится комуто из новичков ))) Добавлено через 3 минуты Аааа стоп :)) А как тогда быть если всетаки требуются 3 клона и каждый должен указать свою скорость? До того как все заработало предпологал делать так Код AS3:
|
| Часовой пояс GMT +4, время: 04:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.