[]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这个对象都无法显示 是不是用错方法了
已邀请:

cuixueying

赞同来自:

理解错了,抱歉,这里重新解释下
视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染 srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。 

 

jacksing888

赞同来自:

 var Browser = Laya.Browser;
    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的才会正常 麻烦看看

要回复问题请先

商务合作
商务合作