Results 1 to 2 of 2
Hybrid View
-
July 24th, 2012, 03:57 PM #1283Registered User
postsWhat is the best way to do this drag and drop
Hello,
I am trying to create a drag/drop where when you drop the answer onto the question it senses the target and traces the name of the target. What am I doing wrong?
Code:import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; import flash.utils.Dictionary; var refDict:Dictionary = new Dictionary; /************* Set up the questions with text from the XML file. *********************/ for(var i:int = 0; i < xmlFile.questions.question.length(); i++) { var quesText:TextField = new TextField(); quesText.defaultTextFormat=formatNormal; quesText.multiline=true; quesText.selectable=false; quesText.mouseEnabled = false; quesText.wordWrap=true; quesText.width=400; quesText.x = 20; quesText.y = 20 + (i * 60); quesText.autoSize=TextFieldAutoSize.LEFT; quesText.name = String(i); // Not sure why I did this. quesText.text = xmlFile.questions.question[i].content; stage.addChild(quesText); } /************* Set up the draggers with text from the XML file. *********************/ for(var n:int = 0; n < xmlFile.draggers.answer.length(); n++) { var ansBacking:mcDragger = new mcDragger(); ansBacking.x = 650; ansBacking.y = 30 + (n * 70); ansBacking.buttonMode = true; ansBacking.txtAnswer.text = xmlFile.draggers.answer[n].content; ansBacking.mouseChildren = false; ansBacking.name = xmlFile.draggers.answer[n].content; ansBacking.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); stage.addChild(ansBacking); } function startDragging(evt:MouseEvent):void { evt.target.removeEventListener(MouseEvent.MOUSE_DOWN, startDragging); evt.target.addEventListener(Event.ENTER_FRAME, checkHitTest); origLocatX = evt.target.x; origLocatY = evt.target.y; evt.target.startDrag(false); evt.target.parent.addChild(evt.target); evt.target.addEventListener(MouseEvent.MOUSE_UP, onDrop); } function onDrop(evt:MouseEvent):void { evt.target.removeEventListener(MouseEvent.MOUSE_UP, onDrop); evt.target.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); if(xmlFile.draggers.@multiUse == true) { evt.target.x = origLocatX; evt.target.y = origLocatY; } else { stage.removeChild(DisplayObject(evt.target)); } evt.target.stopDrag(); if(evt.target.dropTarget != null) { evt.target.dropTarget.text += evt.target.txtAnswer.text; } else { //stage.removeChild(evt.target.parent); } } function checkHitTest(evt:Event):void { /*if(evt.currentTarget.hitTestObject(quesText)) {}*/ if (evt.currentTarget.dropTarget != null) { trace(evt.currentTarget.dropTarget.parent); } }
-
August 3rd, 2012, 03:49 AM #2
http://theflashconnection.com/conten...-drag-and-drop
use above link

Reply With Quote
Bookmarks