PDA

Просмотр полной версии : не сохраняются изменения в мувиклипе, загруженом из shared library


Annihilator
17.02.2007, 15:16
У меня в игре есть общая библиотека с графикой и мувиклипами.
Из неё на основную сцену подгружен сложно-анимированый мувиклип.field["hero_"+user.hero_id].attachMovie("hero","mc",1);В нём заменяю один набор клипов другими из той же библиотеки (например меняю одежду на герое)user.hero.gotoAndStop("front_stand");
user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_stand", "mc", 1);
user.hero.gotoAndStop("front_walk");
user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_walk1", "mc", 1);
user.hero.gotoAndStop("front_walk2");
user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_walk2", "mc", 1);
user.hero.gotoAndStop("front_walk3");
user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_walk3", "mc", 1);
user.hero.gotoAndStop("front_walk4");
user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_walk4", "mc", 1);
Пока мувик остается на последнем кадре, в котором я сделал подмену, видно, что новый вложеный клип подгрузился. Но как только я запускаю анимацию мувика, он сбрасывается к прежнему виду :mad:
Почему это происходит и как зафиксировать изменения?

ЗЫ. Основной файл и файл библиотеки лежат локально в одной директории, запускается в чистом плеере без участия броузера. Так что мне кажется, что кеширование здесь ни при чем.

silin
17.02.2007, 21:20
а причем shared library, с 'родной' библиотекой по другому разве, когда ты уходишь на другой кадр мувик не сбрасывается в состояние этого кадра что ли?
сори, из описания не совсем понятно что происходит..

intruder2
17.02.2007, 23:40
непонятно что тебе нужно но в кукизы так сохраняют если тебе поможет

кнопка save
on (release) {
_root.save1 = SharedObject.getLocal("saveka");
_root.save1.data.shmot1 = this.shmot1;
}
кнопка load
on (release) {
_root.save1 = SharedObject.getLocal("saveka");
_root.zone.text = _root.save1.data.shmot1;
}

silin
18.02.2007, 00:24
вот и поговорили..
Annihilator, напиши внятно, а лучше с конкретным примером: в чем трабл..

Stone
19.02.2007, 13:53
а если не давать клипу доигрывать до последнего кадра и проигрывать со второго?

у меня было что-то подобное, но задачи играть клип несколько раз небыло.

помойму проблема в том. что клип из шеред библиотеке подружается заново на каждом кейфрэйме. хотя ...

Annihilator
19.02.2007, 15:40
Попробую расписать подробнее. Есть созданый вручную мувиклип персонажа с внутреней анимацией (ходьба, приветствие и т.п.). В каждом ключевом кадре есть несколько клипов-контейнеров (body, head, suit и т.п.), которые содержат графику текущей фазы движения.
Например, в кадре с меткой "front_stand" в клип-контейнер "suit" положен изначально (т.е. вручную) из библиотеки клип с id "shirt_front_stand", названый "mc", т.е. hero.suit.mc. В процессе игры мне допустим надо подменить у перса одежду. Открываю окошко кастомизатора и дальше выполняю то, что написано в первом сообщенииuser.hero.gotoAndStop("front_stand");
if(user.hero.suit.mc.getDepth<0) user.hero.suit.mc.swapDepths(1);
user.hero.suit.mc.removeMovieClip();
user.hero.suit.attachMovie("jacket_front_stand", "mc", 1);
Закрываю окошко кастомизатора; видно, что у героя на поле поменялась одежда. Но, как я уже говорил, это изменение сохраняется пока мувиклип находится на том же кадре (с меткой "front_stand") своей внутренней временной шкалы. Как только я запускаю его анимацию (например user.hero.gotoAndPlay("front_walk")), при следующем попадании в кадр с меткой "front_stand" (где я подменил картинку) происходит возврат к предыдущему состоянию, т.е. вместо нового вложеного клипа "jacket_front_stand" виден старый "shirt_front_stand".

Почему происходит этот сброс, как сделать, чтобы изменения сохранялись при анимации?

iNils
19.02.2007, 15:47
Для подобных вопросов есть раздел AS для начинающих. Закрыто.