2016-12-10 8 views
0

좀 도와주세요. 저는 2 주 동안 cs4 액션 스크립트 3.0에서 드래그 앤 드롭 게임을 만들려고 노력했으며 포기할 것입니다. 지금까지 도움을 받았지만, 내가 가진 최고의 제안은 다른 사람의 작업을 디 컴파일하는 대신 처음부터 시도해 보는 것입니다. 그래서 여기 내가이게임을 3 개의 대상으로 정렬 및 드래그하십시오.

var answername:Array = new Array(); 
var answerdest:Array = new Array(); 
answername[0] = "gravel"; 
answerdest[0] = "1"; 
answername[1] = "Nuts and boltsl"; 
answerdest[1] = "1"; 
answername[2] = "water"; 
answerdest[2] = "2"; 
answername[3] = "gold"; 
answerdest[3] = "3"; 
answername[4] = "Iron"; 
answerdest[4] = "3"; 

나는 세 가지 목표, 내 배열에 항목의 이름을 배치 할 수있는 능력 (이것은 그것의 짧은 조각)에 필요한처럼 보이는 배열을 입니다 해당 항목이 열에 배치 된 응 답 번호와 일치하는 대상에 놓이면 화면이 표시되고 다음 항목 인 내 배열이 나타납니다. 그렇지 않으면 시작 위치로 돌아갑니다. 이것은 쉽게 할 수있는 것처럼 보이지만 저는 컴퓨터 교사가 아닙니다. 저는 제 학생이 사용하기 위해 무언가를 만들려고 과학 선생입니다. 나는 cs4에 대한 기본적인 코딩 기술을 가지고있다.

이것은 내가 얻은 것이지만 정확한 위치에 있는지 확인하기 위해 끌어서 놓기 부분을 얻는 방법을 설명 할 수 없습니다. 그리고 대답이 맞으면 새로운 드래그 가능 기능을 만들 수 있습니다. 나는 "ANSWER1"라는 응답 대상, 당신의 도움에 대한

var objectoriginalX:Number; 
var objectoriginalY:Number; 

Atom.buttonMode = true; 
Atom.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
Atom.addEventListener(MouseEvent.MOUSE_UP, dropObject); 

Matter.buttonMode = true; 
Matter.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
Matter.addEventListener(MouseEvent.MOUSE_UP, dropObject); 

function pickupObject(event:MouseEvent):void { 
    event.target.startDrag(); 
    event.target.parent.addChild(event.target); 
}  
var dropCount:int = 0; 
var dbCount:int=0; 
var dbutton0; 
function dropObject (event:MouseEvent):void 
{ 
    { 
     event.target.stopDrag(); 
     var targetName = Answer1; 
     trace (targetName); 
     var matchingTarget:DisplayObject = getChildByName(targetName); 
     if (event.target.dropTarget != null && event.target.dropTarget.parent == answerdest[1]) 
     { 
      event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
      event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject); 
      event.target.buttonMode = false; 
      alpha = .8 
      dropCount ++; 
      event.target.x = 10 
      event.target.y = (Number(dropCount) * 100); 
      trace ("hit"); 
      trace (dropCount); 
     } else 
     { 
     event.target.x = 100; 
     event.target.y = 111; 
     trace ("miss"); 
     } 
    } 
} 

var answername:Array = new Array(); 
var answerdest:Array = new Array(); 
answername[0] = "gravel"; 
answerdest[0] = "1"; 
answername[1] = "Nuts and boltsl"; 
answerdest[1] = "Answer1"; 
answername[2] = "water"; 
answerdest[2] = "2"; 
answername[3] = "gold"; 
answerdest[3] = "3"; 
answername[4] = "Iron"; 
answerdest[4] = "3"; 
text3 
text3.text = answername[1]; 

var myText:TextField = new TextField(); 
Atom.addChild(myText); 
myText.text = answername[1] ; 

감사를 만들었습니다. 나는 내가 필요한 것을하기 위해 올바른 길을 걷고 있는지 알지 못한다.

