《TypeScript图形渲染实战:2D架构设计与实现》 —3.2.8 将DOM Event事件转换为CanvasInpu

举报
华章计算机 发表于 2019/12/12 19:20:26 2019/12/12
【摘要】 本节书摘来自华章计算机《TypeScript图形渲染实战:2D架构设计与实现》 一书中第3章,第3.2.8节,作者是步磊峰。

3.2.8  将DOM Event事件转换为CanvasInputEvent事件

  使用了自己定义的CanvasInputEvent事件体系,因此需要将DOM Event事件转换为CanvasInputEvent对应的子类。具体代码如下:

 

// 将DOM Event对象信息转换为自己定义的CanvasMouseEvent事件

private _toCanvasMouseEvent ( evt : Event ) : CanvasMouseEvent {

    // 向下转型,将Event转换为MouseEvent

    let event : MouseEvent = evt as MouseEvent ;

    // 将客户区的鼠标pos变换到Canvas坐标系中表示

    let mousePosition : vec2 = this . _viewportToCanvasCoordinate ( event ) ;

    // 将Event一些要用到的信息传递给CanvasMouseEvent并返回

    let canvasMouseEvent : CanvasMouseEvent = new CanvasMouseEvent

     (  mousePosition , event . button , event . altKey , event . ctrlKey ,

    event .shiftKey ) ;

    return canvasMouseEvent ;

}

// 将DOM Event对象信息转换为自己定义的Keyboard事件

private _toCanvasKeyBoardEvent ( evt : Event ) : CanvasKeyBoardEvent {

    let event : KeyboardEvent = evt as KeyboardEvent ;

    // 将Event一些要用到的信息传递给CanvasKeyBoardEvent并返回

    let canvasKeyboardEvent : CanvasKeyBoardEvent = new CanvasKeyBoardEvent

    ( event . key , event . keyCode , event . repeat , event . altKey , event .

    ctrlKey , event . shiftKey ) ;

    return canvasKeyboardEvent ;

}


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。