对象拖动后坐标的获取
最近在学习AS3,写了一下代码
import fl.containers.ScrollPane;
import fl.controls.ScrollPolicy;
import fl.controls.DataGrid;
import fl.data.DataProvider;
var aSp:ScrollPane = new ScrollPane();
var aBox:MovieClip = new MovieClip();
drawBox(aBox, 0xFF0000); //draw a red box
aSp.source = aBox;
aSp.setSize(150, 200);
aSp.move(100, 100);
aSp.addEventListener(MouseEvent.MOUSE_DOWN,downHandler);
aSp.addEventListener(MouseEvent.MOUSE_UP,upHandler);
addChild(aSp);
function downHandler(f:MouseEvent)
{
aSp.startDrag();
}
function upHandler(f:MouseEvent)
{
aSp.stopDrag();
f.updateAfterEvent();
trace(aSp.x)
}
function drawBox(box:MovieClip,color:uint):void {
box.graphics.beginFill(color, 1);
box.graphics.drawRect(0, 0, 150, 300);
box.graphics.endFill();
}
运行代码会发现,不论如何拖动,aSp.x的值都是100,这是怎么回事?如何取到移动后的值呢?
[解决办法]
楼主没有处理拖拽之后的接收的值吧,或者说你是不是子啊canvas下面操作的,你拖拽后的坐标打印出来看看是多少,是不是还是100
[解决办法]
import flash.display.Sprite;
import flash.events.MouseEvent;
var mymc:Sprite = new Sprite();
mymc.graphics.beginFill(0x00ff00);
mymc.graphics.drawRect(0,0,50,50);
mymc.graphics.lineStyle(0);
addChild(mymc);
mymc.addEventListener(MouseEvent.MOUSE_DOWN,myevt);
stage.addEventListener(MouseEvent.MOUSE_UP,myevt);
function myevt(evt:MouseEvent)
{
if (evt.type == MouseEvent.MOUSE_DOWN)
{
evt.target.startDrag();
}
else
{
stopDrag()
trace("x:"+mymc.x,"y:"+mymc.y)
}
evt.updateAfterEvent()
}
------------------------------------------
楼主你看看