+1

'event.target.parent.addChild (event.target)'무엇을해야할까요? 그것이 말하는 것은 "부모의 자녀를 부모의 자녀로 삼는 것"입니다. 즉 그것은 아무것도하지 않습니다. 그래서 그 선은 무엇을 의미합니까? –

답변

1

부분적인 대답

var answername:Array = new Array(); 
var answerdest:Array = new Array(); 
answername[0] = "gravel"; 
answerdest[0] = "1"; 
answername[1] = "Nuts and boltsl"; 
answerdest[1] = "Answer1"; 
answername[2] = "water"; 
answerdest[2] = "2"; 
answername[3] = "gold"; 
answerdest[3] = "3"; 
answername[4] = "Iron"; 
answerdest[4] = "3"; 
text3 
text3.text = answername[1]; 

이 꽤 지저분하다. 약간 더 나은 방법을 보여 드리겠습니다. 여기에있는 나의 방법조차도 최고는 아니지만, 입양하기가 어렵지 않게 당신이하고있는 것과 충분히 유사합니다.

var answer:Array = [ 
    {_name:"gravel",dest:"1"}, 
    {_name:"Nuts and bolts",dest:"Answer1"}, 
    {_name:"water",dest:"2"}, 
    {_name:"gold",dest:"3"}, 
    {_name:"Iron",dest:"4"} 
]; 
text3 // what is this supposed to do? I didn't get rid of it. But just a string sitting in the middle of your code should be throwing an error. I'd get rid of it. 
//text3.text = answername[1]; // now we have a better way! 
text3.text = answer[1]._name; 

이 문제는 직접적으로 문제를 해결하는 데 도움이되지 않지만 코드를 정리하고 결국 알아낼 수 있습니다. 나는 단지 설명에서 이것을 설명 할 수 없었다.

var objectoriginalX:Number; 
var objectoriginalY:Number; 

Atom.buttonMode = true; 
Atom.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
Atom.addEventListener(MouseEvent.MOUSE_UP, dropObject); 

Matter.buttonMode = true; 
Matter.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
Matter.addEventListener(MouseEvent.MOUSE_UP, dropObject); 

function pickupObject(event:MouseEvent):void { 
    event.target.startDrag(); 
    event.target.parent.addChild(event.target); 
}   
var dropCount:int = 0; 
var dbCount:int=0; 
var dbutton0; 
function dropObject (event:MouseEvent):void 
{ 
     event.target.stopDrag(); 
     var targetName = Answer1; 
     trace (targetName); 
     var matchingTarget:DisplayObject = getChildByName(targetName); 
     if (event.target.dropTarget != null && event.target.dropTarget.parent == answer[1].dest) // red flag here! 
//dest is a String and .parent is a MovieClip. 
//They can never be equal. This block of code would never run like this. 
     { 
      event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
      event.target.removeEventListener(MouseEvent.MOUSE_UP, dropObject); 
      event.target.buttonMode = false; 
      alpha = .8 
      dropCount ++; 
      event.target.x = 10 
      event.target.y = (Number(dropCount) * 100); 
      trace ("hit"); 
      trace (dropCount); 
     } else 
     { 
     event.target.x = 100; 
     event.target.y = 111; 
     trace ("miss"); 
     } 
} 

var answer:Array = [ 
    {_name:"gravel",dest:"1"}, 
    {_name:"Nuts and bolts",dest:"Answer1"}, 
    {_name:"water",dest:"2"}, 
    {_name:"gold",dest:"3"}, 
    {_name:"Iron",dest:"4"} 
]; 
text3.text = answer[1]._name; 

var myText:TextField = new TextField(); 
Atom.addChild(myText); 
myText.text = answer[1]._name; 
+0

설명은 확장 토론이 아닙니다. 이 대화는 [채팅으로 이동되었습니다] (http://chat.stackoverflow.com/rooms/130496/discussion-on-answer-by-neal-davis-drag-and-drop-game-sort-items-to- 3 표적). –