123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /**
- * @author heyuchang
- * @file 通用页面控制器和适配
- */
- var AC = require('GameAct')
- cc.Class({
- extends: cc.Component,
- properties: {
- status: 0, //页面状态
- pages: [cc.Node],
- },
- // 0 开始游戏页面
- // 1 游戏页面
- // 2 UI页面
- // 3 过关页面
- // 4 失败页面
- // 5 复活页面
- // 6 排行榜页面
- start() {
- this.lateStart()
- },
- lateStart() {
- this.width = cc.winSize.width
- window.width = this.width
- this.height = cc.winSize.height
- window.height = this.height
- // 存为全局变量
- this.adoptCanvas()
- },
- // 适配解决方案
- adoptCanvas() {
- let canvas = cc.director.getScene().getChildByName('Canvas').getComponent(cc.Canvas)
- // 设计分辨率比
- let rateR = canvas.designResolution.height / canvas.designResolution.width;
- // 显示分辨率比
- let rateV = this.height / this.width;
- if (rateV > rateR) {
- canvas.fitHeight = false;
- canvas.fitWidth = true;
- } else {
- canvas.fitHeight = true;
- canvas.fitWidth = false;
- }
- },
- onOpenPage(num, callFun) {
- this.closeAllPages()
- this.pages[num].active = true
- // if (callFun) {
- // this.callFun();
- // }
- },
- addPage(num, callFun) {
- this.pages[num].scale = 0.5
- this.pages[num].active = true
- this.pages[num].runAction(AC.popOut(0.5))
- // if (callFun) {
- // this.callFun();
- // }
- },
- removePage(num, callFun) {
- this.pages[num].runAction(cc.sequence(AC.popIn(0.5),cc.callFunc(()=>{
- this.pages[num].active = false
- },this)))
- // if (callFun) {
- // this.callFun();
- // }
- },
- onButtonOpenPage(event, cust) {
- this.onOpenPage(cust);
- },
- onButtonAddPage(event, cust) {
- this.addPage(cust);
- },
- onButtonRemovePage(event, cust) {
- this.removePage(cust);
- },
- closeAllPages() {
- this.pages.forEach(element => {
- element.active = false
- });
- },
- });
|