![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Здравствуйте, продолжаю разбираться в теме сохранения игры (новый вопрос - новая тема).
Столкнулся с задачей сохранить контейнер в отдельном месте и при загрузке заменить имеющися на сохраненный. Все, везде облазил и перепробовал... не получается никак. Может я все правельно делал и ошибка в другом месте. Структура такая: Есть контейнер класса MenuPanel в нем содержатся несколько клипов и еще 2 контейнера класса Bag и Armor. Насколько я понимаю лучшим вариантом сохранения всего этого добра будит сохранить содержимое MenuPanel в отдельном клипе. Вопрос как правильно это можно сделать? дела вот так: public var menu:MovieClip = new MovieClip; public var menuPanel:MovieClip = new MovieClip; menu.addChild(MenuPanel.menuP); // Класс.статическая_переменная addChild(menu); menuPanel = menu; // сохранил 1 клавишей menu = menuPanel; // загрузил 2 клавишей Ну и результат таков: проделав различные изменения после сохранения и нажимая кнопку загрузки никаких изменений не происходит.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. Последний раз редактировалось Tetraeon; 11.07.2012 в 14:04. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не понятно, что Вы подразумеваете под словами "сохранил" и "загрузил".
Можете описать задачу другими словами?
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Состояния, полученные в рантайме "динамически", никак не сохранить. Надо сохранять описание состояния, чтобы после "загрузки" этого описания по нему восстановить состояние объекта. На простом примере, скажем игра лабиринт, по которому ходит персонаж. Надо сохранять уровень лабиринта и координаты и направление персонажа. То есть номер карты (левел), адреса ячейки с персонажем (столбец/строка или х, у), и номер кадра в клипе персонажа (если его повороты сделаны кадрами в клипе).
Соответственно при загрузке сейва создаете новый экземпляр лабиринта нужного уровня, помещаете персонажа в нужную ячейку и переводите его клип на нужный кадр — Вы восстановили сохраненное состояние.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
а если в контейнер добавлялись копии MovieClip без переменных вот таким образом addChild(new obj_mc);
к ним уже никак нельзя обратится?
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. Последний раз редактировалось Tetraeon; 11.07.2012 в 15:17. |
|
|||||
|
можно через getChildAt() по очереди получить всех, в том числе и этот ваш, но как определить что это он подумайте сами. И вообще отделяйте отображение и модель данных, всё что вы делаете должно уметь существовать вообще без экранных объектов. Нельзя(точнее очень плохо) опираться на то, что вы потом с экрана сдёрните то, что туда положили.
__________________
:) |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Вывели меня из очередного тупика, теперь буду искать другие пути спасибо) Думаю может попробовать каким то образом в массив добавлять все объекты без переменных, если такое возможно. Подразделять объекты по классам, в самих классах добавлять их в свои массивы и дальше уже с ними работать.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|