![]() |
Копирование содержимого контейнера (сохранение)
Здравствуйте, продолжаю разбираться в теме сохранения игры (новый вопрос - новая тема).
Столкнулся с задачей сохранить контейнер в отдельном месте и при загрузке заменить имеющися на сохраненный. Все, везде облазил и перепробовал... не получается никак. Может я все правельно делал и ошибка в другом месте. Структура такая: Есть контейнер класса MenuPanel в нем содержатся несколько клипов и еще 2 контейнера класса Bag и Armor. Насколько я понимаю лучшим вариантом сохранения всего этого добра будит сохранить содержимое MenuPanel в отдельном клипе. Вопрос как правильно это можно сделать? дела вот так: Код AS3:
Ну и результат таков: проделав различные изменения после сохранения и нажимая кнопку загрузки никаких изменений не происходит. |
Не понятно, что Вы подразумеваете под словами "сохранил" и "загрузил".
Можете описать задачу другими словами? |
экранный объект скопировать нельзя, то что вы сохранили ссылку на него где-то(а вы именно и это сделали) не создаст копию.
|
Состояния, полученные в рантайме "динамически", никак не сохранить. Надо сохранять описание состояния, чтобы после "загрузки" этого описания по нему восстановить состояние объекта. На простом примере, скажем игра лабиринт, по которому ходит персонаж. Надо сохранять уровень лабиринта и координаты и направление персонажа. То есть номер карты (левел), адреса ячейки с персонажем (столбец/строка или х, у), и номер кадра в клипе персонажа (если его повороты сделаны кадрами в клипе).
Соответственно при загрузке сейва создаете новый экземпляр лабиринта нужного уровня, помещаете персонажа в нужную ячейку и переводите его клип на нужный кадр — Вы восстановили сохраненное состояние. |
а если в контейнер добавлялись копии MovieClip без переменных вот таким образом addChild(new obj_mc);
к ним уже никак нельзя обратится? |
можно через getChildAt() по очереди получить всех, в том числе и этот ваш, но как определить что это он подумайте сами. И вообще отделяйте отображение и модель данных, всё что вы делаете должно уметь существовать вообще без экранных объектов. Нельзя(точнее очень плохо) опираться на то, что вы потом с экрана сдёрните то, что туда положили.
|
Вывели меня из очередного тупика, теперь буду искать другие пути спасибо) Думаю может попробовать каким то образом в массив добавлять все объекты без переменных, если такое возможно. Подразделять объекты по классам, в самих классах добавлять их в свои массивы и дальше уже с ними работать.
|
| Часовой пояс GMT +4, время: 07:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.