Using 'File' to save scene object locations to rebuild later in AS3

后端 未结 5 1503
难免孤独
难免孤独 2020-12-02 03:20

I am attempting to use the \'File\' function in ActionScript 3 to save the following information:

I have varying draggable display objects in the scene, the amount a

5条回答
  •  执笔经年
    2020-12-02 03:25

    I usually use SharedObject, by saving the number of objects with their locations ,scale ,rotation , .. etc. as an array (usually multidimensional array).

    this example is tested :

    first make a movie clip giving it "mc" as a name in the ActionScript Linkage add any graphics you like (this MovieClip will be the objects to be saved later ) then add the following script

    ////////// get random values for each object
    var speed:Number ;
    var yPosition:Number ;
    var size:Number ;
    
    this.width = size;
    this.height = size;
    this.y = yPosition ;
    
    
    
    
    //// Moving the MovieClip from Left to right 
    function moving(e:Event):void
    {
        this.x += speed ;
        if(this.x > 550)
            {
        this.removeEventListener(Event.ENTER_FRAME,moving);
        MovieClip(parent).removeChild(this);
            }
    
    }
    this.addEventListener(Event.ENTER_FRAME,moving);
    

    in the root stage of the project add :

    import flash.events.MouseEvent;
    import flash.display.MovieClip;
    
    
    
    
    var num:int = 0 ;
    var mmc:MovieClip  ;
    var mySharedObj:SharedObject = SharedObject.getLocal("SavingStatus"); //// SharedObject to save info
    
    
    function init()
    {
    if (!mySharedObj.data.savedArray)
    {
        ///// first run No datat saved
        this.addEventListener(Event.ENTER_FRAME,addingmcs)
    }else {
        ///// Laoding previusly saved data
        loading();
    }
    }
    
    
    init() ;
    
    /////////////// adding MovieClips to stage /////
    function addingmcs(e:Event):void
    {
    num +=1 ;
    if(num > 20){
        num = 0 ;
        mmc = new mc ;
        mmc.speed = 2 + (5 * Math.random()) ;
        mmc.yPosition  = 500 * Math.random() ;
        mmc.size  = 50 + 10 * Math.random() ;
        this.addChild(mmc); 
    }
    }
    
    ///////////////////////////////////////////
    ///////////////////////////////////////////////
    
    
    
    var obj:* ;  //// to hold children MovieClips of the stage
    var savingArr:Array = new Array ;  //// the array to be saved , Contains all info of the children
    
    
    
    ////////////// Save all MovieClips with their parameters  ////////////
    function saving(e:MouseEvent):void
    {
    this.removeEventListener(Event.ENTER_FRAME,addingmcs)
    for (var i:int=0;i

提交回复
热议问题