AS3 / AIR加载/保存用户名进度

时间:2017-01-26 01:54:21

标签: android actionscript-3 flash air save

我正在创建使用Flash AS3创建的Android应用程序。用户将输入他/她的姓名(实例名称nameField),单击上一个(btnPrev)和下一个(btnNext)按钮并按保存(btnPrev)。重新启动应用程序后,加载了最后保存的帧(带有名称)。但是,如果我想输入具有不同名称的第二个用户并将其保存在不同的框架中,是否会保留第二个用户的保存进度(不删除第一个用户的进度?)。问题是,当我输入上一个用户名进度并按下加载(btnLoad)时,他保存的进度不会加载。请帮忙。

我是编程新手。到目前为止,这是我的代码:

*import flash.events.MouseEvent;


var savedstuff:SharedObject = SharedObject.getLocal("myStuff");

btnSave.addEventListener(MouseEvent.CLICK, SaveData);
btnLoad.addEventListener(MouseEvent.CLICK, LoadData);
btnNext.addEventListener(MouseEvent.CLICK, pageNext);
btnPrev.addEventListener(MouseEvent.CLICK, pagePrev);


function pageNext (e:MouseEvent){
    nextFrame();
}

function pagePrev (e:MouseEvent){
    prevFrame();
}

function SaveData(MouseEvent){
 savedstuff.data.username = nameField.text 
 savedstuff.flush();
 }
function LoadData(MouseEvent){
 if(savedstuff.size>0){ 
 nameField.text = savedstuff.data.username} 
 gotoAndStop(savedstuff.data.saveData);
 }


if(savedstuff.size>0){
nameField.text = savedstuff.data.username}* 

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想为两个不同的用户保存并加载savedstuff,对吧?

因为你总是用名字" myStuff"来保存所有内容。每次保存时都会覆盖数据。如果您想要每个用户,您可能希望将用户名添加到SharedObject名称:

var savedstuff:SharedObject;

function SaveData(e:MouseEvent)
{
    var userName:String = nameField.text;
    savedstuff = SharedObject.getLocal(userName + "myStuff");
    savedstuff.data.username = userName;
    savedstuff.flush();
}

function LoadData(e:MouseEvent)
{
    var userName:String = nameField.text;
    savedstuff = SharedObject.getLocal(userName + "myStuff");
    if(savedstuff.size > 0)
    { 
        nameField.text = savedstuff.data.username} 
        gotoAndStop(savedstuff.data.saveData);
    }
}