最近想开发个草稿纸功能, 所以学习了下canvas实现简单的画板功能, 但是我们知道在PC端我们可以用MouseEvent来监听我们的鼠标点按相关操作, 移动端可以使用TouchEvent来监听我们手指触摸相关操作 PointerEvent、MouseEvent和TouchEvent相对应的事件 PointerEvent MouseEvent TouchEvent poninterdown mousedown touchstart imageSmoothingEnabled = true let lineWidth = 3 let lineColor = '#fff' let painting = false </script> 2) 使用MouseEvent image.png 参考资料 https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent https://developer.mozilla.org
https://blog.csdn.net/10km/article/details/53453611 SWT中与键盘鼠标等输入设备有关的事件(MouseEvent,KeyEvent,SelectionEvent net.gdface.ui; import org.eclipse.swt.SWT; /** * @author guyadong * @see {@link org.eclipse.swt.events.MouseEvent
) { mouseEvent -> if (dragModeActiveProperty.value) { // 为所有的子节点禁用鼠标事件 mouseEvent.consume () } } wrapGroup.addEventFilter( MouseEvent.MOUSE_PRESSED ) { mouseEvent dragContext.mouseAnchorY = mouseEvent.y dragContext.initialTranslateX = node.translateX ) { mouseEvent -> if (dragModeActiveProperty.value) { // 通过增量计算鼠标光标动作来从初始位置移动node node.translateX = (dragContext.initialTranslateX + mouseEvent.x
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二、现象 重载QGraphicsScene相关的鼠标事件,想得到当前鼠标的坐标点,如果直接从mouseEvent取坐标,返回的坐标点全是 *mouseEvent); } ...... void my_graphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) { //鼠标左键按下 if(mouseEvent->button()==Qt::LeftButton) { //记录鼠标按下的点 start_point =mouseEvent->pos(); //相对窗口坐标---->这里得到的坐标全是0 } } 三、解决办法 /* 工程: ECRS 日期: 2021-01-02 作者: DS小龙哥 环境: win10 ) { QGraphicsScene::mousePressEvent(mouseEvent); qDebug()<<"坐标:"<<mouseEvent->scenePos(); } 最终程序实现的效果是
,pickup); myobj.addEventListener(MouseEvent.MOUSE_UP,place); function pickup(e:MouseEvent ):void { //trace("鼠标按下"); e.target.startDrag(); } function place(e:MouseEvent):void { //trace("鼠标抬起"); function MouseDownHandler(e:MouseEvent) { stage.addEventListener(MouseEvent.MOUSE_UP, MouseUpHandler R1.addEventListener(MouseEvent.MOUSE_UP,MouseUpHandler); R2.addEventListener(MouseEvent.MOUSE_DOWN,MouseDownHandler ); R2.addEventListener(MouseEvent.MOUSE_UP,MouseUpHandler); R3.addEventListener(MouseEvent.MOUSE_DOWN
= 0 && watched == widget) { QMouseEvent *mouseEvent = (QMouseEvent *)event; if (mouseEvent = QEvent::MouseButtonPress) { //如果限定了只能鼠标左键拖动则判断当前是否是鼠标左键 if (leftButton && mouseEvent ->pos())) { lastPoint = mouseEvent->pos(); pressed = true; } } else if (mouseEvent->type() == QEvent::MouseMove && pressed) { //计算坐标偏移值,调用move 函数移动过去 int offsetX = mouseEvent->pos().x() - lastPoint.x(); int offsetY = mouseEvent
mouseevent.h #ifndef MOUSEEVENT_H #define MOUSEEVENT_H #include <QMainWindow> #include<QLabel> #include <QMouseEvent> namespace Ui { class MouseEvent; } class MouseEvent : public QMainWindow { Q_OBJECT *ui; QLabel *m_statusLabel; QLabel* m_posLabel; }; #endif // MOUSEEVENT_H mouseevent.cpp #include "mouseevent.h" #include "ui_mouseevent.h" MouseEvent::MouseEvent(QWidget *parent) : QMainWindow ::~MouseEvent() { delete ui; } void MouseEvent::mousePressEvent(QMouseEvent *event) { QString
,stageMouseMoveHandler); this.stage.addEventListener(MouseEvent.MOUSE_UP,stageMouseUpHandler); } _mcBtn.addEventListener(MouseEvent.MOUSE_OVER, mcBtnMouseOverHandler); this. _mcBtn.addEventListener(MouseEvent.MOUSE_OUT, mcBtnMouseOutHandler); this. _mcBtn.addEventListener(MouseEvent.MOUSE_DOWN,mcBtnMouseDownHandler); this. //切换光标为手形 private function mcBtnMouseOverHandler(e:MouseEvent) { Mouse.cursor=MouseCursor.HAND
(e:MouseEvent):void { if (this. _btnConnect.removeEventListener(MouseEvent.CLICK,doConnect); this. _btnPlay.removeEventListener(MouseEvent.CLICK,doStopPlay); this. _btnPlay.removeEventListener(MouseEvent.CLICK,doPlay); this. _btnPlay.removeEventListener(MouseEvent.CLICK,doStopPlay); this.
private function handleCreationComplete():void { sampleButton.addEventListener(MouseEvent.CLICK , createClickListener(1)); sampleButton.addEventListener(MouseEvent.CLICK, createClickListener (clickLimit:int):Function { var clickCount:int = 0; return function(mouseEvent :MouseEvent):void { clickCount++; trace("Click limit", clickLimit (MouseEvent.CLICK, arguments.callee); } } }
mouseEvent) { } /** * 鼠标按下 */ public void mousePressed(MouseEvent mouseEvent) { this.oldMouseX = this.mouseX = mouseEvent.getX(); this.oldMouseY = this.mouseY = mouseEvent.getY(); repaint(); (MouseEvent mouseEvent) { this.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } /** * 鼠标退出棋盘 ; this.oldMouseY = this.mouseY; this.mouseX = mouseEvent.getX(); this.mouseY = mouseEvent.getY( ); repaint(); } public void mouseMoved(MouseEvent mouseEvent) { } } } 发布者:全栈程序员栈长,转载请注明出处:https
, MouseDownHandler); arrBalls[i].addEventListener(MouseEvent.MOUSE_UP, MouseUpHandler); arrBalls [i].addEventListener(MouseEvent.MOUSE_OVER,MouseOverHandler); arrBalls[i].addEventListener(MouseEvent.MOUSE_OUT ,MouseOutHandler); addChild(arrBalls[i]); } } function MouseOverHandler(e:MouseEvent):void , stageMouseMoveHandler); } //停止拖动 function MouseUpHandler(e:MouseEvent):void { _draggedBall ); } function stageMouseMoveHandler(e:MouseEvent):void { //trace(e.target); var _ball:Ball
,MouseDownHandler); ball.addEventListener(MouseEvent.MOUSE_OVER,function(){ Mouse.cursor = MouseCursor.HAND ;}); ball.addEventListener(MouseEvent.MOUSE_OUT,function(){ Mouse.cursor = MouseCursor.AUTO;}); < top) { ball.y=top+ball.radius; vy*=bounce; } } private function MouseDownHandler(e:MouseEvent ;}); ball.addEventListener(MouseEvent.MOUSE_OUT,function(){Mouse.cursor = MouseCursor.AUTO;}); ):void { oldX = ball.x; oldY = ball.y; stage.addEventListener(MouseEvent.MOUSE_UP, MouseUpHandler
/share/share_dat.asp"+p; picser.send(); } protected function btnLeft_mouseOverHandler(event:MouseEvent btnLeft2.visible=true; btnLeft1.visible=false; } protected function btnLeft_mouseOutHandler(event:MouseEvent btnLeft1.visible=true; btnLeft2.visible=false; } protected function btnRight_mouseOverHandler(event:MouseEvent Image = event.currentTarget as Image; set_pic(t); } protected function btnLeft1_clickHandler(event:MouseEvent ; } set_pic(picgroup.getElementAt(i) as Image); } protected function btnRight1_clickHandler(event:MouseEvent
, onclickHandler); //监听舞台的MouseEvent.MOUSE_DOWN、MouseEvent.MOUSE_UP事件 stage.addEventListener (MouseEvent.MOUSE_DOWN, onMouseDownHandler); stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler ); } private function onMouseDownHandler(event:MouseEvent):void { graphics.moveTo(mouseX, mouseY ); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); } private function onMouseUpHandler(event:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler
,function(){Mouse.cursor = MouseCursor.AUTO}); ball.addEventListener(MouseEvent.MOUSE_OVER,function() (MouseEvent.MOUSE_UP,MouseUpHandler); stage.addEventListener(MouseEvent.MOUSE_MOVE,function(){DrawLine ();}); ball_1.addEventListener(MouseEvent.MOUSE_OVER,MouseOverHandler); ball_1.addEventListener(MouseEvent.MOUSE_OUT (MouseEvent.MOUSE_OUT,MouseOutHandler); function MouseOutHandler(e:MouseEvent){ Mouse.cursor = MouseCursor.AUTO stage.addEventListener(MouseEvent.MOUSE_UP,MouseUpHandler); stage.addEventListener(MouseEvent.MOUSE_MOVE
,function(){ Mouse.cursor = MouseCursor.BUTTON}); btnSound.addEventListener(MouseEvent.MOUSE_OUT,function (){ Mouse.cursor = MouseCursor.AUTO}); btnSound.addEventListener(MouseEvent.MOUSE_DOWN,btnSoundMouseDown ); btnPlay.addEventListener(MouseEvent.CLICK,btnPlayMouseClick); btnPause.addEventListener(MouseEvent.CLICK _netStream.pause(); } //Stop按钮点击事件 function btnStopMouseClick(e:MouseEvent) { _netStream.pause(); ; removeEventListener(Event.ENTER_FRAME,EnterFrameHandler); stage.addEventListener(MouseEvent.MOUSE_UP
80: mc.addEventListener(MouseEvent.CLICK, onClickHandler); 81: (MouseEvent.CLICK)); 84: 85: //移除指定的监听事件 86: //重复监听的事件,移除一次后将不再被监听 89: setTxt('是否监听了MouseEvent.CLICK事件:' + mc.hasEventListener( mc.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void { 93: var , getClickFn(100, function(fn:Function, evt:MouseEvent):void { 101:
接下来调用了triggerTouch方法: // ... function triggerTouch(touchType, mouseEvent) { const { altKey, ctrlKey , metaKey, shiftKey } = mouseEvent; // bubbles:该事件是否冒泡 // cancelable:该事件能否被取消 const touchEvent (mouseEvent); // 派发事件 eventTarget.dispatchEvent(touchEvent); } // ... { type } = mouseEvent; if (isMouseup(type)) return createTouchList(); return updateTouchList(mouseEvent (); touchList.push(new Touch(eventTarget, 1, mouseEvent)); return touchList; } // ...
.*; import flash.events.MouseEvent; public class EventTest extends Sprite { public function EventTest ,containerMouseDownHandler); _child.addEventListener(MouseEvent.MOUSE_DOWN,childMouseDownHandler ); _sub_child.addEventListener(MouseEvent.MOUSE_DOWN,subChildMouseDownHandler); } private function subChildMouseDownHandler(e:MouseEvent):void{ trace("_sub_child.MOUSE_DOWN"); _2"); } private function childMouseDownHandler(e:MouseEvent):void{ trace("_child.MOUSE_DOWN