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

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

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

Регистрация: Aug 2009
Сообщений: 134
Flame Реализация сохранения игры: SharedObject или FileReference

В первый раз делаю однопользовательскую игру, которая будет иметь сохранение уровней и пр. Хотел бы спросить опытных игровых флеш разработчиков, что лучше и безопаснее (чтобы, как можно меньше было проблем с не сохранением игры) юзать SharedObject или FileReference?
При исп. SharedObject юзер может отключить локальное сохранение.
А при FileReference, как юзер может ограничить?
Объем сохранения - всего несколько чисел. Хотелось бы не иметь проблем с несохранением данных, как в игре онлайн, так и оффлайн.
Поискал на форуме, вроде многие советуют именно SharedObject…

Старый 26.01.2010, 19:05
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 2  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
ни разу не видел, чтобы пользователь выключал SharedObject. FileReference никак не ограничешь, просто можно нажать "Отмена" на предложение сохранить файл.
Вообще ни разу не видел, чтобы сохранение организовывали через FileReference.
__________________
мой пустой блог

Старый 26.01.2010, 19:14
Denis_ex вне форума Посмотреть профиль Отправить личное сообщение для Denis_ex Найти все сообщения от Denis_ex
  № 3  
Ответить с цитированием
Denis_ex

Регистрация: Aug 2009
Сообщений: 134
а нужно ли использовать для явной записи данных на диск юзера метод flush()?

Старый 26.01.2010, 19:48
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Да, иначе записи не будет. Если мы о SharedObject говорим.

Старый 27.01.2010, 15:52
Denis_ex вне форума Посмотреть профиль Отправить личное сообщение для Denis_ex Найти все сообщения от Denis_ex
  № 5  
Ответить с цитированием
Denis_ex

Регистрация: Aug 2009
Сообщений: 134
я попробовал протестировть сохранение:
запустил программу со сл. кодом:

Код:
var sharedObject:SharedObject = SharedObject.getLocal("savegameN7");
sharedObject.data.scn = 8;
И в папке создался объект I:\Documents and Settings\Admin\Application Data\Macromedia\Flash Player\#SharedObjects\***\savegameN7.sol с сохраненным значением: 8.
Странно, но при этом я не использовал sharedObject.flush(); для записи на жесткий диск, а запись, как видно выше произошла?
Я предполагал, что БЕЗ функции sharedObject.flush(); общий объект создастся в оперативной памяти и при закрытии флешки просто уничтожится без записи на жесткий диск...
Может я не совсем все верно предполагаю?
Cреда разработки CS4 + FlashDevelop (AS3).


Последний раз редактировалось Denis_ex; 27.01.2010 в 15:58.
Старый 27.01.2010, 16:06
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
If you don't use this method (flush(), в смысле), Flash Player writes the shared object to a file when the shared object session ends — that is, when the SWF file is closed, when the shared object is garbage-collected because it no longer has any references to it, or when you call SharedObject.clear() or SharedObject.close().
.....

Старый 27.01.2010, 16:15
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 7  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
flush всюду нужен для принудительного сброса данных из кэша (дискового) на носитель. Без него сброс данных происходит обычно при закрытии файла, или как в цитате выше.

Старый 27.01.2010, 16:27
Denis_ex вне форума Посмотреть профиль Отправить личное сообщение для Denis_ex Найти все сообщения от Denis_ex
  № 8  
Ответить с цитированием
Denis_ex

Регистрация: Aug 2009
Сообщений: 134
А т.е. разница в том, что при исп. flush() - НЕМЕДЛЕННО записывает постоянный локальный общий объект в локальный файл. А если не юзать flush(), то записывает в файл, только после закрытия флешки, вызова методов clear(), close(), потери указателя и пр.

Добавлено через 34 минуты
Большое спасибо всем.

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

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

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


 


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


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