|
|
@@ -0,0 +1,69 @@
|
|
|
+
|
|
|
+const TopEdgeDistance = 0;
|
|
|
+const BottomEdgeDistance = 0;
|
|
|
+const { ccclass, property } = cc._decorator;
|
|
|
+enum BGType {
|
|
|
+ /**
|
|
|
+ * 无
|
|
|
+ * @property {Number} None
|
|
|
+ */
|
|
|
+ None = 0,
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 半透明
|
|
|
+ * @property {Number} Translucent
|
|
|
+ */
|
|
|
+ Translucent = 1,
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 窗口遮罩
|
|
|
+ * - 挂载到节点上
|
|
|
+ * @author 薛鸿潇
|
|
|
+ */
|
|
|
+@ccclass//('UIBG')
|
|
|
+export class UIBG extends cc.Component {
|
|
|
+ @property({ displayName: '背景颜色' })
|
|
|
+ private color = new cc.Color(0, 0, 0, 120);
|
|
|
+ @property({ displayName: '点击关闭' })
|
|
|
+ private bClickClose: boolean = false;
|
|
|
+
|
|
|
+ /** 背景节点 */
|
|
|
+ private node_bg: cc.Node = null;
|
|
|
+
|
|
|
+ onLoad() {
|
|
|
+ this.initBG();
|
|
|
+ }
|
|
|
+
|
|
|
+ private initBG() {
|
|
|
+ const width = mk.game.getWinSize().width;
|
|
|
+ const height = mk.game.getWinSize().height;
|
|
|
+ this.node_bg = this.drawColorRect(new cc.Rect(-width / 2, -height / 2, width, height));
|
|
|
+ this.node_bg.parent = this.node;
|
|
|
+ this.node_bg.zIndex = -10000;
|
|
|
+ this.node_bg.addComponent(cc.Button);
|
|
|
+ this.node_bg.on('click', this.initClick, this);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按钮回调
|
|
|
+ */
|
|
|
+ private initClick() {
|
|
|
+ if (this.bClickClose) mk.ui.closePanel(this.node.name);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 创建背景蒙版 by 绘图组件
|
|
|
+ * @param size 坐标及宽高
|
|
|
+ * @returns 创建的节点
|
|
|
+ */
|
|
|
+ public drawColorRect(size: cc.Rect): cc.Node {//
|
|
|
+ cc.log(size)
|
|
|
+ let node = new cc.Node('colorRect');
|
|
|
+ node.setContentSize(size);
|
|
|
+ let graph = node.addComponent(cc.Graphics);
|
|
|
+ graph.fillColor = this.color;
|
|
|
+ graph.fillRect(size.x, size.y, size.width, size.height);
|
|
|
+ return node;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|