Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 03.05.2016, 01:54
vadim2007 вне форума Посмотреть профиль Отправить личное сообщение для vadim2007 Найти все сообщения от vadim2007
  № 1  
Ответить с цитированием
vadim2007

Регистрация: May 2016
Сообщений: 5
Cool Сохранение отсортированного массива

Привет всем!
Пытаюсь сделать игрушку. Короче, есть массив с артефактами:
Код AS1/AS2:
private var artefacts:Array = [
	{артефакт №1 и его свойства}
	{артефакт №2 и его свойства}
	{артефакт №3 и его свойства}
	{артефакт №4 и его свойства}
]
Если игрок зашел в игру первый раз, то у нас должны перемешаться элементы массива. Если нет, то мы должны загрузить перемешанный массив. Для этого я пытался сделать второй массив который должен сохранять новую последовательность артефактов. А там где стоит комментарий, сделать обратную процедуру с загрузкой. Но как бы я не старался, сыпались ошибки.. (вроде Ошибка типа Coercion: невозможно преобразовать Object@477d509 в flash.display.DisplayObject.)
Код AS3:
private var so:SharedObject = SharedObject.getLocal('save');	
function saveRandomArt() {
	so.data.art_obj = artefacts;
	so.flush();
}
 
 
var art_list_sorted:Array = [];
for (var id in artefacts) {
	art_list_sorted.push(artefacts[id]);
	artefacts[id].id = id;
}
for (var a in artefacts) {
	var id = artefacts[a].id;
	var obj = artefacts[id];
}
function shuffle(artefacts) {
	for (var i=0; i<artefacts.length; i++) {
		var index = int(Math.random()*artefacts.length);
		artefacts.push(artefacts[index]);
		artefacts.splice(index, 1);
	}
}		
if (so.data.art_obj) {
	//(здесь надо загрузить артефакты)
	//artefacts = so.data.art_obj; (не работает, ниже где вызывается artefacts[0] выдает ошибку
}else {
	shuffle(artefacts);
	saveRandomArt();
}
Умоляю, помогите

Создать новую тему   Часовой пояс GMT +4, время: 03:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:17.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.