第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

目录
相关文章
|
1天前
|
机器学习/深度学习 前端开发 JavaScript
探寻前端巨变:从HTML到现代框架的发展历程
探寻前端巨变:从HTML到现代框架的发展历程
11 2
|
1天前
|
前端开发 JavaScript Go
构建高性能Web应用:优化前端资源加载
在构建现代Web应用时,优化前端资源加载是至关重要的一步。本文将介绍一些提升Web应用性能的关键策略,包括减少HTTP请求、压缩和合并资源、使用CDN加速、以及异步加载技术等。通过实施这些优化策略,开发人员可以显著提升网站的加载速度和用户体验。
|
2天前
|
前端开发 JavaScript UED
如何优化前端网页加载速度
在当今互联网时代,网页加载速度成为了用户体验的重要指标之一。本文将介绍一些优化前端网页加载速度的方法,包括压缩资源、使用CDN加速、延迟加载等技术手段,帮助开发者提升网页性能,提高用户满意度。
|
9天前
|
缓存 前端开发 UED
优化前端性能的六大技巧
在当今互联网高速发展的时代,优化前端性能是每个开发者都必须重视的任务。本文将介绍六大实用的技巧,帮助开发者提升前端应用的性能,提升用户体验。
|
10天前
|
存储 缓存 前端开发
前端如何利用indexDB进行数据优化
使用IndexedDB作为浏览器内置的客户端数据库,用于存储大量数据和实现离线支持。它能缓存常用数据,减少服务器请求,提高用户体验。IndexedDB支持数据索引、复杂查询及版本管理,允许离线操作并同步到服务器。但需熟悉其异步API,可借助Dexie.js、localForage等库简化使用。
|
12天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
13天前
|
机器学习/深度学习 前端开发 算法
使用机器学习优化前端用户体验
在当今高度竞争的互联网市场中,用户体验是至关重要的。本文将探讨如何利用机器学习技术来优化前端用户体验,从而提高用户满意度和留存率。我们将介绍如何利用机器学习算法分析用户行为数据,优化网站性能和内容推荐,以及如何实时调整界面设计和交互方式,从而实现个性化、智能化的用户体验。
|
14天前
|
前端开发 算法 JavaScript
如何优化前端性能:探索图片压缩与延迟加载技术
本文深入探讨了前端性能优化中的关键问题:图片压缩与延迟加载技术。通过介绍图片压缩的原理和方法,并结合实例说明了如何有效减少图片大小、提升加载速度;同时,详细解析了延迟加载技术的实现原理及其在提高页面加载性能中的作用,为前端开发者提供了实用的优化方案。
|
16天前
|
缓存 前端开发 JavaScript
如何优化前端网页加载速度:7个实用技巧
在当今互联网时代,网页加载速度对用户体验至关重要。本文将介绍7个实用的技巧,帮助前端开发者优化网页加载速度,提升用户体验。从压缩资源到异步加载,从图片优化到缓存策略,这些技巧将帮助你在前端开发中取得更好的效果。
|
24天前
|
前端开发 JavaScript UED
如何优化前端网页性能提升用户体验
本文将探讨如何通过一系列前端优化技术,提高网页加载速度、减少资源请求次数,从而优化用户体验。我们将介绍一些常用的性能优化技巧,包括资源压缩、懒加载、CDN 加速等方法,帮助开发者更好地构建高效、流畅的前端网页。