Mirando tutoriales y documentación sobre SharedObjects, no me queda muy claro cómo implementarlo.
Según un tutorial el código sería:
public function setFinalScore( scoreValue:Number ):void
{
sharedObject.clear();
finalScore.text = scoreValue.toString();
if ( sharedObject.data.bestScore == null )
{
sharedObject.data.bestScore = scoreValue;
}
else if ( scoreValue > sharedObject.data.bestScore )
{
sharedObject.data.bestScore = scoreValue;
}
bestScore.text = sharedObject.data.bestScore.toString();
sharedObject.flush();
}
para lo que he creado una función que define el archivo (topscore) al que se accederá para leer y grabar datos:
public function Scores()
{
sharedObject = SharedObject.getLocal( "topscore" );
}
El problema es que hace referencia a otras funciones de otros archivos .as pues el juego es complejo.
Mi juego es más sencillo y contiene estos elementos como principales:
La variable gameScore
private var gameScore:int;
Y una función que acumula las puntuaciones y las muestra en un objeto de tipo texto dinámico llamado (bueno, nombrado como instancia) scoreDisplay
public function addScore(numPoints:int) {
gameScore += numPoints;
MovieClip(root).scoreDisplay.text = String(gameScore);
}
También tengo dos objeto de texto dinámico (nombres de instancias) llamados finalScore y bestScore
¿Cómo puedo enviar el valor de scoreDisplay (me funciona perfectamente recibiendo la puntuación durante el juego) a finalScore para de ahí generar el valor bestScore a través de SharedObject y que pueda ser almacenado?
Por si a alguien le interesa el tutorial (creación básica de un juego en Flash), puede visitarlo aquí: http://gamedev.michaeljameswilliams.com/2009/03/18/avoider-game-tutorial-11/
