"use strict"; cc._RF.push(module, 'ea086z0gwVFFq6Fjw6i8uUn', 'nx.fx.safeArea'); // Scripts/nx/cmp/flex/nx.fx.safeArea.js "use strict"; /****************************************************************** * Copyright(C) 2019 - 2020 Nx Studio * * 安全区 * * 2018.05.18 ******************************************************************/ cc.Class({ "extends": cc.Component, properties: { space: { "default": 60, displayName: "宽度" }, reverse: { "default": false, displayName: "逆向操作" } }, // 编辑器特性 editor: { // 允许当前组件在编辑器模式下运行 executeInEditMode: false, // requireComponent 参数用来指定当前组件的依赖组件 requireComponent: cc.Widget, // 当本组件添加到节点上后,禁止同类型(含子类)的组件再添加到同一个节点,防止逻辑发生冲突 disallowMultiple: true, // menu 用来将当前组件添加到组件菜单中,方便用户查找 menu: "Nx/组件|安全区" }, // 首发 onEnable: function onEnable() { // 暂时只处理横屏处理 // 暂时固定宽高比判定,不用获取safeArea来设定 var cmp = this.node.getComponent(cc.Widget); var hor = nx.frame.vget("IsLandscape"); var rr = nx.frame.vget("RuntimeWHRate"); if (!cmp || !hor || rr <= 1.8) { return; } // 逆向操作 // 作为安全区内的子节点,脱离安全区限制 if (this.reverse) { cmp.target = game.views; cmp.left = 0; cmp.right = 0; } else { // 正向操作 cmp.left = this.space; cmp.right = this.space; } cmp.updateAlignment(); this.node.children.forEach(function (_node) { var cmp = _node.getComponent(cc.Widget); if (cmp) { cmp.updateAlignment(); } }); } }); cc._RF.pop();