![]() |
Создание контейнера (клипа) на линии времени
Добрый день, задался целью создать пустой контейнер для клипов на линии времени для вставки его в клип персонажа, задача контейнера ссылаться на другой клип находящийся в определенном слоте на панели. Как сделать ссылку ? Прямо в контейнере на линии времени что то писать или еще как то можно?
|
Ничего не понятно.
|
Пустой MovieClip без изображения должен ссылаться на MovieClip с изображением и соответственно это изображение должно переносится в пустой MovieClip. Как это сделать?
|
Если мувиклип без анимации, то можно использовать Bitmap и рисовать клип.
С анимацией придется делать это каждый кадр, но производительность будет соответствующей. Добавлено через 5 минут А можно сделать просто новый экземпляр того мувика, если конечно у него задан класс. |
класса нету, это просто символ в библиотеке который я вставляю в анимацию персонажа, в данный момент он пустой (предположим что этот символ Меч) персонаж машет невидимым мечем, а теперь мне нужно программно указать что невидимый меч приобретает изображение другого символа и персонаж машет уже изображением другого символа, хотя название символа тоже что и раньше т.е. пустого.
|
addChild() вроде, не?
|
Допустим у вас есть куча мувиков с оружием в библиотеке. Каждому мувику задаете свой класс (например, ShortSword, LongSword, Skimitar).
Теперь в ваш пустой(пока еще) клип добавляете нужный меч, например: Код AS3:
|
Благодарю вас уважаемые вы мне очень помогли! ++
|
Подход изначально неверный. Если меча нет - то и мувика "меч" не должно быть
Если появляется меч, делайте Код AS3:
Добавлено через 20 минут Finite State Machine video tutorial part 1 part 2 |
Цитата:
|
Вы же помните, что вместо меча там может быть лук, арбалет, гранаты, или противотанковая ракета
Также персонаж может быть без оружия вообще Поэтому анимировать слот по умолчанию я бы не назвал хорошей идеей. Оружие может быть контактным, дистанционным, иметь разные размеры, hit-области и еще кучку свойств определенных в базовом классе Weapon В целом я пока разницы не вижу, добавлять в контейнер, или прямо к персонажу. Но вообще, я говорил только о том что добавлять предметы нужно по мере их необходимости в игре. |
Если Вы когда-нибудь анимировали персонажа, все его действия, как он бегает, поворачивается, стреляет – влево, вправо, вперед – то идея добавлять оружие "персонажу" а не в специальный слот, положение которого определено в анимации, не может показаться Вам такой замечательной. Граната это или арбалет, нет никакой разницы — оно связано с анимацией. Анимация действий персонажа с гранатой и с арбалетом может различаться, но это не меняет ровным счетом ничего, речь только о разных анимациях персонажа, разных секвенциях кадров или даже разных клипах с персонажем. Разработчик в здравом уме конечно же не добавит гранату в слот анимации действий с арбалетом.
Код AS3:
Добавлено через 12 минут Цитата:
Если перс бъется врукопашку, то и "ненужного" слота меча в этой анимации нет. А уж если бъется мечом, то только потому, что в руках меч. Что и где было добавлено без необходимости? Слот для меча в анимации действий с мечом? О__о |
Мне пока на ум приходит 1 вариант, сделать несколько слоев в анимациях персонажа, на каждом слое его instance name будит соответствовать виду его оружия (меч, лук, т.д.) при выборе определенного оружия все остальные сделать visible=false. Это что касается анимации с видами оружия.
|
Почти так. Каждый "слой" в вашем понимании можно сделать просто отдельным клипом, который и помещать в контейнер персонажа. Естественно, эти клипы должны быть полностью заменяемы, иметь одинаковые продолжительности "в кадрах" каждой секвенции и иметь одинаковые методы для вооружения и переодевания. Другими словами, наследовать некий суперкласс Hero.
|
Не могу понять как заставить предмет помещенный в слот передать изображение в пустой клип при этом не исчезнув из слота оО. Вот код из пустого клипа для оружия
Код AS3:
Armor.targ - цель перетаскиваемая мышкой. Вот код слота: Код AS3:
Еще как можно в классе выполнить те же действия что и в пустом клипе? Не знаю как к нему обратится. |
Вам бы почитать что-нибудь такое базовое о флэше и AS3... Прежде чем делать ни много ни мало, игру. Хотя бы говорить станете на общепринятом наречии, а не эти странные "перетягивает изображение"...
addChild() помещает указанный клип в указанный контейнер. Не хотите данный клип, создайте новый экземпляр и укажите его. Последнее предложение просто не понял. Вообще. |
Wolsh, спасибо за объяснение выше.
Доказали необходимость использования "слота", и разъяснили моменты с разным оружием Добавлено через 2 минуты Цитата:
если слот пустой, то slot.numChildren == 0 и всего-то сделайте такой getter: Код AS3:
|
Может, все таки, назначите для каждого оружие свой класс, и будите добавлять уже новый экземпляр оружия?
Тогда точно нигде ничего исчезать не будет. |
Цитата:
Цитата:
Я имел ввиду, как обратиться к пустому клипу библиотеки из любого класса? если в библиотеке достаточно просто зайти в Actions пустого клипа и написать addChild(); то как это сделать скажем из класса Main? Имя : mc_weapon Связывание : weapon_mc Код AS3:
at Main/game() |
В Main классе:
Код AS3:
|
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main/game() странно в Actions клипа получалось создать Armor.targ - ссылка на перетаскиваемый объект, а через Main нет У меня видать где то в другом месте ошибка, лучше начну с начала может что нибудь другое придумаю) |
| Часовой пояс GMT +4, время: 09:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.