鼠标事件中的坐标换算
var localPoint:Point = new Point( event.localX, event.localY ); //用局部坐标实例化一个位置类
var globalPoint:Point = event.target.localToGlobal( localPoint ); //坐标换算函数返回值一个位置类,保存的是换算后的全局位置。
/* Displays:
global x: 13.95
global y: 13.45
*/
trace( "global x: " + globalPoint.x );
trace( "global y: " + globalPoint.y );
场景中的元件发生旋转操作后,坐标系就已经发生旋转。
对目标元件进行拖拽使用类似下面的方法:
event.target.startDrag( ); event.target.stopDrag()
将当前对象的层深交换到最高层使用下面的代码:
setChildIndex( DisplayObject( event.target ), numChildren - 1 );
执行上面的代码以后,其余层深上的元件依次下降一层,类似于将当前对象插入到最顶层。
event.target.dropTarget 属性会自动的根据所处位置的不同,显示不同的内容(显示为null或指向拖放目标),cookBook中指出的dropTarget 不能自己刷新的问题在flash 9中已经不存在了。
执行下面的代码,沿着元件的x轴 y轴移动鼠标,看看坐标有什么变化,点击蓝色块元件,使之旋转,再沿坐标标移动鼠标,看看,是不是坐标系发生了旋转。
mc.addEventListener(MouseEvent.MOUSE_MOVE, onMV );
function onMV(evt:MouseEvent) {
gtxt.text = "("+ mouseX + ","+ mouseY +")";
ltxt.text = "("+ evt.localX + ","+ evt.localY +")";
}
mc.addEventListener(MouseEvent.CLICK, onMC );
function onMC(evt:MouseEvent) {
mc.rotation += 45;
}