保存一个简单的Flash游戏的等级?

保存一个简单的Flash游戏的等级?,flash,save,loading,game-development,Flash,Save,Loading,Game Development,特别感谢JoãoCésar,as3代码创建了一个生成SWF加载器的函数。他使用一个增量值(count)循环遍历一个数组,该数组存储每个加载程序的动态信息。在这种情况下,计数%swfs.length将导致0,1,0,1。。。在循环序列中有效地加载SWF 这就是我们的想法: 我怎样才能保存或记住,上次哪个swf文件关闭了,下次你们从那个文件开始。。。(它应该记住哪个swf已完成,下次您将从该swf而不是child1.swf开始) 为此,我使用了SharedObject并试图保存刚刚加载到变量中的sw

特别感谢JoãoCésar,as3代码创建了一个生成SWF加载器的函数。他使用一个增量值(count)循环遍历一个数组,该数组存储每个加载程序的动态信息。在这种情况下,计数%swfs.length将导致0,1,0,1。。。在循环序列中有效地加载SWF

这就是我们的想法:

我怎样才能保存或记住,上次哪个swf文件关闭了,下次你们从那个文件开始。。。(它应该记住哪个swf已完成,下次您将从该swf而不是child1.swf开始)

为此,我使用了SharedObject并试图保存刚刚加载到变量中的swf文件的数量,但我无法以正确的方式处理它

谢谢

代码如下:

import com.greensock.*;  
import com.greensock.loading.*;  
import com.greensock.events.LoaderEvent;  
import flash.display.DisplayObjectContainer;  
import flash.events.Event;  

var count:uint = 0;  
var currentSWFLoader:SWFLoader;  
var swf:Object = {};  
var swfs:Array =   
[  
    {path:"child1.swf", container:this},  
    {path:"child2.swf", container:this}  
]  

function generateSWFLoader(path:String, container:DisplayObjectContainer):SWFLoader  
{  
    return new SWFLoader  
    (  
        path,  
        {  
            container: container,  
            y:         100,  
            onProgress:progressHandler,  
            onComplete:completeHandler,  
            autoPlay:  false  
        }  
    );  
}  

function loadSWF(index:uint):void  
{  
    if (currentSWFLoader)  
        currentSWFLoader.dispose(true);  

    swf = swfs[index];  
    currentSWFLoader = generateSWFLoader(swf.path, swf.container);  
    currentSWFLoader.load();  
}  

function progressHandler(e:LoaderEvent):void  
{  
    bar.scaleX = e.target.progress;  
}  

function completeHandler(e:LoaderEvent):void  
{  
    e.target.rawContent.play();  
    addEventListener(Event.ENTER_FRAME, checkFrame);  
}  

function checkFrame(e:Event):void  
{  
    if (currentSWFLoader.rawContent.currentFrame == currentSWFLoader.rawContent.totalFrames)  
    {  
        trace("swf done playing");  
        removeEventListener(Event.ENTER_FRAME, checkFrame);  
        loadSWF(++count % swfs.length);      
    }  
}  

bar.scaleX = 0;  
loadSWF(count % swfs.length); 

下面是一些关于如何在共享对象中保存变量的一般信息

package
{
    import flash.display.Sprite;
    //import the shared object
    import flash.net.SharedObject;

    public class Main extends Sprite 
    {
        //create and store the shared object
        var my_so:SharedObject = SharedObject.getLocal("yourNameOfSharedObject");

        public function Main() 
        {
            //un-comment to save or load
            //save();
            //load();


        }

        function save(){
            //save the number 2 to the shared object in a variable called swfNumber
            my_so.data.swfNumber = 2;
        }

        function load(){
            //load the the number stored in swfNumber
            var swfNumber = my_so.data.swfNumber;
            trace(swfNumber);
        }
    }
}
将count变量与SharedObject一起存储。