LayaAir 绘制微信小游戏开放数据域画面

请大家关注我的微博:@NormanLin_BadPixel坏像素

之前写过用cocosCreator绘制微信小游戏子域的教程,保持整体思路不变,现在再写一下用Laya的。
虽然官方有文档说明,不过我觉得写得不够详细,而且会遇到很多问题。

子域工程

子域的工程,无论大家是用什么创建的。我的是用ccc(cocosCreator,下同)创建的。

主域

创建控制子域画面的脚本。

function SubViewController() {this.SubView = new Laya.Sprite();this.Node = new Laya.View();this.Node.width = Laya.stage.width;this.Node.height = Laya.stage.height;Laya.stage.addChild(this.Node);this.Node.addChild(this.SubView);
}

上面的脚本,添加了一层画面,在这个画面上,会绘制子域的画面。跟其他UI的层级关系大家自己处理。

SubViewController.prototype.UpdateView = function () {if (Laya.Browser.onMiniGame) {this.SubView.graphics.clear();if (this.SharedCanva == null) {this.SharedCanva = wx.getOpenDataContext().canvas;var width = Laya.stage.width;var height = Laya.stage.height;this.SharedCanva.width = width;this.SharedCanva.height = height;//缩放子域画面。因为我子域画面的长宽比是16:9(写死吧,简单的自适应)//如果根据高度缩放,大家换成scaleX自己算。this.SubView.scaleY = (9 / 16) * (height / width);this.SubTex = new Laya.Texture(sharedCanvas);}if (this.SharedCanva != null) {this.SubTex.bitmap.alwaysChange = true;//小游戏使用,非常费,每帧刷新this.SubView.graphics.drawTexture(this.SubTex);//我这里试着不把alwaysChange设为true,结果发现没有绘制。所以这里让他设为true持续n帧。(我是设置了3帧)this.SubView.frameOnce(3, this, this.CloseChange);}}
}
SubViewController.prototype.CloseChange = function () {if (this.SubTex) {this.SubTex.bitmap.alwaysChange = false;}
}

这里注意,我这样写的前提是不是每帧都更新子域画面,因为Laya绘制子域画面性能贼差,所以我这段代码只有在需要更新画面的时候再调用。

如果你要每帧更新,那就用官方的方法吧。

LayaAir 绘制微信小游戏开放数据域画面相关推荐

  1. 微信小游戏|开放数据域的写与读

    本文来自Cocos官方论坛,感谢「达闻西」的分享! 1. 引言 本来是自己写的笔记,想想还是发出来把,能让不少新手少走弯路,毕竟自己也是摸索了好久!以图片的形式,让大家更直观点! 微信小游戏API官方 ...

  2. 微信小游戏开放域之helloworld

    标签: 微信小游戏,开放域 微信小游戏-开放数据域的配置 概念 开放数据域 是一个封闭.独立的 JavaScript 作用域.开放数据域主要作用就是获取用户的关系链数据,并且展示关系链数据 具体使用方 ...

  3. 微信小游戏:主域子域

    主域 通常我们所有的功能在主域中就可以完成,主域中有游戏开发所需的所有接口.但是当我们想要做需要访问用户好友数据信息的时候,就需要用到开放数据域中的接口,开放数据域中的接口只能在子域中访问,这也就是我 ...

  4. Unity 之 转微信小游戏本地数据存储方法分享

    Unity 之 转微信小游戏本地数据存储 问题背景 微信小游戏读写本地文件 WebGL平台的一些限制 报错查看方法分享 问题背景 近期在将Unity转换为小游戏的时候发现在读写本地文件的时候,使用Ap ...

  5. CocosCreator微信小游戏开放域使用(排行榜)

    CocosCreator官方文档 微信小程序开放域官方文档 实现步骤: 单独创建一个开放域项目,并设置接收消息方法 const { ccclass, property } = cc._decorato ...

  6. creator 微信小游戏存取数据

    本人小白,这是自我总结,不管对错,欢迎大神评论纠错 creator 2.0.9版本,在做微信小游戏是,用cc.sys.localStorage.getItem读数据会有问题, 我本来想的读取金币数,因 ...

  7. 微信小游戏开放测试~

    " 小程序游戏类目开放测试,开发者可开发.调试小游戏.同时,对小游戏开放微信社交关系链.虚拟支付能力." 01 - 小游戏开放测试 开发者注册小程序帐号后可选择"游戏&q ...

  8. 微信小游戏服务器数据持久化,微信小程序wx.setStorage数据缓存实现缓存过期时间...

    为了项目性能等方面的考虑,有时候有必要为用户经常访问的页面使用缓存机制:在技术上,服务端和前端都有相应的缓存机制.比如传统的session及cookie等等,在微信小程序中,并没有cookie机制,但 ...

  9. CocosCreator微信小游戏排行榜及开放数据域的理解与使用

    微信小游戏开放数据域及排行榜的使用 好久没有写博客了,距离上一次博客,已经有了近半年之久,这段时间发生了太多的事,当然,这些不是今天的主题,接下来我们主要讲一讲微信小游戏开放数据域的使用,以及如果制作 ...

最新文章

  1. SQL-23 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列...
  2. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
  3. Android进程保活
  4. 舆情分析项目-重庆公交坠江原因
  5. IAR 增加头文件注意事项
  6. H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面...
  7. WinDBG调试dNet程序总结
  8. java mawen介绍_Maven的介绍及使用
  9. AndroidStudio取消撤销、AS取消撤销;Ctrl+Shift+Z;
  10. 【C语言】分别用下标法,地址法和指针法输出数组中的全部元素
  11. 转:55个javascript处理网页技巧
  12. 音乐播放器 EasyMusic (一)
  13. Blender插件之Panel
  14. Unity 3D 设计小球酷跑游戏
  15. 用 Creator 写微信小游戏排行榜
  16. python展望_对于Python学习的展望
  17. Win10“启动”文件夹在哪里?如何打开Win10启动文件夹?
  18. Python定时任务推送微信消息
  19. 数据模拟:利用Java模拟数据(姓名,邮箱,地址,电话等信息,时间,工资,1-10随机数)并存入mysql
  20. 矩阵的LU分解,LU分解的推广,LU分解有什么意义,为什么要用LU分解。

热门文章

  1. 斩·赤红之瞳动漫网页 html源码 期末大作业 课程设计
  2. 2020安徽程序设计省赛 I美丽几何
  3. 参与机器人教育活动的意义
  4. 错排问题(错排公式)
  5. python输入一组数据找出被七除余一的数_2018年最新北师大版小学三年级数学下册第一单元 除法 检测试题试卷...
  6. 网络工程与组网技术——第三讲
  7. Redis6.0.6_02_Redis 入门基础
  8. 图片较多时要提高网页加载速度
  9. django的settings配置详解
  10. 千元机市场再添“新宠”,红米Note7和vivo Z3谁才是千元王者