Xml AS3将数据附加到本地文件
我有一个AS3游戏,将在本地桌面上玩,而不是在网络上,我需要在每次游戏后保存玩家的详细信息。 我尝试了一些方法,如filestream、sharedObject、XML,但到目前为止都没有成功。Xml AS3将数据附加到本地文件,xml,actionscript-3,flash,air,Xml,Actionscript 3,Flash,Air,我有一个AS3游戏,将在本地桌面上玩,而不是在网络上,我需要在每次游戏后保存玩家的详细信息。 我尝试了一些方法,如filestream、sharedObject、XML,但到目前为止都没有成功。 要保存的详细信息是变量player_name和player_score。我只需要将这些文件添加到现有文件中,它们不必进行排序或筛选。如果要在文件系统上写入,必须使用AIR。它是flashplayer的包装,以及与特定文件系统一起工作的大量功能。它可以在不同的设备上运行,包括移动设备,它将为您提供所需的功
要保存的详细信息是变量player_name和player_score。我只需要将这些文件添加到现有文件中,它们不必进行排序或筛选。如果要在文件系统上写入,必须使用AIR。它是flashplayer的包装,以及与特定文件系统一起工作的大量功能。它可以在不同的设备上运行,包括移动设备,它将为您提供所需的功能 仅Flash Player无法使用该文件系统。将FileStream与一起使用
对于这种情况,我将使用一个简单的LocalShardObject。我希望你能理解这段代码。其他方式,请询问。你好,安德烈
import flash.events.NetStatusEvent;
import flash.net.SharedObject;
var soName:String="yourSO"
function writeScore(playerName:String, playerScore:Number):void
{
var so:SharedObject = SharedObject.getLocal(soName);
// Write a new Object nemed by the playername in the so
so.data[playerName]= {name:PlayerName, playerScore:playerScore};
// add a successListener
so.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
// and flush it
so.flush();
}
function readSO():Object
{
var so:SharedObject; = SharedObject.getLocal(soName);
//If no lso was found
if (so.size === 0 || so.data.results === null) {
_results = [];
trace("lso not found");
return;
}
//For 'playerName' you can choose a name you want and add all your stuff to this object // it is basically an object
var playerName:String = so.data[playerName]name;
var playerScore:Number = so.data[playerName]playerScore;
trace(playerName, playerScore);
}
function onFlushStatus(event:NetStatusEvent):void
{
var so:SharedObject = event.target as SharedObject;
switch (event.info.code)
{
case "SharedObject.Flush.Success":
trace("value saved in the lso");
break;
case "SharedObject.Flush.Failed":
trace( "value not saved in the lso");
break;
}
so.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
}
//Let' try
writeScore("Andre", 10);
readSO("Andre");
writeScore("JayTray", 11);
readSO("JayTray");
filestream或至少sharedobject应该工作得很好。谢谢Andre,这些sharedobject文件有多可靠和稳定?我本周一直在测试它们,它们保存着所有数据,我只是担心它们会在X天后过期并丢失所有保存的信息-是这样吗,你知道吗?再次感谢:共享对象具有以下属性:默认情况下不会过期。默认情况下,它们的大小限制为每个100 KB。它们可以存储简单的数据类型,如字符串、数组和日期。它们存储在用户主目录中应用程序指定的位置。它们永远不会在客户端和服务器之间传输。它们稳定可靠,因为用户不会删除它们-
import flash.events.NetStatusEvent;
import flash.net.SharedObject;
var soName:String="yourSO"
function writeScore(playerName:String, playerScore:Number):void
{
var so:SharedObject = SharedObject.getLocal(soName);
// Write a new Object nemed by the playername in the so
so.data[playerName]= {name:PlayerName, playerScore:playerScore};
// add a successListener
so.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
// and flush it
so.flush();
}
function readSO():Object
{
var so:SharedObject; = SharedObject.getLocal(soName);
//If no lso was found
if (so.size === 0 || so.data.results === null) {
_results = [];
trace("lso not found");
return;
}
//For 'playerName' you can choose a name you want and add all your stuff to this object // it is basically an object
var playerName:String = so.data[playerName]name;
var playerScore:Number = so.data[playerName]playerScore;
trace(playerName, playerScore);
}
function onFlushStatus(event:NetStatusEvent):void
{
var so:SharedObject = event.target as SharedObject;
switch (event.info.code)
{
case "SharedObject.Flush.Success":
trace("value saved in the lso");
break;
case "SharedObject.Flush.Failed":
trace( "value not saved in the lso");
break;
}
so.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
}
//Let' try
writeScore("Andre", 10);
readSO("Andre");
writeScore("JayTray", 11);
readSO("JayTray");