Commit 365e84d1 authored by wildfirecode's avatar wildfirecode

1

parent 159bac51
......@@ -18,6 +18,7 @@ import { ModuleTypes } from "./types/sceneTypes";
import layers from "./views/layers";
import RankPanel from "./components/RankPanel";
import getResPath from "../new_tc/getResPath";
import loadSpriteSheet from "./loadSpriteSheet";
export default class MainBase extends eui.UILayer {
constructor() {
......@@ -104,14 +105,11 @@ export default class MainBase extends eui.UILayer {
loadAtlas() {
if (!window['development']) {
const urlJSON = getResPath() + "resource/TextureMerger/loading.json";
const request = new egret.HttpRequest();
request.open(urlJSON, egret.HttpMethod.GET);
request.send();
const url = getResPath() + "resource/TextureMerger/loading.png";
const imageLoader = new egret.ImageLoader();
imageLoader.load(url);
loadSpriteSheet().then((spritesheet: egret.SpriteSheet) => {
Loading.instace.setSpriteSheet(spritesheet);
const t = Date.now() - window['__startTime__'];
console.log(`首屏loading显示时间:${t}ms`);
})
}
}
......@@ -119,7 +117,7 @@ export default class MainBase extends eui.UILayer {
loadFirstScreen() {
this.loadFirstBG((bitmap: egret.Bitmap) => {
const t = Date.now() - window['__startTime__'];
console.log(`首屏显示时间:${t}ms`);
console.log(`首屏背景显示时间:${t}ms`);
layers.addFirstBackground(bitmap);
this._firstBgLoaded = true;
this.check();
......
import ComponentBase from "./ComponentBase";
export default class Loading extends ComponentBase {
export default class Loading extends egret.Sprite {
private static _parent: egret.Sprite;
private static _instance: Loading;
static get instace(): Loading {
return Loading._instance || (Loading._instance = new Loading());
}
constructor() {
super();
this.horizontalCenter = 0;
this.verticalCenter = 0;
this.loadSkin();
_bg: egret.Bitmap;
_progress: egret.Bitmap;
setSpriteSheet(spritesheet: egret.SpriteSheet) {
this._bg = new egret.Bitmap(spritesheet.getTexture('bg_png'));
this._bg.x = 295;
this._bg.y = 288;
this._progress = new egret.Bitmap(spritesheet.getTexture('progress_png'));
this._progress.x = 375;
this._progress.y = 380;
this._progress.anchorOffsetX = this._progress.anchorOffsetY = 28;
this.addChild(this._bg);
this.addChild(this._progress);
this.show();
}
show() {
Loading._parent.addChild(this);
if (this.skin && !this.hasEventListener(egret.Event.ENTER_FRAME))
this.addEventListener(egret.Event.ENTER_FRAME, this.onEnterFrame, this);
}
hide() {
Loading._parent.removeChild(this);
if (this.hasEventListener(egret.Event.ENTER_FRAME))
this.removeEventListener(egret.Event.ENTER_FRAME, this.onEnterFrame, this);
}
......@@ -29,15 +36,8 @@ export default class Loading extends ComponentBase {
Loading._parent = parent;
}
onSkinComplete(): any {
super.onSkinComplete();
if (!this.hasEventListener(egret.Event.ENTER_FRAME))
this.addEventListener(egret.Event.ENTER_FRAME, this.onEnterFrame, this);
}
onEnterFrame() {
this.data.speed += 5;
if (this._progress)
this._progress.rotation += 5;
}
get skinKey() { return 'Loading' }
}
......@@ -19,10 +19,14 @@ export default class PanelCtrl {
this.addMask();
if (!window['development']) {
Loading.instace.show();
RES.getResByUrl(`${panel.skinKey.toLowerCase()}_json`, (sheet: egret.SpriteSheet) => {
const key = panel.skinKey.toLowerCase();
const p = Promise.all([RES.getResAsync(`${key}_json`), RES.getResAsync(`${key}_png`)]);
p.then(() => {
RES.getResByUrl(`${key}_json`, (sheet: egret.SpriteSheet) => {
Loading.instace.hide();
this.showAfterLoadAtlas(panel, data);
}, this, RES.ResourceItem.TYPE_SHEET);
})
} else {
this.showAfterLoadAtlas(panel, data);
}
......
......@@ -19,31 +19,38 @@ export default class SceneCtrl {
const scene: Scene = new cls();
if (!window['development']) {
Loading.instace.show();
this.loadAtlasAndBg(scene, () => {
const key = scene.skinKey.toLowerCase();
const p = Promise.all([
RES.getResAsync(`${key}_json`),
RES.getResAsync(`${key}_png`),
RES.getResAsync(`${key}scenebg_jpg`)]);
p.then(() => {
// this.loadAtlasAndBg(scene, () => {
Loading.instace.hide();
this.showAfterLoadAtlas(scene, data, onComplete);
// })
});
} else {
this.showAfterLoadAtlas(scene, data, onComplete);
}
}
loadAtlasAndBg(scene, callback) {
let counter = 2;
const check = () => {
if (counter == 0) {
callback && callback();
}
}
RES.getResAsync(`${scene.skinKey.toLowerCase()}_json`, (sheet: egret.SpriteSheet) => {
counter--;
check();
}, this);
RES.getResAsync(`${scene.skinKey.toLowerCase()}scenebg_jpg`, () => {
counter--;
check();
}, this);
}
// loadAtlasAndBg(scene, callback) {
// let counter = 2;
// const check = () => {
// if (counter == 0) {
// callback && callback();
// }
// }
// RES.getResAsync(`${scene.skinKey.toLowerCase()}_json`, (sheet: egret.SpriteSheet) => {
// counter--;
// check();
// }, this);
// RES.getResAsync(`${scene.skinKey.toLowerCase()}scenebg_jpg`, () => {
// counter--;
// check();
// }, this);
// }
showAfterLoadAtlas(scene: Scene, data, onComplete: Function) {
if (this._currentScene) {
......
import getResPath from "../new_tc/getResPath";
const loadJSON = () => {
return new Promise((resolve: (value: any) => void) => {
const respHandler_onComplete = (evt: egret.Event) => {
const request: egret.HttpRequest = evt.currentTarget;
resolve(JSON.parse(request.response));
};
const urlJSON = getResPath() + "resource/TextureMerger/loading.json";
const request = new egret.HttpRequest();
request.once(egret.Event.COMPLETE, respHandler_onComplete, null);
request.open(urlJSON, egret.HttpMethod.GET);
request.send();
});
}
const loadImage = () => {
return new Promise((resolve: (value: egret.Texture) => void) => {
const oncomplete = (e: egret.Event) => {
const imageLoader: egret.ImageLoader = e.currentTarget;
const bitmapData: egret.BitmapData = imageLoader.data;
const texture = new egret.Texture();
texture._setBitmapData(bitmapData);
resolve(texture);
}
const url = getResPath() + "resource/TextureMerger/loading.png";
const imageLoader = new egret.ImageLoader();
imageLoader.load(url);
imageLoader.once(egret.Event.COMPLETE, oncomplete, this)
});
}
const loadAll = () => {
return Promise.all([loadJSON(), loadImage()])
}
const loadSpriteSheet = async () => {
return new Promise(async (resolve: (value: egret.SpriteSheet) => void) => {
const [json, atlas] = await loadAll();
const frames: any = json.frames;
const spriteSheet = new egret.SpriteSheet(atlas);
for (const subkey in frames) {
const config: any = frames[subkey];
const texture = spriteSheet.createTexture(subkey, config.x, config.y, config.w, config.h, config.offX, config.offY, config.sourceW, config.sourceH);
}
resolve(spriteSheet);
})
}
export default loadSpriteSheet;
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"alert","version":5,"files":["../assets/alert/alertbg.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"loading","version":5,"files":["../assets/loading/bg.png","../assets/loading/progress.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"option","version":5,"files":["../assets/option/line2.png","../assets/option/prizeBg.png","../assets/option/X-1.png","../assets/option/line.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"options","version":5,"files":["../assets/option/line2.png","../assets/option/prizeBg.png","../assets/option/X-1.png","../assets/option/line.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"play","version":5,"files":["../assets/playscene/testbtn.png","../assets/playscene/音乐开启.png","../assets/playscene/音乐关闭.png","../assets/playscene/轮子1.png","../assets/playscene/火箭.png","../assets/playscene/火.png","../assets/playscene/发弹雾气.png","../assets/playscene/大炮的头.png","../assets/playscene/大炮板子.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"prize","version":5,"files":["../assets/prize/prizePanelbg.png","../assets/prize/PrizePanelX.png","../assets/prize/prizePanelUseBtn.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"rank","version":5,"files":["../assets/rank/userItemBg.png","../assets/rank/rankTitle.png","../assets/rank/num3.png","../assets/rank/num2.png","../assets/rank/num1.png","../assets/rank/dog.png","../assets/rank/commonPanelBg.png","../assets/rank/closeBtn.png","../assets/rank/bottomLine.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"rule","version":5,"files":["../assets/rule/X.png","../assets/rule/ruleBg.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"start","version":5,"files":["../assets/startScene/optionBtn.png","../assets/startScene/rankBtn.png","../assets/startScene/recordbtn.png","../assets/startScene/ruleBtn.png","../assets/startScene/start_btn_gray.png","../assets/startScene/start_btn.png"]}
\ No newline at end of file
......@@ -2,6 +2,6 @@
<e:Skin class="loadingSkin" width="750" height="1206" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing" xmlns:tween="egret.tween.*">
<w:Declarations>
</w:Declarations>
<e:Image y="288" source="bg_png" horizontalCenter="0"/>
<e:Image id="waitImg" source="progress_png" y="380" anchorOffsetX="28" anchorOffsetY="28" horizontalCenter="0" rotation="{data.speed}"/>
<e:Image y="288" source="bg_png" x="295"/>
<e:Image id="waitImg" source="progress_png" y="380" anchorOffsetX="28" anchorOffsetY="28" rotation="{data.speed}" x="375"/>
</e:Skin>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment