×

微信小游戏 教程

微信小游戏教程 基础

小游戏基础教程 快速上手小游戏基础教程 Adapter(适配器)小游戏基础教程 对引擎的支持小游戏基础教程 模块化

微信小游戏教程 能力

小游戏能力教程 音频播放小游戏能力教程 文件系统

微信小游戏教程 可用性

小游戏可用性教程 调试小游戏可用性教程 性能小游戏可用性教程 多线程 Worker

微信小游戏教程 开放能力

小游戏开放能力教程 用户授权小游戏开放能力教程 用户登录态签名小游戏开放能力教程 获取二维码小游戏开放能力教程 转发小游戏开放能力教程 用户数据的签名验证和加解密

微信小游戏 API

微信小游戏API 渲染

微信小游戏渲染API 画布

小游戏渲染API wx.createCanvas() 创建画布对象小游戏渲染API Canvas 画布对象小游戏渲染API RenderingContext 渲染环境小游戏渲染API Canvas.getContext 获取画布对象的绘图上下文小游戏渲染API Canvas.toTempFilePath小游戏渲染API Canvas.toDataURL()小游戏渲染API Canvas.toTempFilePathSync

微信小游戏渲染API 图片

小游戏渲染API Image wx.createImage() 创建一个图片对象小游戏渲染API Image 图片对象

微信小游戏渲染API 字体

小游戏渲染API wx.getTextLineHeight 获取一行文本的行高小游戏渲染API wx.loadFont 加载自定义字体文件

微信小游戏渲染API 帧率

小游戏渲染API wx.setPreferredFramesPerSecond小游戏渲染API cancelAnimationFrame小游戏渲染API requestAnimationFrame

微信小游戏API 系统

微信小游戏系统API 生命周期

小游戏系统API wx.exitMiniProgram 退出小游戏系统API wx.getLaunchOptionsSync小游戏系统API wx.onHide小游戏系统API wx.offHide小游戏系统API wx.onShow小游戏系统API wx.offShow

微信小游戏系统API 系统信息

小游戏系统API wx.getSystemInfo 获取系统信息小游戏系统API wx.getSystemInfoSync

微信小游戏系统API 系统事件

小游戏系统API wx.onAudioInterruptionEnd小游戏系统API wx.offAudioInterruptionEnd小游戏系统API wx.onAudioInterruptionBegin小游戏系统API wx.offAudioInterruptionBegin小游戏系统API wx.onError小游戏系统API wx.offError

微信小游戏系统API 触摸事件

小游戏系统API wx.onTouchStart小游戏系统API wx.offTouchStart小游戏系统API wx.onTouchMove小游戏系统API wx.offTouchMove小游戏系统API wx.onTouchEnd小游戏系统API wx.offTouchEnd小游戏系统API wx.onTouchCancel小游戏系统API wx.offTouchCancel小游戏系统API Touch 触点

微信小游戏API 设备

微信小游戏设备API 加速计

小游戏设备API wx.onAccelerometerChange小游戏设备API wx.startAccelerometer小游戏设备API wx.stopAccelerometer

微信小游戏设备API 电量

小游戏设备API wx.getBatteryInfo小游戏设备API wx.getBatteryInfoSync

微信小游戏设备API 剪贴板

小游戏设备API wx.getClipboardData小游戏设备API wx.setClipboardData

微信小游戏设备API 罗盘

小游戏设备API wx.onCompassChange小游戏设备API wx.startCompass小游戏设备API wx.stopCompass

微信小游戏设备API 网络

小游戏设备API wx.getNetworkType小游戏设备API wx.onNetworkStatusChange

微信小游戏设备API 屏幕

小游戏设备API wx.getScreenBrightness小游戏设备API wx.setKeepScreenOn小游戏设备API wx.setScreenBrightness

微信小游戏设备API 振动

小游戏设备API wx.vibrateShort小游戏设备API wx.vibrateLong

微信小游戏API 文件

