1

我正在做一个项目,该项目需要我将所有的点点滴滴都保存在舞台的第二帧上。这是一个美化的装扮游戏,用户游戏制作设计或一件艺术品并保存项目并稍后通过单击“restore_btn”返回它

这将在第二帧的舞台上有多个“可拖动”的点点滴滴。有人能给我一些关于如何制作它的见解,以便应用程序可以保存在桌面上,当用户打开它并单击“恢复”按钮时,他们的最后一个设计会加载到舞台上?谢谢你的帮助。我在网上打了几圈,找不到任何简单的 tuts 来满足我的需要。

添加了代码,以防万一。

ps 请保持简单,因为我是设计师。:-)

stop();

Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE,follow);
function follow(evt:MouseEvent){
    tweezer_cur.x = mouseX;
    tweezer_cur.y = mouseY;
}

//Resetter btn ---------------------

reset_btn.addEventListener(MouseEvent.CLICK, startover);

function startover(event:MouseEvent):void
{
gotoAndPlay(1);
}

//------------------------------ fullscreen
function setFullScreen():void {
if (stage.displayState== "normal") {
stage.displayState="fullScreen";
stage.scaleMode = StageScaleMode.NO_SCALE;
} else {
stage.displayState="normal";
 }
}

fullbtn.addEventListener(MouseEvent.CLICK, goFull); 
        // btn declared - - - - - - - - 

        function goFull(event:MouseEvent):void {
setFullScreen();
};

//---------------------------- print project


//--- all the draggables will live here
dragme.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject);
dragme.addEventListener(MouseEvent.MOUSE_UP, dropObject);

function pickupObject(event:MouseEvent):void {
event.target.startDrag(true);
}
function dropObject(event:MouseEvent):void {
event.target.stopDrag();
}


//--------

//creating a container as main canvas

var artworkContainers:Sprite = new Sprite();
addChild(artworkContainers);

//example adding content
//var anyContentIWantToPrint:Sprite = new Sprite();
//anyContentIWantToPrint.graphics.beginFill(0, 1);
//anyContentIWantToPrint.graphics.drawRect(0, 0, 1024, 768);
//anyContentIWantToPrint.graphics.endFill();
//artworkContainers.addChild(anyContentIWantToPrint);

printme_btn.addEventListener(MouseEvent.CLICK, startPrintJobHandler, false, 0, true);

function startPrintJobHandler(event:MouseEvent):void
{
     var printJob:PrintJob = new PrintJob();
     printJob.start()

     var printJobOptions:PrintJobOptions = new PrintJobOptions(); 
     printJobOptions.printAsBitmap = true; 
     //When 'artworkContainer' will be your artwork canvas, where the user will drag and drop.   Replace for the instance name you are using.     
     printJob.addPage(artworkContainers, null, printJobOptions);

     printJob.send();
  }

 // making all of the functions save! --------------------------------

var saveData:SharedObject = SharedObject.getLocal("MyDesign");

 if(!saveData.data.test)
     saveData.data.test = "Test string";
    trace(saveData.data.test); // Test string
4

2 回答 2

1

这太长了,无法在评论中回答,所以在这里:

import flash.net.SharedObject;
import flash.geom.Point;
import flash.events.MouseEvent;

var restore_values:SharedObject=SharedObject.getLocal("dress_up_game");

if(!restore_values.data.shirt_point){
    restore_values.data.shirt_point=new Point(shirt.x,shirt.y);
    restore_values.flush();
}

restore_btn.addEventListener(MouseEvent.CLICK,restore);
function restore(e:MouseEvent){
    if(restore_values.data.shirt_point){
        shirt.x=restore_values.data.shirt_point.x;
        shirt.y=restore_values.data.shirt_point.y;
    }
}

shirt.addEventListener(MouseEvent.MOUSE_DOWN,start_shirt_drag);
function start_shirt_drag(e:MouseEvent){
    shirt.startDrag()


}
shirt.addEventListener(MouseEvent.MOUSE_UP,stop_shirt_drag);
function stop_shirt_drag(e:MouseEvent){
    shirt.stopDrag()
    restore_values.data.shirt_point=new Point(shirt.x,shirt.y);
    restore_values.flush();
}

我花了几分钟才把它刮掉。再一次,按钮的实例名称是“restore_btn”。服装或“可拖动位”的实例名称为“衬衫”。如果单击恢复按钮,代码会将衬衫放置在最后保存的位置。您应该能够自行调整此代码以适应您的项目情况。

干杯,德雷克·斯沃兹

于 2014-01-10T22:25:36.823 回答
1

是的,Atriace 有正确的想法。看看这个: http ://www.republicofcode.com/tutorials/flash/as3sharedobject/

干杯,德雷克·斯沃兹

于 2014-01-08T19:50:34.497 回答