/** * 重写Canvas的目的:固定适配方式(宽度适配/高度适配),不可编辑。适配选择的逻辑: * 如果宽高比超过2,则选择高度固定适配;否则选择宽度固定适配 */ // 设计分辨率 let defaultSize = cc.size(1138, 640); // 宽度、高度固定适配的分界线 let scaleLimit = defaultSize.width / defaultSize.height; cc.Class({ editor: { menu: 'Engine/CanvasEx' }, extends: cc.Canvas, properties: { _designResolution: { override: true, visible: false, default: defaultSize }, fitHeight: { override: true, visible: false, get: function () { let frameSize = cc.view.getFrameSize(); return frameSize.width / frameSize.height > scaleLimit; }, set (value) {} }, fitWidth: { override: true, visible: false, get: function () { let frameSize = cc.view.getFrameSize(); return frameSize.width / frameSize.height <= scaleLimit; }, set (value) {} } } });