cocos creator 实现cocos2dx中ClipingNode效果,MaskEx继承Mask,重写了isHit和_updateGraphics方法,增加setStencil()方法
具体用法如下:
this._clipNode = new Node("ClipingNode");
this._clipNode.layer = Layers.Enum.UI_2D;
let maskCom = this._clipNode.addComponent(MaskEx);
maskCom.type = MaskEx.Type.GRAPHICS_RECT;
this.node.addChild(this._clipNode);
let stencilLayer = new Node("StencilLayer");
stencilLayer.layer = Layers.Enum.UI_2D;
stencilLayer.addComponent(UITransform).setContentSize(size(300, 300));
this._clipNode.addChild(stencilLayer); //注意:必须先addChild() 再setStencil()
maskCom.setStencil(stencilLayer);
附上demo ClipingNode_demo.zip (15.3 KB) 。
注意:请使用3.6.1版本打开测试。
如有问题,欢迎指教,谢谢!