使用Flash Player 11.2,我们现在可以访问鼠标右键的鼠标事件:
然而,当我尝试使用这些来实现鼠标右键拖放时,似乎一旦鼠标右键关闭,我就不再获得MouseEvent.MOUSE_MOVE,舞台上的MouseX和MouseY成员在按钮发布前停止更新。这使得有效地不可能实现拖放。
使用下面的Flash Builder中的代码示例来了解我的意思:
这是AS3的限制吗?我似乎找不到任何关于它的文件。
代码示例:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class TestFlash extends Sprite
{
public function TestFlash()
{
if(stage){
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onLMBDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onLMBUp);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, onRMBDown);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_UP, onRMBUp);
}
}
private function onMouseMove(event:MouseEvent) : void
{
trace("Mouse Pos, from event: x = " + event.localX + " y = " + event.localY + " from stage: x = " + stage.mouseX + " y = " + stage.mouseY);
}
private function onRMBDown(event:MouseEvent) : void
{
trace("RMB down");
}
private function onRMBUp(event:MouseEvent) : void
{
trace("RMB up");
}
private function onLMBDown(event:MouseEvent) : void
{
trace("LMB down");
}
private function onLMBUp(event:MouseEvent) : void
{
trace("LMB up");
}
}
}
发布于 2015-12-15 03:37:45
从您所描述的问题来判断,我认为您需要添加enter frame函数,否则触发器只会在鼠标单击的帧上激活,并在鼠标释放时激活。
addEventListener(Event.ENTER_FRAME, dragdrop)
function dragdrop(event:Event):void {
"add dragging event here"
}
https://stackoverflow.com/questions/34277859
复制相似问题