1 line
3.8 KiB
JavaScript
1 line
3.8 KiB
JavaScript
function loader(){this.init()}loader.prototype.init=function(){};loader.prototype.setStartProgressVal=function(a){core.dom.startTopProgress.style.width=a+"%"};loader.prototype.setStartLoadTipText=function(a){core.dom.startTopLoadTips.innerHTML=a};loader.prototype.load=function(a){core.loader.loadIcons();core.loader.loadImages(core.materials,core.material.images,function(){core.material.images.images={};var b=core.clone(core.images);if(b.indexOf("hero.png")<0){b.push("hero.png")}core.loader.loadImages(b,core.material.images.images,function(){core.material.images.autotile={};core.loader.loadImages(Object.keys(core.material.icons.autotile),core.material.images.autotile,function(){core.loader.loadAnimates();core.loader.loadMusic();if(core.isset(a)){a()}})})})};loader.prototype.loadIcons=function(){this.loadImage("icons.png",function(a,b){var c=core.cropImage(b);for(var d in core.statusBar.icons){if(typeof core.statusBar.icons[d]=="number"){core.statusBar.icons[d]=c[core.statusBar.icons[d]];if(core.isset(core.statusBar.image[d])){core.statusBar.image[d].src=core.statusBar.icons[d].src}}}})};loader.prototype.loadImages=function(d,f,a){if(d.length==0){if(core.isset(a)){a()}return}var c=0;for(var b=0;b<d.length;b++){this.loadImage(d[b],function(g,h){core.loader.setStartLoadTipText("正在加载图片 "+g+"...");f[g]=h;c++;core.loader.setStartProgressVal(c*(100/d.length));if(c==d.length){if(core.isset(a)){a()}}})}};loader.prototype.loadImage=function(d,a){try{var f=d;if(f.indexOf(".")<0){f=f+".png"}var c=new Image();c.src="project/images/"+f+"?v="+main.version;if(c.complete){a(d,c);return}c.onload=function(){a(d,c)}}catch(b){console.log(b)}};loader.prototype.loadAnimates=function(){core.animates.forEach(function(a){core.http("GET","project/animates/"+a+".animate",null,function(b){try{b=JSON.parse(b);var c={};c.ratio=b.ratio;c.images=[];c.images_rev=[];b.bitmaps.forEach(function(h){if(!core.isset(h)||h==""){c.images.push(null)}else{try{var g=new Image();g.src=h;c.images.push(g)}catch(f){c.images.push(null)}}});c.frame=b.frame_max;c.frames=[];b.frames.forEach(function(g){var f=[];g.forEach(function(h){f.push({index:h[0],x:h[1],y:h[2],zoom:h[3],opacity:h[4],mirror:h[5]||0,angle:h[6]||0,})});c.frames.push(f)});core.material.animates[a]=c}catch(d){console.log(d);core.material.animates[a]=null}},function(b){console.log(b);core.material.animates[a]=null},"text/plain; charset=x-user-defined")})};loader.prototype.loadMusic=function(){core.bgms.forEach(function(b){if(/^.*\.mid$/i.test(b)){if(core.musicStatus.audioContext!=null){core.material.bgms[b]="loading";core.http("GET","project/sounds/"+b,null,function(c){try{var f=[];var g=c.length;for(var i=0;i<g;i++){f[i]=String.fromCharCode(c.charCodeAt(i)&255)}var h=core.material.bgms[b]=="starting";core.material.bgms[b]=AudioPlayer(core.musicStatus.audioContext,Replayer(MidiFile(f.join("")),Synth(44100)),true);if(h){core.playBgm(b)}}catch(d){console.log(d);core.material.bgms[b]=null}},function(c){console.log(c);core.material.bgms[b]=null},"text/plain; charset=x-user-defined")}else{core.material.bgms[b]=null}}else{var a=new Audio();a.preload="none";if(main.bgmRemote){a.src=main.bgmRemoteRoot+core.firstData.name+"/"+b}else{a.src="project/sounds/"+b}a.loop="loop";core.material.bgms[b]=a}});core.sounds.forEach(function(b){if(core.musicStatus.audioContext!=null){core.http("GET","project/sounds/"+b,null,function(c){try{core.musicStatus.audioContext.decodeAudioData(c,function(f){core.material.sounds[b]=f},function(f){console.log(f);core.material.sounds[b]=null})}catch(d){console.log(d);core.material.sounds[b]=null}},function(){console.log(e);core.material.sounds[b]=null},null,"arraybuffer")}else{var a=new Audio();a.src="project/sounds/"+b;core.material.sounds[b]=a}});if(core.musicStatus.startDirectly&&core.bgms.length>0){core.playBgm(core.bgms[0])}}; |