[]viewport 的用法
var Sprite = Laya.Sprite;
var HitArea = Laya.HitArea;
var Graphic = Laya.Graphics;
var Event = Laya.Event;
var Layer = Laya.Layer;
var Rectangle = Laya.Rectangle;
function layaSlot(info){
layaSlot.__super.call(this);
this.size(200,200);
this.graphics.drawRect(0,0,200,200,'#123456');
var viewPort = new Rectangle(0,0,200,200);
this.viewport = viewPort;
var ccc = new Sprite();
ccc.graphics.drawRect(0,0,50,50,'#123000');
this.addChild(ccc);
//ccc.x = -30
}
Laya.class(layaSlot,null,Sprite);
代码是这样的 我的想法是 在viewport之外的 应该是不会显示的 在viwport之内显示的应该是会显示的 但是实际上跑出来发现只要设置了这个viewport 这个ccc这个对象都无法显示 是不是用错方法了
var HitArea = Laya.HitArea;
var Graphic = Laya.Graphics;
var Event = Laya.Event;
var Layer = Laya.Layer;
var Rectangle = Laya.Rectangle;
function layaSlot(info){
layaSlot.__super.call(this);
this.size(200,200);
this.graphics.drawRect(0,0,200,200,'#123456');
var viewPort = new Rectangle(0,0,200,200);
this.viewport = viewPort;
var ccc = new Sprite();
ccc.graphics.drawRect(0,0,50,50,'#123000');
this.addChild(ccc);
//ccc.x = -30
}
Laya.class(layaSlot,null,Sprite);
代码是这样的 我的想法是 在viewport之外的 应该是不会显示的 在viwport之内显示的应该是会显示的 但是实际上跑出来发现只要设置了这个viewport 这个ccc这个对象都无法显示 是不是用错方法了
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
cuixueying
赞同来自:
视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染 srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。
jacksing888
赞同来自:
var Stage = Laya.Stage;
var WebGL = Laya.WebGL;
var Rectangle = Laya.Rectangle;
var Sprite = Laya.SpriteLaya.init(640, 1136,WebGL);
Laya.stage.alignH = Stage.ALIGN_CENTER;
Laya.stage.alignV = Stage.ALIGN_MIDDLE;
Laya.stage.scaleMode = "fixedwidth";
Laya.stage.bgColor = "12333";
function layaSlot(info){
layaSlot.__super.call(this);
this.size(200,200);
this.graphics.drawRect(0,0,200,200,'#123456');
var viewPort = new Rectangle(0,0,200,200);
this.viewport = viewPort;
var ccc = new Sprite();
ccc.graphics.drawRect(0,0,50,50,'#123000');
this.addChild(ccc);
ccc.x = 10;
//ccc.y = 10
}
Laya.class(layaSlot,null,Sprite);
var dddd = new layaSlot();
dddd.x = 100
dddd.y=100
Laya.stage.addChild(dddd);
跑一下这句代码 我发现了 如果ccc.y不设置或者设置为0的话 就是无论怎样都没办法显示 y一定要设置为大于0的才会正常 麻烦看看