Cod*_*e92 6 flash actionscript actionscript-3 flash-cs5
我有一个使用Flash Professional CS5和ActionScript 3的项目.
我需要在特定位置拖动对象时触发事件,但尚未丢弃它.然后,当我离开那个地方(仍在拖动)时,我需要触发一个不同的事件.但是,这应该只在我拖动对象时发生.
拖动时传统的鼠标悬停和鼠标离开事件不起作用(仅在不拖动时).
我该怎么做呢?
它不起作用的原因是顶部 DisplayObject(被拖动的那个 DisplayObject 正在窃取其自身的事件)。
您有几个选择,第一个是将 MOUSE_MOVE 事件添加到拖动的对象而不是特定点,并且您可以执行 hitTestObject ()来验证它们是否重叠,或者如果鼠标位于特定点内则执行hitTestPoint() 。
所以基本上这样做:
draggedObject.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
function onMouseMove(evt : MouseEvent) : void {
var particularSpot : MovieClip = MovieClip(evt.currentTarget.parent).getChildByName("particular spot object name");
if(particularSpot.hitTestPoint(evt.mouseX, evt.mouseY)) // or use hitTestObject
{
// The mouse is on top of particular object
}
else
{
// The mouse is not on top of particular object
}
}
Run Code Online (Sandbox Code Playgroud)
mouseChildren第二个是使用和属性禁用拖动对象的鼠标事件mouseEnabled,但这会破坏当前的拖动,您必须将事件重新排列到拖动对象的父级或舞台。
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |