首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

对象拖动后坐标的获取解决方案

2012-02-13 
对象拖动后坐标的获取最近在学习AS3,写了一下代码import fl.containers.ScrollPaneimport fl.controls.Sc

对象拖动后坐标的获取
最近在学习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()
}
------------------------------------------
楼主你看看

热点排行