1

무대의 두 번째 프레임에 모든 비트와 조각을 저장해야하는 프로젝트를 진행하고 있습니다. 이것은 사용자 게임이 디자인이나 예술 작품을 만들고 프로젝트를 저장하고 "복원 _btn"을 클릭하여 나중에 다시 돌아 오는 멋진 게임 드레스입니다.플래시 액션 스크립트 3 - 단순 Btn 게임/앱 저장을 클릭하십시오.

이렇게하면 여러 개의 '드래그 가능'비트와 조각이 스테이지, 두 번째 프레임에. 누군가가 내게 애플 리케이션을 바탕 화면에 저장할 수 있도록 그것을 만드는 방법에 대한 통찰력을 줄 수 있고 사용자가 그것을 열고 '복원'버튼을 클릭하면 마지막 디자인이 무대에로드됩니까? 도와 주셔서 감사합니다. 나는 그물의 트롤을 조금 가지고 있고 내가 필요한 것에 대한 간단한 견인을 찾을 수 없다.

코드가 추가되었습니다.

p.s 디자이너와 마찬가지로 간단하게 유지하십시오. :-)

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 
+0

음. 물건을 저장할 수있는 것 같습니다. 그것을 검색 할 수 있습니까? 그 후에 저장 한 정보로 모든 것을 무대에 올려야합니다. 내가 두려워하는 것은 간단하지 않을 것이다. – putvande

+0

권자, 까다로워? 나중에 복원 기능에 지정하려는 무대로 설정 한 버튼이 있습니다. "restore_btn"이라는 단서가 있습니까? x와 y 또는 각각의 모든 영화 클립의 데이터를 저장해야합니까? 모든 것을 한 번에 완전히 저장하는 방법이 있기를 바랬습니다. 감사합니다, – user3082874

+1

디자인에 따라 다르지만 궁극적으로 각 클립의 좌표를 저장하고 복원 후 적용하는 경우입니다. 'SharedObject'를 반복하고 무대 아이템까지 매치하십시오. – Atriace

답변

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"입니다. garment 또는 "draggable bit"는 인스턴스 이름 "shirt"로 이동합니다. 코드는 복원 단추를 클릭하면 셔츠를 마지막으로 저장된 위치에 놓습니다. 이 코드를 프로젝트 상황에 맞게 직접 적용 할 수 있어야합니다.

건배, 드레이크 Swartzy

+1

좋아요! 나는 모양을 가질 것이다. 나는이 코드를 나머지 코드와 함께 이름에 맞게 조정해야 할 것이다.나는 방황했다. var restore_values ​​: SharedObject = SharedObject.getLocal ("dress_up_game"); 내 공유 객체와 충돌이 있습니까? var saveData : SharedObject = SharedObject.getLocal ("MyDesign"); 건배, – user3082874

+0

네, 좋은 지적입니다. 필요한 모든 데이터를 하나의 공유 객체로 저장하면됩니다. – DrakeTruber

+0

안녕하세요 드레이크, 방금 다른 것을 발견했습니다. 복원 기능이 셔츠의 stopDrag 기능에 연결되도록 연결 했습니까? 아니면 그냥 데이터를 저장하는 것입니다 - 만약 그렇다면, 내가 저장 btn ...이 무시합니까? – user3082874

1

네, 아트리 어스는 올바른 생각을 가지고 있습니다. 이 체크 아웃 : http://www.republicofcode.com/tutorials/flash/as3sharedobject/

건배, 드레이크 Swartzy

+0

안녕하세요 드레이크, 이상한 소리를 보내 주셔서 감사합니다 ... 유일한 경우는 언제입니까? 새로 고침을 클릭합니다. 클립은 내가 떠난 곳이 아닙니다. 그 일 자체가 다시 설정 되었습니까? :-) 어쨌든이 방법론은 지역에서도 사용할 수 있습니까? 건배, 시간이되면 놀아 줄거야. 감사합니다. 짐 – user3082874

+0

안녕하세요 드레이크, 저에게 그 말을 가르쳐 주셔서 감사합니다. 웬일인지 그것이 3 시간 이후에 근무하고 난 혀를 따라 갔다. 멋지 네요. 마우스 이벤트 (save_btn)에 sharedOject를 첨부했습니다. 다시 한 번 감사드립니다. 이제 마지막 저장을 복원하는 방법을 알아 내야 만합니다. – user3082874

+0

굉장 @ user3082874! 답장을 늦게 보내서 미안해. 튜토리얼이 도움이 되었기 때문에 기쁩니다. 더 이상 질문이 있으면 그냥 물어보십시오! – DrakeTruber