Drag & Drop with AS3 Razorblade forked:1favorite:1lines:39license : All rights reserved modified : 2009-04-24 22:05:54 Embed Tweet package { import flash.display.*; import flash.events.*; public class DragDrop extends Sprite { private var obj:Sprite; private var offsetX:Number; private var offsetY:Number; public function DragDrop():void { var rettangoli:Array = new Array(); for (var i:int = 0; i < 20; i++) { rettangoli[i] = new Sprite(); rettangoli[i].graphics.lineStyle(1); rettangoli[i].graphics.beginFill(Math.floor(Math.random()*0xFFFFFF), 1); rettangoli[i].graphics.drawRect(0, 0, 100, 50); rettangoli[i].x = Math.floor(Math.random()*500); rettangoli[i].y = Math.floor(Math.random()*400); rettangoli[i].addEventListener(MouseEvent.MOUSE_DOWN, drag); rettangoli[i].addEventListener(MouseEvent.MOUSE_UP, drop); addChild(rettangoli[i]); } } function drag( event : MouseEvent ):void{ var highestDepth:uint = numChildren - 1; obj = event.target as Sprite; setChildIndex(obj, highestDepth); offsetX = mouseX - obj.x; offsetY = mouseY - obj.y; stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); } function drop( event : MouseEvent ):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); } function mouseMoveListener( event : MouseEvent ):void{ obj.x = mouseX - offsetX; obj.y = mouseY - offsetY; event.updateAfterEvent(); } } } Code Fullscreen Preview Fullscreen ngtn MOUSE_DOWN MOUSE_MOVE MOUSE_UP MouseEvent setChildIndex updateAfterEvent MouseEvent.MOUSE_MOVE mouseY Math.floor mouseX updateAfterEvent MouseEvent numChildren setChildIndex target MouseEvent.MOUSE_UP MouseEvent.MOUSE_DOWN drawRect removeEventListener beginFill addEventListener lineStyle addChild Array Math.random uint sort new page view favorite forked pv672 forked from: Drag &amp;amp.. hacker_eax2j7hx forked:0 favorite:3lines:39 (diff:3)