gpt4 book ai didi

flash - 在 Flash CS5 中拖动对象时鼠标悬停

转载 作者:行者123 更新时间:2023-12-04 15:36:24 25 4
gpt4 key购买 nike

我有一个使用 Flash Professional CS5 和 ActionScript 3 的项目。

当我将一个对象拖到一个特定的点上时,我需要触发一个事件,但还没有放下它。然后,当我离开那个地方(仍在拖动)时,我需要触发一个不同的事件。但是,这只应该在我拖动对象时发生。

传统的鼠标悬停和鼠标离开事件在拖动时不起作用(仅在不拖动时)。

我该怎么做呢?

最佳答案

它不工作的原因是因为顶部 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
}
}

第二个是使用 mouseChildren 禁用拖动对象的鼠标事件和 mouseEnabled属性,但这会破坏您当前的拖动,您必须将事件重新排列到拖动的对象父级或舞台。

关于flash - 在 Flash CS5 中拖动对象时鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com