第21/90步《前端篇》第4章 编写一个简单的HTML5小游戏:移植及优化 第12课

简介: 今天学习《前端篇》第4章移植及优化的第12课,移植音频和事件。

image.png

今天学习《前端篇》第4章移植及优化的第12课,移植音频和事件。


学习目标


  • 处理getElementById is not a function错误;
  • 处理Audio is not defined错误;
  • 处理Audio错误:canPlayType is not a function;
  • 处理currentTime错误:currentTime是只读属性,完成音频移植;
  • 处理Image is not defined错误;
  • 学习条件运算符和短路评估表达式;
  • 认识小游戏的触摸事件:TouchStart、TouchMove、TouchEnd和TouchCancel;
  • 了targetTouches、touches和changedTouches的区别;
  • 改写click事件与mousemove事件;
  • 了解小游戏的运行环境;

主要知识点/技能点


  • 在微信小游戏中是没有DOM API的,原来在HTML5中我们使用getElementById查询Canvas对象,现在getElementById接口不能使用了,但我们可以用wx.createCanvas代替。

  • 原来由getElementById获取预置的img对象的代码,可以改用wx.createImage创建。

  • 微信小游戏/小程序接口均是以wx开头的,并且可以在任何一个JS文件中使用,无须事先引入。
  • 在小游戏中,Audio无法通过new关键字实例化,但可以使用wx.createInnerAudioContext这个方法创建一个InnerAudioContext 对象,用其代替HTML5中的Audio对象。

  • 小游戏不需要像浏览器那样做音频格式兼容,Android与iOS支持的音频类型有4类:m4a、aac、mp3和 wav。

  • 微信小游戏的Canvas API尽管与HTML5很像,但还是有差异的。在HTML5中,Audio的currentTime是一个读取属性,在小游戏中,InnerAudioContext对象的currentTime属性是只读的。

  • 在小游戏开发中,与Audio对象一样,Image也不能直接使用new关键字实例化,new Image()可以由wx.createImage()方法代替。

  • 两种短路评估表达式:(1)a && b;(2)a || b。

  • 小游戏有自己的事件体系,HTML5这种以addEventListener方法添加事件监听的方式,是不被支持的。在小游戏中,当用户手指触屏时,会产生TouchStart、TouchMove、TouchEnd和TouchCancel这 4类事件,分别对应了触摸开始、移动、完成触摸事件和取消触摸。

  • targetTouches、touches和changedTouches都是触摸事件的触摸点列表,但不同的是:(1)touches是当前屏幕上所有触摸点的集合;(2)targetTouches是绑定事件的那个元素上的触摸点的集合;(3)changedTouches是触发事件时发生改变的触摸点的集合。

  • 与HTML5中的鼠标事件不同的是,小游戏中与触摸事件相关的对象不是一个对象,而是一个事件对象的数组。

  • 一般用touchEnd改写click事件,用touchMove改写mousemove事件。

实践疑难点


  • 注意changedTouches与touches的区别,对于wx.onTouchEnd监听,我们要从changedTouches中取事件对象;对于wx.onTouchMove监听,我们才可以从touches中取事件对象。

小结


小游戏三端的脚本执行环境以及用于渲染环境是各不相同的。由于三端执行JS及渲染视图的环境存在差异,所以在模拟器中正常的代码,在手机上不一定正常,这在测试中要注意。手机上的非正常效果如下所示:



image.png

image.png

目录
相关文章
|
2月前
|
缓存 前端开发 JavaScript
利用代码分割优化前端性能:策略与实践
在现代Web开发中,代码分割是提升页面加载性能的有效手段。本文介绍代码分割的概念、重要性及其实现策略,包括动态导入、路由分割等方法,并探讨在React、Vue、Angular等前端框架中的具体应用。
|
9天前
|
人工智能 前端开发 JavaScript
前端基础之HTML
Web1.0、Web2.0 和 Web3.0 标志着互联网发展的三个阶段。Web1.0(静态互联网,1990年代初至2000年代初)以静态内容和单向信息流为主,用户仅能浏览。Web2.0(互动互联网,2000年代初至2010年代初)引入了用户生成内容和社交网络,内容动态且互动性强。Web3.0(语义互联网,2010年代至今)强调语义化、个性化、智能化及去中心化,结合AI、区块链等技术,提供沉浸式体验。HTTP和HTML作为互联网基础协议和技术,在各阶段不断演进,共同推动了现代互联网的发展。
前端基础之HTML
|
16天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
51 3
|
2月前
|
移动开发 编解码 前端开发
摸鱼必备-80款在线HTML小游戏
本文推荐了80款精彩的HTML5在线小游戏,涵盖益智、冒险、射击、体育等多种类型,适合各年龄段玩家。无需下载安装,随时随地畅玩。地址:[https://game.share888.top/](https://game.share888.top/)
231 7
摸鱼必备-80款在线HTML小游戏
|
2月前
|
前端开发 安全 UED
2024年前端性能优化新策略
2024年前端性能优化策略涵盖代码分割与环境变量管理。代码分割通过动态导入和按需加载CSS减少初始加载时间;环境变量管理则确保敏感信息安全,简化多环境配置。结合最新工具和技术,可大幅提升Web应用性能与用户体验。
|
1月前
|
缓存 监控 前端开发
探索前端性能优化:关键策略与代码实例
本文深入探讨前端性能优化的关键策略,结合实际代码示例,帮助开发者提升网页加载速度和用户体验,涵盖资源压缩、懒加载、缓存机制等技术。
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
68 7
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
44 6
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
50 5
|
2月前
|
搜索推荐 前端开发 定位技术
前端开发人员SEO优化技术方案
不同的搜索引擎提供了服务后台常见功能来优化网站搜索
50 2

热门文章

最新文章