作家
登录

如何将HTML5性能发挥到极致

作者: 来源: 2017-10-07 13:47:20 阅读 我要评论

  1. var sp = new Sprite(); 
  2. sp.graphics.drawRect(0, 0, 100, 100, "#FF0000"); 
  3. var bounds = sp.getGraphicBounds(); 
  4. Laya.stage.addChild(sp); 

getBounds可以知足多半多半需求,但因为其须要计算界线,不合适频繁调用。

2.设置容器的autoSize为true。

  1. var sp = new Sprite(); 
  2. sp.autoSize = true
  3. sp.graphics.drawRect(0, 0, 100, 100, "#FF0000"); 
  4. Laya.stage.addChild(sp); 

上述代码可以在运行时精确获取宽高。autoSize在获取宽高并且显示列表的状况产生改变时会从新计算(autoSize经由过程getBoudns计算宽高)。所以对拥有大年夜量子对象的容器应用autoSize是弗采取的。如不雅设置了size,autoSize将不起效。

应用loadImage后获取宽高:

CurMem:仅限WebGL衬着,表示内存与显存占用(越低越好)。

  1. var sp = new Sprite(); 
  2. sp.loadImage("res/apes/monkey2.png", 0, 0, 0, 0, Handler.create(this, function() 
  3.     console.log(sp.width, sp.height); 
  4. })); 
  5. Laya.stage.addChild(sp); 

3.直接调用size设置:

  1. Laya.loader.load("res/apes/monkey2.png", Handler.create(this, function() 
  2.     var texture = Laya.loader.getRes("res/apes/monkey2.png"); 
  3.     var sp = new Sprite(); 
  4.     sp.graphics.drawTexture(texture, 0, 0); 
  5.     sp.size(texture.width, texture.height); 
  6.     Laya.stage.addChild(sp); 
  7. })); 

应用Graphics.drawTexture并不会主动设置容器的宽高,然则可以应用Texture的宽高付与容器。毋庸置疑,这是最高效的方法。

注:getGraphicsBounds用于获取矢量画图宽高。

根据晃荡状况改变帧频

帧频有三种模式,Stage.FRAME_SLOW保持FPS在30;Stage.FRAME_FAST保持FPS在60;Stage.FRAME_MOUSE则选择性保持FPS在30或60帧。

若何将HTML5机能发挥到极致

有时并不须要让游戏以60FPS的速度履行,因为30FPS已经可以或许知足多半情况下仁攀类视觉的响应,然则鼠标交互时,30FPS可能会造成画面的不连贯,于是Stage.FRAME_MOUSE应运而生。

下例展示以Stage.FRAME_SLOW的帧率,在画布上移动鼠标,使圆球跟随鼠标移动:

  1. Laya.init(Browser.width, Browser.height); 
  2. Stat.show(); 
  3. Laya.stage.frameRate = Stage.FRAME_SLOW; 
  4.  
  5. var sp = new Sprite(); 
  6. sp.graphics.drawCircle(0, 0, 20, "#990000"); 
  7. Laya.stage.addChild(sp); 
  8.  
  9. Laya.stage.on(Event.MOUSE_MOVE, this, function() 
  10.     sp.pos(Laya.stage.mouseX, Laya.stage.mouseY); 
  11. }); 

此时FPS显示30,并且在鼠标移动时,可以感到到圆球地位的更新不连贯。设置Stage.frameRate为Stage.FRAME_MOUSE:


  推荐阅读

  Android注解快速入门和实用解析

起首什么是注解?@Override就是注解,它的感化是: 检查是否精确的重写了父类中的办法。 标明代码,这是一个重写的办法。1、表如今于:检查子类重写的办法名与参数类型是否精确;检查>>>详细阅读


本文标题:如何将HTML5性能发挥到极致

地址:http://www.17bianji.com/lsqh/37701.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)