第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

目录
相关文章
|
6天前
|
移动开发 编解码 前端开发
摸鱼必备-80款在线HTML小游戏
本文推荐了80款精彩的HTML5在线小游戏,涵盖益智、冒险、射击、体育等多种类型,适合各年龄段玩家。无需下载安装,随时随地畅玩。地址:[https://game.share888.top/](https://game.share888.top/)
51 7
摸鱼必备-80款在线HTML小游戏
|
8天前
|
编解码 前端开发 JavaScript
从入门到精通:揭秘前端开发中那些不为人知的优化秘籍!
前端开发是充满无限可能的领域,从初学者到资深专家,每个人都追求更快、更稳定、更用户体验友好的网页。本文介绍了四大优化秘籍:1. HTML的精简与语义化;2. CSS的优雅与高效;3. JavaScript的精简与异步加载;4. 图片与资源的优化。通过这些方法,可以显著提升网页性能和用户体验。
14 3
|
16天前
|
搜索推荐 前端开发 UED
哪些 HTML 全局属性在 SEO 优化中比较重要?
【10月更文挑战第27天】这些HTML全局属性通过不同的方式为搜索引擎提供了更丰富、准确的页面信息,有助于提高页面的可索引性、相关性和用户体验,从而在SEO优化中发挥着重要的作用。开发者应充分重视并合理运用这些属性,以提升网站在搜索引擎中的排名和流量。
|
12天前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
32 5
|
17天前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
35 6
|
13天前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
39 0
html5+three.js公路开车小游戏源码
|
19天前
|
缓存 监控 前端开发
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第26天】前端工程化是现代Web开发的重要趋势,通过将前端代码视为工程来管理,提高了开发效率和质量。本文详细对比了Webpack和Gulp两大主流构建工具的选择与配置优化,并提供了具体示例代码。Webpack擅长模块化打包和资源管理,而Gulp则在任务编写和自动化构建方面更具灵活性。两者各有优势,需根据项目需求进行选择和优化。
48 7
|
16天前
|
前端开发 搜索推荐 算法
|
18天前
|
缓存 前端开发 JavaScript
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
31 2
|
25天前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅用户体验的秘籍
【10月更文挑战第20天】前端性能优化:打造流畅用户体验的秘籍
34 3