[casual_games] re: Flash Local Storage Issue

Hal Barwood hal at finitearts.com
Mon Aug 28 12:59:50 EDT 2006


And now I have a Flash question:  how's Zinc for Flash speed?  When I 
wrapped one of my games into SWF Studio v3 it slowed performance by 
around 50% compared to the native standalone Flash Player.  Ouch.

Dimitrios Bendilas - ZEFXIS wrote:
> Steven, Hal,
> 
> Thank you for your answers.
> 
> The reasons I needed to save data to the hard drive is to store
> local highscores, player profiles and game options.
> 
> When I posted here, I was aware that there could only be
> a workaround and not a "real" solution, since this is a native
> flash player thing, which you cannot by-pass.
> 
> Luckily I had already found a solution by Friday evening,
> which was my deadline - a very strict one too.
> 
> I really didn't want to switch to SharedObjects, so
> I tried to see what can be done without leaving the file system model.
> 
> So, these are my findings:
> 
> 1. Zinc seems to need a few Kbs in the local storage by default. Even if 
> you
>    create the simplest app with 1 line of code, e.g. 
> mdm.Dialogs.prompt("test");
>    or even only mdminit(), Zinc will have to access local storage.
>    I don't really know why.
> 
>    Fortunately, it needs less than 10K of local storage, which seems to be
>    the size the flash player allows by default. So, if you have a Zinc 
> application
>    that doesn't save files on the local drive, the 10K limit is enough 
> for you
>    and the Local Storage Dialogs does not popup.
> 
> 2. The problem comes when the application needs to save more than 10K per
>    session. This means that if you need to save a file larger than 10K 
> the dialog
>    will come up. Of course, there is no way to by-pass this thing if you 
> really
>    need to save more than 10K, since it's a native flash player thing.
>    The only solution would actually be a workaround.
> 
> 3. Zinc does not only save stuff to the hard drive when saving a file or a
>    folder, e.g. with mdm.FileSystem.saveFile() but also when DECRYPTING
>    a file or a string. In my case, that's what was happening. My 
> application
>    didn't save files larger than 10K, and those that it did save (3K, 
> 2K, 8K etc)
>    didn't cause any issue.
> 
>    But the application descrypted several files, one of which was larger
>    than 10K (it was 50K). All others didn't cause any issues, but this one
>    was big and Zinc apparently needed disk space to decrypt it, so it 
> actually
>    tried to save data on the hard drive, which was more than 10Kb and 
> this caused the
>    Local Storage dialog to come up, asking for permission to save
>    up to 100K to the local storage.
> 
> 4. The solution that applied in my case was to divide that file into 
> smaller
>    ones, each one less being than 10K. It was quite easy to do and I didn't
>    have to change the data saving model.
> 
> Thanks again for your replies!
> 
> Best regards,
> 
> Dimitrios
> 
> 
> 
> 
> 
> 
> ----- Original Message ----- From: "Hal Barwood" <hal at finitearts.com>
> To: "IGDA Casual Games SIG Mailing List" <casual_games at igda.org>
> Sent: Saturday, August 26, 2006 11:21 PM
> Subject: Re: [casual_games] re: Flash Local Storage Issue
> 
> 
>> My understanding of the Flash security sandbox is -- permission to 
>> create a locally stored object or net access, but not both.  If the 
>> game in question is downloaded and playing on a local machine, access 
>> to an LSO is perfectly legit, but Flash never allows explicit access 
>> to the directory structure, right?
>>
>> One of the major Flash pains is Adobe's idea of changing local Flash 
>> Player settings and permissions by forcing a trip to a web page.  Ai 
>> yi yi.
>>
>> My advice is, structure all your data in a Flash object and use LSOs. 
>> Is there a better way?
>>
>>
>> Steven Davis wrote:
>>> Dimitrios -
>>>
>>> You are running into an inherent part of the Flash security sandbox. 
>>> Flash SHOULDN'T permit access to the file system without explicit 
>>> user authorization. The Shared Object feature may be a better way to 
>>> avoid triggering this check or, even better, using server side 
>>> storage via an HTTP POST or a cookie. Java's applet security sandbox 
>>> also should trigger the same sort of security check.
>>>
>>> The big question is... why do you need file system access? I would be 
>>> happy to address this either online or off.
>>>
>>> Steve
>>>
>>> Steven B. Davis
>>> CEO
>>> IT GlobalSecure Inc.
>>> ceo at secureplay.com
>>>
>>> +1.202.742.5936  main
>>> +1.202.332.5106  direct
>>> +1.202.345.2151  mobile
>>> +1.202.478.1743  fax
>>> secureplay       skype
>>>
>>> product: http://www.secureplay.com/
>>> blog: http://www.playnoevil.com/
>>> corporate: http://www.itglobalsecure.com/
>>>
>>>
>>> To no longer receive email from Steven Davis & IT GlobalSecure Inc., 
>>> please respond to this email: ceo at secureplay.com
>>> _______________________________________________
>>> Casual_Games mailing list
>>> Casual_Games at igda.org
>>> http://seven.pairlist.net/mailman/listinfo/casual_games
>>>
>>
>> _______________________________________________
>> Casual_Games mailing list
>> Casual_Games at igda.org
>> http://seven.pairlist.net/mailman/listinfo/casual_games
>>
>>
> 
> 
> _______________________________________________
> Casual_Games mailing list
> Casual_Games at igda.org
> http://seven.pairlist.net/mailman/listinfo/casual_games
> 



More information about the Casual_Games mailing list