小游戏文件API wx.getFileSystemManager小游戏文件API FileSystemManager 文件管理器小游戏文件API FileSystemManager.access小游戏文件API FileSystemManager.accessSync小游戏文件API FileSystemManager.copyFile 复制文件小游戏文件API FileSystemManager.copyFileSync小游戏文件API FileSystemManager.getFileInfo小游戏文件API FileSystemManager.getSavedFileList小游戏文件API FileSystemManager.mkdir 创建目录小游戏文件API FileSystemManager.mkdirSync小游戏文件API FileSystemManager.rmdir 删除目录小游戏文件API FileSystemManager.readdir小游戏文件API FileSystemManager.removeSavedFile小游戏文件API FileSystemManager.readFile小游戏文件API FileSystemManager.rename小游戏文件API FileSystemManager.readdirSync小游戏文件API FileSystemManager.renameSync小游戏文件API FileSystemManager.readFileSync小游戏文件API FileSystemManager.rmdirSync小游戏文件API FileSystemManager.saveFile小游戏文件API FileSystemManager.stat小游戏文件API Stats FileSystemManager.statSync小游戏文件API FileSystemManager.unlink 删除文件小游戏文件API FileSystemManager.unzip 解压文件小游戏文件API FileSystemManager.unlinkSync小游戏文件API FileSystemManager.unzipSync小游戏文件API FileSystemManager.writeFile 写文件小游戏文件API FileSystemManager.writeFileSync

微信小游戏API 位置

小游戏位置API wx.getLocation

微信小游戏API 网络

微信小游戏网络API 下载

小游戏网络API wx.downloadFile小游戏网络API DownloadTask小游戏网络API DownloadTask.abort小游戏网络API DownloadTask.onProgressUpdate

微信小游戏网络API 发起请求

小游戏网络API wx.request 发起网络请求小游戏网络API RequestTask 网络请求任务对象小游戏网络API RequestTask.abort

微信小游戏网络API WebSocket

小游戏网络API wx.connectSocket小游戏网络API wx.closeSocket 关闭 WeSocket 连接小游戏网络API wx.onSocketOpen小游戏网络API wx.onSocketClose小游戏网络API wx.onSocketMessage小游戏网络API wx.onSocketError小游戏网络API wx.sendSocketMessage小游戏网络API SocketTask小游戏网络API SocketTask.close小游戏网络API SocketTask.onOpen小游戏网络API SocketTask.onClose小游戏网络API SocketTask.onError小游戏网络API SocketTask.onMessage小游戏网络API SocketTask.send

微信小游戏网络API 上传

小游戏网络API wx.uploadFile小游戏网络API UploadTask小游戏网络API UploadTask.abort小游戏网络API UploadTask.onProgressUpdate

微信小游戏API 开放接口

微信小游戏开放接口API 登录

小游戏网络API wx.checkSession小游戏开放接口API wx.login

微信小游戏开放接口API 授权

小游戏开放接口API wx.authorize

微信小游戏开放接口API 用户信息

小游戏开放接口API wx.getUserInfo小游戏开放接口API UserInfo

微信小游戏开放接口API 设置

小游戏开放接口API wx.getSetting小游戏开放接口API wx.openSetting小游戏开放接口API AuthSetting

微信小游戏开放接口API 微信运动

小游戏开发接口API wx.getWeRunData

微信小游戏API 转发

小游戏转发API wx.getShareInfo小游戏转发API wx.hideShareMenu小游戏转发API wx.onShareAppMessage小游戏转发API wx.offShareAppMessage小游戏转发API wx.showShareMenu小游戏转发API wx.shareAppMessage小游戏转发API wx.updateShareMenu

微信小游戏API 调试

小游戏调试API wx.setEnableDebug

微信小游戏API 数据缓存

小游戏数据缓存API wx.clearStorage小游戏数据缓存API wx.clearStorageSync小游戏数据缓存API wx.getStorage小游戏数据缓存API wx.getStorageInfo小游戏数据缓存API wx.getStorageSync小游戏数据缓存API wx.getStorageInfoSync小游戏数据缓存API wx.removeStorage小游戏数据缓存API wx.removeStorageSync小游戏数据缓存API wx.setStorage小游戏数据缓存API wx.setStorageSync

微信小游戏API 界面

微信小游戏界面API 交互

小游戏界面API wx.hideToast小游戏界面API wx.hideLoading小游戏界面API wx.showModal小游戏界面API wx.showToast小游戏界面API wx.showLoading小游戏界面API wx.showActionSheet

微信小游戏界面API 键盘

小游戏界面API wx.hideKeyboard小游戏界面API wx.onKeyboardInput小游戏界面API wx.offKeyboardInput小游戏界面API wx.onKeyboardConfirm小游戏界面API wx.offKeyboardConfirm小游戏界面API wx.onKeyboardComplete小游戏界面API wx.offKeyboardComplete小游戏界面API wx.showKeyboard 显示键盘

微信小游戏界面API 菜单

小游戏界面API wx.setMenuStyle

微信小游戏界面API 窗口

小游戏界面API wx.onWindowResize小游戏界面API wx.offWindowResize

