Ah, in that case, no. All game attributes are saved when you invoke a save. However, since its all AS3 under-the-hood, you can avoid using the save block and instead code a save feature like you would a "normal" AS3 project.
So, are you suggesting to create our own shared objects to avoid saving useless data? I guess that will not be as easy as it sounds, but maybe I will give it a try. So just to be sure, I would have to create the Shared Object at the first scene's behavior:
var mySO:SharedObject = SharedObject.getLocal("myGameSO");
Since the scene behavior already imports "flash.net.*" I won't need to import "flash.net.SharedObject", right?
To set some default values I will need to add:
if (mySO.data.Scores==undefined) {
mySO.data.Scores = [0,0,0,0,0];
mySO.data.Muted = false;
}
And translate that data to game attributes:
setGameAttribute("Score", mySO.data.Scores);
setGameAttribute("Muted", mySO.data.Muted);
Then, each time I want to save a game attribute, I will need to add a code block, inside a "Flash Only" block:
mySO.data.Scores = getGameAttribute("Scores") as Array;
mySO.flush();
Or I could check if the data has been flushed (I'm not sure if this would work, since I have never used SharedObjectFlushStatus):
if (mySO.flush() == SharedObjectFlushStatus.FLUSHED){
_savedGame = true; //where savedGame is a local attribute
}
And I can keep my save and load blocks inside "iOS only" blocks... Is that it, or I need to do something else?
However, it still will be a great idea to add a checkbox for attributes you want to save, since we sometimes will need a lot of global variables, that we don't want to be considered as Shared Object data... because we don't want to annoy players with those suspicious Local Storage warnings.