当我单击 android 上的主页按钮时,我希望它保存框架 AS3

When I click the Home button on the android I want it to save the frame AS3

这是我正在做的游戏 当我单击 android 上的主页按钮时,我希望它保存它所在的帧,而不是在

的位置开始游戏加载

这会导致永远保存游戏,但我只想保存一次,加载代码不起作用

   import flash.net.SharedObject;

   stage.addEventListener(KeyboardEvent.KEY_DOWN, buttonPressed); 
   var stateSO:SharedObject = SharedObject.getLocal("saveState");
   if (stateSO.size > 0 && stateSO.data.lastFrame && stateSO.data.lastFrame != undefined) {
  //the shared object exists and has a valid value, so lets skip to that frame
 gotoAndPlay(stateSO.data.lastFrame);
 trace("Load Here.");
 }


 function buttonPressed(event:KeyboardEvent):void{  
 if (event.keyCode == Keyboard.MENU){

 //this function runs every frame 
 function saveState(Event){       
 stateSO.flush(); //save the cookie (shared object)
 trace("Save Here.");
 return;
 }

 addEventListener(Event.ENTER_FRAME, saveState);

 stage.removeEventListener(KeyboardEvent.KEY_DOWN, buttonPressed);
 } 

 }

感谢帮助

您的按键事件处理程序(和其他地方)中有不必要的代码,您从未实际写入您想要保存的值。另外,总是格式化你的代码,因为很多错误可能只是因为你不能清楚地阅读你的代码实际在做什么。

import flash.net.SharedObject;

var stateSO:SharedObject;

// I guess this is a frame script, lets run it
// only once to avoid the possible mess.

if (!stateSO)
{
    stage.addEventListener(KeyboardEvent.KEY_DOWN, buttonPressed);

    stateSO = SharedObject.getLocal("saveState");

    if (stateSO.data.lastFrame != undefined)
    {
        trace("Load Here.");
        gotoAndPlay(stateSO.data.lastFrame);
    }
}

function buttonPressed(e:KeyboardEvent):void
{
    // I hope you know what this button is.
    if (e.keyCode == Keyboard.MENU)
    {
        saveState();
    }
}

function saveState():void
{
    // Write current frame to the SharedObject.
    stateSO.data.lastFrame = currentFrame;
    stateSO.flush();
    trace("Save Here.");
}