Показать сообщение отдельно
Старый 10.01.2013, 10:45
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 1  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Question Как заменить объект внутри клипа в сложной анимации?

Никогда раньше не доводилось работать с таким типом персонажей, и тут я зашел в тупик просто.
Вобщем ситуация такая: мне прислали fla файл со сложной анимацией персонажа. В анимации 10 - 15 слоев, на каждом слое находится какая-то одна часть персонажа, например голова или рука. Эта часть представляет из себя объект Graphics (дизайнер далек от программирования, поэтому не сделал сразу как надо ) ). На каждом слое множество ключевых кадров, поэтому мне приходится в каждом ключевом кадре переделывать объект в MovieClip и давать ему instance name (что конечно дико напрягает, но писать jsfl скрипт будет дольше, чем вручную переименовать), но проблема даже не в этом.

Допустим задал я торсу персонажа имя экземпляра torso на первом ключевом кадре, потом у себя в коде мне нужно добавить к торсу бронежилет. Первое что пришло в голову - просто удалить ребенка на нулевом индексе и добавить туда бронежилет.
Но не тут то было. Естественно при проигрывании анимации бронежилет останется только на первом кадре. Т.е. добавлять его прийдется в каждом кадре, что больше походит на костыль. Вторая идея была заменить растровые данные. Но getChildAt(0) возвращает Shape, а не Bitmap, хотя во флещке они добавлены как png картинки.

Вопрос, как лучше сделать, чтобы можно было заменять внешний вид этих частей? В самой adobe flash я не очень соображаю, в основном работаю с кодом.