微信小游戏API Worker

小游戏API wx.createWorker小游戏API Worker小游戏API Worker.onMessage小游戏API Worker.postMessage小游戏API Worker.terminate

微信小游戏API 媒体

微信小游戏媒体API 音频

小游戏媒体API wx.createInnerAudioContext小游戏媒体API InnerAudioContextInnerAudioContext.destroyInnerAudioContext.offCanplayInnerAudioContext.onPauseInnerAudioContext.offPauseInnerAudioContext.onStopInnerAudioContext.offStopInnerAudioContext.onEndedInnerAudioContext.offEndedInnerAudioContext.onTimeUpdateInnerAudioContext.onPlayInnerAudioContext.onErrorInnerAudioContext.onWaitingInnerAudioContext.offWaitingInnerAudioContext.onSeekingInnerAudioContext.offSeekingInnerAudioContext.onSeekedInnerAudioContext.offSeekedInnerAudioContext.onCanplayInnerAudioContext.offPlayInnerAudioContext.offTimeUpdateInnerAudioContext.offErrorInnerAudioContext.pauseInnerAudioContext.playInnerAudioContext.seek

微信小游戏录音

RecorderManagerRecorderManager.startRecorderManager.pauseRecorderManager.resumeRecorderManager.stopRecorderManager.onStartRecorderManager.onPauseRecorderManager.onStopRecorderManager.onFrameRecordedRecorderManager.onErrorRecorderManager getRecorderManager

微信小游戏视频

VideoVideo.onWaitingVideo.onPlayVideo.onPauseVideo.onEndedVideo.onTimeUpdateVideo.onErrorVideo.playVideo.pauseVideo.stopVideo.seekVideo.requestFullScreenVideo.exitFullScreencreateVideo

微信小游戏性能

getPerformancePerformancePerformance.nowsetPreferredFramesPerSecondtriggerGC

微信小游戏数据上报

gameLoginReportgameLogoutReport

微信小游戏 工具

微信小游戏工具 概览

微信小游戏工具 界面

小游戏工具 启动页小游戏工具 主界面小游戏工具 菜单栏小游戏工具 工具栏小游戏工具 模拟器小游戏工具 设置页小游戏工具 项目页卡小游戏工具 快捷键小游戏工具 调试小游戏工具 命令行调用小游戏工具 HTTP 调用微信小程序开发文档 微信小游戏工具 下载

微信小游戏开发文档-小游戏多线程 Worker可用性开发教程


多线程 Worker


对于游戏来说,每帧 16ms 是极其宝贵的,如果有一些可以异步处理的任务,可以放置于 Worker 中运行,待运行结束后,再把结果返回到主线程。Worker 运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法,Worker 也不具备渲染的能力。 Worker与主线程之间的数据传输,双方使用 Worker.postMessage() 来发送数据,Worker.onMessage() 来接收数据,传输的数据并不是直接共享,而是被复制的。

步骤

1. 配置 Worker 信息

game.json 中可配置 Worker 代码放置的目录,目录下的代码将被打包成一个文件:

配置示例:

{
  "workers": "workers"
}
2. 添加 Worker 代码文件

根据步骤 1 中的配置,在代码目录下新建以下两个入口文件:

workers/request/index.js
workers/request/utils.js
workers/response/index.js

添加后,目录结构如下:

├── game.js
├── game.json
├── project.config.json
└── workers
    ├── request
    │   ├── index.js
    │   └── utils.js
    └── response
        └── index.js

3. 编写 Worker 代码

workers/request/index.js 编写 Worker 响应代码

var utils = require('./utils')

// 在 Worker 线程执行上下文会全局暴露一个 `worker` 对象,直接调用 worker.onMeesage/postMessage 即可
worker.onMessage(function (res) {
  console.log(res)
})

4. 在主线程中初始化 Worker

在主线程的代码 game.js 中初始化 Worker

var worker = wx.createWorker('workers/request/index.js') // 文件名指定 worker 的入口文件路径,绝对路径

5. 主线程向 Worker 发送消息

worker.postMessage({
  msg: 'hello worker'
})

Tips

  1. Worker 最大并发数量限制为 1 个,创建下一个前请用 Worker.terminate() 结束当前 Worker
  2. Worker 内代码只能 require 指定 Worker 路径内的文件,无法引用其它路径
  3. Worker 的入口文件由 wx.createWorker() 时指定,开发者可动态指定 Worker 入口文件
  4. Worker 内不支持 wx 系列的 API
  5. Workers 之间不支持发送消息



分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)