- var sp = new Sprite();
- sp.graphics.drawRect(0, 0, 100, 100, "#FF0000");
- var bounds = sp.getGraphicBounds();
- Laya.stage.addChild(sp);
getBounds可以知足多半多半需求,但因为其须要计算界线,不合适频繁调用。
2.设置容器的autoSize为true。
- var sp = new Sprite();
- sp.autoSize = true;
- sp.graphics.drawRect(0, 0, 100, 100, "#FF0000");
- Laya.stage.addChild(sp);
上述代码可以在运行时精确获取宽高。autoSize在获取宽高并且显示列表的状况产生改变时会从新计算(autoSize经由过程getBoudns计算宽高)。所以对拥有大年夜量子对象的容器应用autoSize是弗采取的。如不雅设置了size,autoSize将不起效。
应用loadImage后获取宽高:
CurMem:仅限WebGL衬着,表示内存与显存占用(越低越好)。
- var sp = new Sprite();
- sp.loadImage("res/apes/monkey2.png", 0, 0, 0, 0, Handler.create(this, function()
- {
- console.log(sp.width, sp.height);
- }));
- Laya.stage.addChild(sp);
3.直接调用size设置:
- Laya.loader.load("res/apes/monkey2.png", Handler.create(this, function()
- {
- var texture = Laya.loader.getRes("res/apes/monkey2.png");
- var sp = new Sprite();
- sp.graphics.drawTexture(texture, 0, 0);
- sp.size(texture.width, texture.height);
- Laya.stage.addChild(sp);
- }));
应用Graphics.drawTexture并不会主动设置容器的宽高,然则可以应用Texture的宽高付与容器。毋庸置疑,这是最高效的方法。
注:getGraphicsBounds用于获取矢量画图宽高。
根据晃荡状况改变帧频
帧频有三种模式,Stage.FRAME_SLOW保持FPS在30;Stage.FRAME_FAST保持FPS在60;Stage.FRAME_MOUSE则选择性保持FPS在30或60帧。

有时并不须要让游戏以60FPS的速度履行,因为30FPS已经可以或许知足多半情况下仁攀类视觉的响应,然则鼠标交互时,30FPS可能会造成画面的不连贯,于是Stage.FRAME_MOUSE应运而生。
下例展示以Stage.FRAME_SLOW的帧率,在画布上移动鼠标,使圆球跟随鼠标移动:
- Laya.init(Browser.width, Browser.height);
- Stat.show();
- Laya.stage.frameRate = Stage.FRAME_SLOW;
- var sp = new Sprite();
- sp.graphics.drawCircle(0, 0, 20, "#990000");
- Laya.stage.addChild(sp);
- Laya.stage.on(Event.MOUSE_MOVE, this, function()
- {
- sp.pos(Laya.stage.mouseX, Laya.stage.mouseY);
- });
此时FPS显示30,并且在鼠标移动时,可以感到到圆球地位的更新不连贯。设置Stage.frameRate为Stage.FRAME_MOUSE:
推荐阅读
起首什么是注解?@Override就是注解,它的感化是: 检查是否精确的重写了父类中的办法。 标明代码,这是一个重写的办法。1、表如今于:检查子类重写的办法名与参数类型是否精确;检查>>>详细阅读
本文标题:如何将HTML5性能发挥到极致
地址:http://www.17bianji.com/lsqh/37701.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示