你已经给出了你自己的问题的答案。要使用startDrag,你的对象必须至少是一个Sprite。如果Order类没有扩展Sprite,那么将事件currentTarget强制转换为Sprite并不会有多大的收获。
您可以实现自己的解决方案,这种方式可能更容易调试......
package
{
import flash.display.MovieClip;
import flash.events.*;
public class Order extends MovieClip
{
public function Order()
{
this.addEventListener(MouseEvent.MOUSE_DOWN , mouseDownHandler);
if(stage != null)
stage.addEventListener(MouseEvent.MOUSE_DOWN , mouseDownHandler);
}
private function mouseDownHandler (event:MouseEvent):void
{
if(stage != null)
stage.addEventListener(MouseEvent.MOUSE_MOVE , mouseMoveHandler);
}
private function mouseMoveHandler (event:MouseEvent):void
{
this.x = mouseX;
this.y = mouseY;
}
private function mouseUpHandler (event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE , mouseMoveHandler);
}
}
}
什么类型的贵`Order`类扩展,如果有的话? – 2011-01-29 21:10:15
你能为你展示`Order`类的代码吗? – Taurayi 2011-01-29 21:56:04