laya.bdmini.js 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498
  1. window=window||global;if(!window.layalib){window.layalib=function(f,i){(window._layalibs || (window._layalibs=[])).push({f:f,i:i});}}
  2. window.layalib(function(window,document,Laya){
  3. var __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;
  4. var Browser=laya.utils.Browser,Event=laya.events.Event,EventDispatcher=laya.events.EventDispatcher;
  5. var HTMLImage=laya.resource.HTMLImage,Handler=laya.utils.Handler,Input=laya.display.Input,Loader=laya.net.Loader;
  6. var LocalStorage=laya.net.LocalStorage,Matrix=laya.maths.Matrix,Render=laya.renders.Render,RunDriver=laya.utils.RunDriver;
  7. var SoundChannel=laya.media.SoundChannel,SoundManager=laya.media.SoundManager,URL=laya.net.URL,Utils=laya.utils.Utils;
  8. /**@private **/
  9. //class laya.bd.mini.MiniLocalStorage
  10. var MiniLocalStorage$1=(function(){
  11. function MiniLocalStorage(){}
  12. __class(MiniLocalStorage,'laya.bd.mini.MiniLocalStorage',null,'MiniLocalStorage$1');
  13. MiniLocalStorage.__init__=function(){
  14. MiniLocalStorage.items=MiniLocalStorage;
  15. }
  16. MiniLocalStorage.setItem=function(key,value){
  17. BMiniAdapter.window.swan.setStorageSync(key,value);
  18. }
  19. MiniLocalStorage.getItem=function(key){
  20. return BMiniAdapter.window.swan.getStorageSync(key);
  21. }
  22. MiniLocalStorage.setJSON=function(key,value){
  23. MiniLocalStorage.setItem(key,value);
  24. }
  25. MiniLocalStorage.getJSON=function(key){
  26. return MiniLocalStorage.getItem(key);
  27. }
  28. MiniLocalStorage.removeItem=function(key){
  29. BMiniAdapter.window.swan.removeStorageSync(key);
  30. }
  31. MiniLocalStorage.clear=function(){
  32. BMiniAdapter.window.swan.clearStorageSync();
  33. }
  34. MiniLocalStorage.getStorageInfoSync=function(){
  35. try {
  36. var res=BMiniAdapter.window.swan.getStorageInfoSync();
  37. console.log(res.keys)
  38. console.log(res.currentSize)
  39. console.log(res.limitSize)
  40. return res;
  41. }catch (e){}
  42. return null;
  43. }
  44. MiniLocalStorage.support=true;
  45. MiniLocalStorage.items=null;
  46. return MiniLocalStorage;
  47. })()
  48. //class laya.bd.mini.BMiniAdapter
  49. var BMiniAdapter=(function(){
  50. function BMiniAdapter(){}
  51. __class(BMiniAdapter,'laya.bd.mini.BMiniAdapter');
  52. BMiniAdapter.getJson=function(data){
  53. return JSON.parse(data);
  54. }
  55. BMiniAdapter.enable=function(){
  56. BMiniAdapter.init();
  57. }
  58. BMiniAdapter.init=function(isPosMsg,isSon){
  59. (isPosMsg===void 0)&& (isPosMsg=false);
  60. (isSon===void 0)&& (isSon=false);
  61. if (BMiniAdapter._inited)return;
  62. BMiniAdapter._inited=true;
  63. BMiniAdapter.window=/*__JS__ */window;
  64. if(BMiniAdapter.window.navigator.userAgent.indexOf('SwanGame')<0)return;
  65. BMiniAdapter.isZiYu=isSon;
  66. BMiniAdapter.isPosMsgYu=isPosMsg;
  67. BMiniAdapter.EnvConfig={};
  68. if(!BMiniAdapter.isZiYu){
  69. MiniFileMgr$1.setNativeFileDir("/layaairGame");
  70. MiniFileMgr$1.existDir(MiniFileMgr$1.fileNativeDir,Handler.create(BMiniAdapter,BMiniAdapter.onMkdirCallBack));
  71. }
  72. BMiniAdapter.systemInfo=laya.bd.mini.BMiniAdapter.window.swan.getSystemInfoSync();
  73. BMiniAdapter.window.focus=function (){
  74. };
  75. Laya['_getUrlPath']=function (){
  76. return "";
  77. };
  78. BMiniAdapter.window.logtime=function (str){
  79. };
  80. BMiniAdapter.window.alertTimeLog=function (str){
  81. };
  82. BMiniAdapter.window.resetShareInfo=function (){
  83. };
  84. BMiniAdapter.window.CanvasRenderingContext2D=function (){
  85. };
  86. BMiniAdapter.window.CanvasRenderingContext2D.prototype=laya.bd.mini.BMiniAdapter.window.swan.createCanvas().getContext('2d').__proto__;
  87. BMiniAdapter.window.document.body.appendChild=function (){
  88. };
  89. BMiniAdapter.EnvConfig.pixelRatioInt=0;
  90. Browser["_pixelRatio"]=BMiniAdapter.pixelRatio();
  91. BMiniAdapter._preCreateElement=Browser.createElement;
  92. Browser["createElement"]=BMiniAdapter.createElement;
  93. RunDriver.createShaderCondition=BMiniAdapter.createShaderCondition;
  94. Utils['parseXMLFromString']=BMiniAdapter.parseXMLFromString;
  95. Input['_createInputElement']=MiniInput$1['_createInputElement'];
  96. BMiniAdapter.EnvConfig.load=Loader.prototype.load;
  97. Loader.prototype.load=MiniLoader$1.prototype.load;
  98. Loader.prototype._loadImage=MiniImage$1.prototype._loadImage;
  99. MiniLocalStorage$1.__init__();
  100. LocalStorage._baseClass=MiniLocalStorage$1;
  101. }
  102. BMiniAdapter.getUrlEncode=function(url,type){
  103. if(type=="arraybuffer")
  104. return "";
  105. return "utf8";
  106. }
  107. BMiniAdapter.downLoadFile=function(fileUrl,fileType,callBack,encoding){
  108. (fileType===void 0)&& (fileType="");
  109. (encoding===void 0)&& (encoding="utf8");
  110. var fileObj=MiniFileMgr$1.getFileInfo(fileUrl);
  111. if(!fileObj)
  112. MiniFileMgr$1.downLoadFile(fileUrl,fileType,callBack,encoding);
  113. else{
  114. callBack !=null && callBack.runWith([0]);
  115. }
  116. }
  117. BMiniAdapter.remove=function(fileUrl,callBack){
  118. MiniFileMgr$1.deleteFile("",fileUrl,callBack,"",0);
  119. }
  120. BMiniAdapter.removeAll=function(){
  121. MiniFileMgr$1.deleteAll();
  122. }
  123. BMiniAdapter.hasNativeFile=function(fileUrl){
  124. return MiniFileMgr$1.isLocalNativeFile(fileUrl);
  125. }
  126. BMiniAdapter.getFileInfo=function(fileUrl){
  127. return MiniFileMgr$1.getFileInfo(fileUrl);
  128. }
  129. BMiniAdapter.getFileList=function(){
  130. return MiniFileMgr$1.filesListObj;
  131. }
  132. BMiniAdapter.exitMiniProgram=function(){
  133. laya.bd.mini.BMiniAdapter.window.swan.exitMiniProgram();
  134. }
  135. BMiniAdapter.onMkdirCallBack=function(errorCode,data){
  136. if (!errorCode)
  137. MiniFileMgr$1.filesListObj=JSON.parse(data.data);
  138. }
  139. BMiniAdapter.pixelRatio=function(){
  140. if (!BMiniAdapter.EnvConfig.pixelRatioInt){
  141. try {
  142. BMiniAdapter.EnvConfig.pixelRatioInt=BMiniAdapter.systemInfo.pixelRatio;
  143. return BMiniAdapter.systemInfo.pixelRatio;
  144. }catch (error){}
  145. }
  146. return BMiniAdapter.EnvConfig.pixelRatioInt;
  147. }
  148. BMiniAdapter.createElement=function(type){
  149. if (type=="canvas"){
  150. var _source;
  151. if (BMiniAdapter.idx==1){
  152. if(BMiniAdapter.isZiYu){
  153. _source=/*__JS__ */sharedCanvas;
  154. _source.style={};
  155. }else{
  156. _source=/*__JS__ */window.canvas;
  157. }
  158. }else {
  159. _source=laya.bd.mini.BMiniAdapter.window.swan.createCanvas();
  160. }
  161. BMiniAdapter.idx++;
  162. return _source;
  163. }else if (type=="textarea" || type=="input"){
  164. return BMiniAdapter.onCreateInput(type);
  165. }else if (type=="div"){
  166. var node=BMiniAdapter._preCreateElement(type);
  167. node.contains=function (value){
  168. return null
  169. };
  170. node.removeChild=function (value){
  171. };
  172. return node;
  173. }else {
  174. return BMiniAdapter._preCreateElement(type);
  175. }
  176. }
  177. BMiniAdapter.onCreateInput=function(type){
  178. var node=BMiniAdapter._preCreateElement(type);
  179. node.focus=MiniInput$1.wxinputFocus;
  180. node.blur=MiniInput$1.wxinputblur;
  181. node.style={};
  182. node.value=0;
  183. node.parentElement={};
  184. node.placeholder={};
  185. node.type={};
  186. node.setColor=function (value){
  187. };
  188. node.setType=function (value){
  189. };
  190. node.setFontFace=function (value){
  191. };
  192. node.addEventListener=function (value){
  193. };
  194. node.contains=function (value){
  195. return null
  196. };
  197. node.removeChild=function (value){
  198. };
  199. return node;
  200. }
  201. BMiniAdapter.createShaderCondition=function(conditionScript){
  202. var _$this=this;
  203. var func=function (){
  204. var abc=conditionScript;
  205. return _$this[conditionScript.replace("this.","")];
  206. }
  207. return func;
  208. }
  209. BMiniAdapter.EnvConfig=null;
  210. BMiniAdapter.window=null;
  211. BMiniAdapter._preCreateElement=null;
  212. BMiniAdapter._inited=false;
  213. BMiniAdapter.systemInfo=null;
  214. BMiniAdapter.isZiYu=false;
  215. BMiniAdapter.isPosMsgYu=false;
  216. BMiniAdapter.autoCacheFile=true;
  217. BMiniAdapter.minClearSize=(5 *1024 *1024);
  218. BMiniAdapter.subNativeFiles=null;
  219. BMiniAdapter.subNativeheads=[];
  220. BMiniAdapter.subMaps=[];
  221. BMiniAdapter.AutoCacheDownFile=false;
  222. BMiniAdapter.parseXMLFromString=function(value){
  223. var rst;
  224. var Parser;
  225. value=value.replace(/>\s+</g,'><');
  226. try {
  227. /*__JS__ */rst=(new window.Parser.DOMParser()).parseFromString(value,'text/xml');
  228. }catch (error){
  229. throw "需要引入xml解析库文件";
  230. }
  231. return rst;
  232. }
  233. BMiniAdapter.idx=1;
  234. __static(BMiniAdapter,
  235. ['nativefiles',function(){return this.nativefiles=["layaNativeDir","wxlocal"];}
  236. ]);
  237. return BMiniAdapter;
  238. })()
  239. /**@private **/
  240. //class laya.bd.mini.MiniLocation
  241. var MiniLocation$1=(function(){
  242. function MiniLocation(){}
  243. __class(MiniLocation,'laya.bd.mini.MiniLocation',null,'MiniLocation$1');
  244. MiniLocation.__init__=function(){
  245. BMiniAdapter.window.navigator.geolocation.getCurrentPosition=MiniLocation.getCurrentPosition;
  246. BMiniAdapter.window.navigator.geolocation.watchPosition=MiniLocation.watchPosition;
  247. BMiniAdapter.window.navigator.geolocation.clearWatch=MiniLocation.clearWatch;
  248. }
  249. MiniLocation.getCurrentPosition=function(success,error,options){
  250. var paramO;
  251. paramO={};
  252. paramO.success=getSuccess;
  253. paramO.fail=error;
  254. BMiniAdapter.window.swan.getLocation(paramO);
  255. function getSuccess (res){
  256. if (success !=null){
  257. success(res);
  258. }
  259. }
  260. }
  261. MiniLocation.watchPosition=function(success,error,options){
  262. MiniLocation._curID++;
  263. var curWatchO;
  264. curWatchO={};
  265. curWatchO.success=success;
  266. curWatchO.error=error;
  267. MiniLocation._watchDic[MiniLocation._curID]=curWatchO;
  268. Laya.systemTimer.loop(1000,null,MiniLocation._myLoop);
  269. return MiniLocation._curID;
  270. }
  271. MiniLocation.clearWatch=function(id){
  272. delete MiniLocation._watchDic[id];
  273. if (!MiniLocation._hasWatch()){
  274. Laya.systemTimer.clear(null,MiniLocation._myLoop);
  275. }
  276. }
  277. MiniLocation._hasWatch=function(){
  278. var key;
  279. for (key in MiniLocation._watchDic){
  280. if (MiniLocation._watchDic[key])return true;
  281. }
  282. return false;
  283. }
  284. MiniLocation._myLoop=function(){
  285. MiniLocation.getCurrentPosition(MiniLocation._mySuccess,MiniLocation._myError);
  286. }
  287. MiniLocation._mySuccess=function(res){
  288. var rst={};
  289. rst.coords=res;
  290. rst.timestamp=Browser.now();
  291. var key;
  292. for (key in MiniLocation._watchDic){
  293. if (MiniLocation._watchDic[key].success){
  294. MiniLocation._watchDic[key].success(rst);
  295. }
  296. }
  297. }
  298. MiniLocation._myError=function(res){
  299. var key;
  300. for (key in MiniLocation._watchDic){
  301. if (MiniLocation._watchDic[key].error){
  302. MiniLocation._watchDic[key].error(res);
  303. }
  304. }
  305. }
  306. MiniLocation._watchDic={};
  307. MiniLocation._curID=0;
  308. return MiniLocation;
  309. })()
  310. /**@private **/
  311. //class laya.bd.mini.MiniImage
  312. var MiniImage$1=(function(){
  313. function MiniImage(){}
  314. __class(MiniImage,'laya.bd.mini.MiniImage',null,'MiniImage$1');
  315. var __proto=MiniImage.prototype;
  316. /**@private **/
  317. __proto._loadImage=function(url){
  318. var thisLoader=this;
  319. if (BMiniAdapter.isZiYu){
  320. MiniImage.onCreateImage(url,thisLoader,true);
  321. return;
  322. };
  323. var isTransformUrl=false;
  324. if (!MiniFileMgr$1.isLocalNativeFile(url)){
  325. isTransformUrl=true;
  326. url=URL.formatURL(url);
  327. }else{
  328. if (url.indexOf("http://usr/")==-1&&(url.indexOf("http://")!=-1 || url.indexOf("https://")!=-1)){
  329. if(MiniFileMgr$1.loadPath !=""){
  330. url=url.split(MiniFileMgr$1.loadPath)[1];
  331. }else{
  332. var tempStr=URL.rootPath !="" ? URL.rootPath :URL.basePath;
  333. var tempUrl=url;
  334. if(tempStr !="")
  335. url=url.split(tempStr)[1];
  336. if(!url){
  337. url=tempUrl;
  338. }
  339. }
  340. }
  341. if (BMiniAdapter.subNativeFiles && BMiniAdapter.subNativeheads.length==0){
  342. for (var key in BMiniAdapter.subNativeFiles){
  343. var tempArr=BMiniAdapter.subNativeFiles[key];
  344. BMiniAdapter.subNativeheads=BMiniAdapter.subNativeheads.concat(tempArr);
  345. for (var aa=0;aa < tempArr.length;aa++){
  346. BMiniAdapter.subMaps[tempArr[aa]]=key+"/"+tempArr[aa];
  347. }
  348. }
  349. }
  350. if(BMiniAdapter.subNativeFiles && url.indexOf("/")!=-1){
  351. debugger;
  352. var curfileHead=url.split("/")[0]+"/";
  353. if(curfileHead && BMiniAdapter.subNativeheads.indexOf(curfileHead)!=-1){
  354. var newfileHead=BMiniAdapter.subMaps[curfileHead];
  355. url=url.replace(curfileHead,newfileHead);
  356. }
  357. }
  358. }
  359. if (!MiniFileMgr$1.getFileInfo(url)){
  360. if (url.indexOf('http://usr/')==-1&&(url.indexOf("http://")!=-1 || url.indexOf("https://")!=-1)){
  361. if(BMiniAdapter.isZiYu){
  362. MiniImage.onCreateImage(url,thisLoader,true);
  363. }else{
  364. MiniFileMgr$1.downOtherFiles(url,new Handler(MiniImage,MiniImage.onDownImgCallBack,[url,thisLoader]),url);
  365. }
  366. }
  367. else
  368. MiniImage.onCreateImage(url,thisLoader,true);
  369. }else {
  370. MiniImage.onCreateImage(url,thisLoader,!isTransformUrl);
  371. }
  372. }
  373. MiniImage.onDownImgCallBack=function(sourceUrl,thisLoader,errorCode,tempFilePath){
  374. (tempFilePath===void 0)&& (tempFilePath="");
  375. if (!errorCode)
  376. MiniImage.onCreateImage(sourceUrl,thisLoader,false,tempFilePath);
  377. else {
  378. thisLoader.onError(null);
  379. }
  380. }
  381. MiniImage.onCreateImage=function(sourceUrl,thisLoader,isLocal,tempFilePath){
  382. (isLocal===void 0)&& (isLocal=false);
  383. (tempFilePath===void 0)&& (tempFilePath="");
  384. var fileNativeUrl;
  385. if(BMiniAdapter.autoCacheFile){
  386. if (!isLocal){
  387. if(tempFilePath !=""){
  388. fileNativeUrl=tempFilePath;
  389. }else{
  390. var fileObj=MiniFileMgr$1.getFileInfo(sourceUrl);
  391. var fileMd5Name=fileObj.md5;
  392. fileNativeUrl=MiniFileMgr$1.getFileNativePath(fileMd5Name);
  393. }
  394. }else
  395. fileNativeUrl=sourceUrl;
  396. }else{
  397. if(!isLocal)
  398. fileNativeUrl=tempFilePath;
  399. else
  400. fileNativeUrl=sourceUrl;
  401. }
  402. if (thisLoader._imgCache==null)
  403. thisLoader._imgCache={};
  404. var image;
  405. function clear (){
  406. var img=thisLoader._imgCache[fileNativeUrl];
  407. if (img){
  408. img.onload=null;
  409. img.onerror=null;
  410. delete thisLoader._imgCache[fileNativeUrl];
  411. }
  412. };
  413. var onerror=function (){
  414. clear();
  415. thisLoader.event(/*laya.events.Event.ERROR*/"error","Load image failed");
  416. }
  417. if (thisLoader._type=="nativeimage"){
  418. var onload=function (){
  419. clear();
  420. thisLoader.onLoaded(image);
  421. };
  422. image=new Browser.window.Image();
  423. image.crossOrigin="";
  424. image.onload=onload;
  425. image.onerror=onerror;
  426. image.src=fileNativeUrl;
  427. thisLoader._imgCache[fileNativeUrl]=image;
  428. }else {
  429. var imageSource=new Browser.window.Image();
  430. onload=function (){
  431. image=HTMLImage.create(imageSource.width,imageSource.height);
  432. image.loadImageSource(imageSource,true);
  433. image._setCreateURL(fileNativeUrl);
  434. clear();
  435. thisLoader.onLoaded(image);
  436. };
  437. imageSource.crossOrigin="";
  438. imageSource.onload=onload;
  439. imageSource.onerror=onerror;
  440. imageSource.src=fileNativeUrl;
  441. thisLoader._imgCache[fileNativeUrl]=imageSource;
  442. }
  443. }
  444. return MiniImage;
  445. })()
  446. /**@private **/
  447. //class laya.bd.mini.MiniInput
  448. var MiniInput$1=(function(){
  449. function MiniInput(){}
  450. __class(MiniInput,'laya.bd.mini.MiniInput',null,'MiniInput$1');
  451. MiniInput._createInputElement=function(){
  452. Input['_initInput'](Input['area']=Browser.createElement("textarea"));
  453. Input['_initInput'](Input['input']=Browser.createElement("input"));
  454. Input['inputContainer']=Browser.createElement("div");
  455. Input['inputContainer'].style.position="absolute";
  456. Input['inputContainer'].style.zIndex=1E5;
  457. Browser.container.appendChild(Input['inputContainer']);
  458. Input['inputContainer'].setPos=function (x,y){Input['inputContainer'].style.left=x+'px';Input['inputContainer'].style.top=y+'px';};
  459. Laya.stage.on("resize",null,MiniInput._onStageResize);
  460. BMiniAdapter.window.swan.onWindowResize && BMiniAdapter.window.swan.onWindowResize(function(res){
  461. /*__JS__ */window.dispatchEvent && /*__JS__ */window.dispatchEvent("resize");
  462. });
  463. SoundManager._soundClass=MiniSound$1;
  464. SoundManager._musicClass=MiniSound$1;
  465. var model=BMiniAdapter.systemInfo.model;
  466. var system=BMiniAdapter.systemInfo.system;
  467. if(model.indexOf("iPhone")!=-1){
  468. Browser.onIPhone=true;
  469. Browser.onIOS=true;
  470. Browser.onIPad=true;
  471. Browser.onAndroid=false;
  472. }
  473. if(system.indexOf("Android")!=-1 || system.indexOf("Adr")!=-1){
  474. Browser.onAndroid=true;
  475. Browser.onIPhone=false;
  476. Browser.onIOS=false;
  477. Browser.onIPad=false;
  478. }
  479. }
  480. MiniInput._onStageResize=function(){
  481. var ts=Laya.stage._canvasTransform.identity();
  482. ts.scale((Browser.width / Render.canvas.width / Browser.pixelRatio),Browser.height / Render.canvas.height / Browser.pixelRatio);
  483. }
  484. MiniInput.wxinputFocus=function(e){
  485. var _inputTarget=Input['inputElement'].target;
  486. if (_inputTarget && !_inputTarget.editable){
  487. return;
  488. }
  489. BMiniAdapter.window.swan.offKeyboardConfirm();
  490. BMiniAdapter.window.swan.offKeyboardInput();
  491. BMiniAdapter.window.swan.showKeyboard({defaultValue:_inputTarget.text,maxLength:_inputTarget.maxChars,multiple:_inputTarget.multiline,confirmHold:true,confirmType:'done',success:function (res){
  492. },fail:function (res){
  493. }});
  494. BMiniAdapter.window.swan.onKeyboardConfirm(function(res){
  495. var str=res ? res.value :"";
  496. if (_inputTarget._restrictPattern){
  497. str=str.replace(/\u2006|\x27/g,"");
  498. if (_inputTarget._restrictPattern.test(str)){
  499. str=str.replace(_inputTarget._restrictPattern,"");
  500. }
  501. }
  502. _inputTarget.text=str;
  503. _inputTarget.event(/*laya.events.Event.INPUT*/"input");
  504. laya.bd.mini.MiniInput.inputEnter();
  505. })
  506. BMiniAdapter.window.swan.onKeyboardInput(function(res){
  507. var str=res ? res.value :"";
  508. if (!_inputTarget.multiline){
  509. if (str.indexOf("\n")!=-1){
  510. laya.bd.mini.MiniInput.inputEnter();
  511. return;
  512. }
  513. }
  514. if (_inputTarget._restrictPattern){
  515. str=str.replace(/\u2006|\x27/g,"");
  516. if (_inputTarget._restrictPattern.test(str)){
  517. str=str.replace(_inputTarget._restrictPattern,"");
  518. }
  519. }
  520. _inputTarget.text=str;
  521. _inputTarget.event(/*laya.events.Event.INPUT*/"input");
  522. });
  523. }
  524. MiniInput.inputEnter=function(){
  525. Input['inputElement'].target.focus=false;
  526. }
  527. MiniInput.wxinputblur=function(){
  528. MiniInput.hideKeyboard();
  529. }
  530. MiniInput.hideKeyboard=function(){
  531. BMiniAdapter.window.swan.offKeyboardConfirm();
  532. BMiniAdapter.window.swan.offKeyboardInput();
  533. BMiniAdapter.window.swan.hideKeyboard({success:function (res){
  534. console.log('隐藏键盘')
  535. },fail:function (res){
  536. console.log("隐藏键盘出错:"+(res ? res.errMsg :""));
  537. }});
  538. }
  539. return MiniInput;
  540. })()
  541. /**@private **/
  542. //class laya.bd.mini.MiniFileMgr
  543. var MiniFileMgr$1=(function(){
  544. function MiniFileMgr(){}
  545. __class(MiniFileMgr,'laya.bd.mini.MiniFileMgr',null,'MiniFileMgr$1');
  546. MiniFileMgr.isLocalNativeFile=function(url){
  547. for(var i=0,sz=BMiniAdapter.nativefiles.length;i<sz;i++){
  548. if(url.indexOf(BMiniAdapter.nativefiles[i])!=-1)
  549. return true;
  550. }
  551. return false;
  552. }
  553. MiniFileMgr.getFileInfo=function(fileUrl){
  554. var fileNativePath=fileUrl;
  555. var fileObj=MiniFileMgr.filesListObj[fileNativePath];
  556. if (fileObj==null)
  557. return null;
  558. else
  559. return fileObj;
  560. return null;
  561. }
  562. MiniFileMgr.read=function(filePath,encoding,callBack,readyUrl,isSaveFile,fileType){
  563. (encoding===void 0)&& (encoding="ascill");
  564. (readyUrl===void 0)&& (readyUrl="");
  565. (isSaveFile===void 0)&& (isSaveFile=false);
  566. (fileType===void 0)&& (fileType="");
  567. var fileUrl;
  568. if(readyUrl!="" && (readyUrl.indexOf("http://")!=-1 || readyUrl.indexOf("https://")!=-1)){
  569. fileUrl=MiniFileMgr.getFileNativePath(filePath)
  570. }else{
  571. fileUrl=filePath;
  572. }
  573. fileUrl=URL.getAdptedFilePath(fileUrl);
  574. MiniFileMgr.fs.readFile({filePath:fileUrl,encoding:encoding,success:function (data){
  575. callBack !=null && callBack.runWith([0,data]);
  576. },fail:function (data){
  577. if (data && readyUrl !="")
  578. MiniFileMgr.downFiles(readyUrl,encoding,callBack,readyUrl,isSaveFile,fileType);
  579. else
  580. callBack !=null && callBack.runWith([1]);
  581. }});
  582. }
  583. MiniFileMgr.downFiles=function(fileUrl,encoding,callBack,readyUrl,isSaveFile,fileType,isAutoClear){
  584. (encoding===void 0)&& (encoding="ascii");
  585. (readyUrl===void 0)&& (readyUrl="");
  586. (isSaveFile===void 0)&& (isSaveFile=false);
  587. (fileType===void 0)&& (fileType="");
  588. (isAutoClear===void 0)&& (isAutoClear=true);
  589. var downloadTask=MiniFileMgr.wxdown({url:fileUrl,success:function (data){
  590. if (data.statusCode===200)
  591. MiniFileMgr.readFile(data.tempFilePath,encoding,callBack,readyUrl,isSaveFile,fileType,isAutoClear);
  592. else{
  593. if(data.statusCode===403){
  594. callBack !=null && callBack.runWith([0,fileUrl]);
  595. }else{
  596. callBack !=null && callBack.runWith([1,data]);
  597. }
  598. }
  599. },fail:function (data){
  600. callBack !=null && callBack.runWith([1,data]);
  601. }});
  602. downloadTask.onProgressUpdate(function(data){
  603. callBack !=null && callBack.runWith([2,data.progress]);
  604. });
  605. }
  606. MiniFileMgr.readFile=function(filePath,encoding,callBack,readyUrl,isSaveFile,fileType,isAutoClear){
  607. (encoding===void 0)&& (encoding="ascill");
  608. (readyUrl===void 0)&& (readyUrl="");
  609. (isSaveFile===void 0)&& (isSaveFile=false);
  610. (fileType===void 0)&& (fileType="");
  611. (isAutoClear===void 0)&& (isAutoClear=true);
  612. filePath=URL.getAdptedFilePath(filePath);
  613. MiniFileMgr.fs.readFile({filePath:filePath,encoding:encoding,success:function (data){
  614. if (filePath.indexOf("http://")!=-1 || filePath.indexOf("https://")!=-1){
  615. if(BMiniAdapter.autoCacheFile || isSaveFile){
  616. MiniFileMgr.copyFile(filePath,readyUrl,callBack,encoding,isAutoClear);
  617. }
  618. }
  619. else
  620. callBack !=null && callBack.runWith([0,data]);
  621. },fail:function (data){
  622. if (data)
  623. callBack !=null && callBack.runWith([1,data]);
  624. }});
  625. }
  626. MiniFileMgr.downOtherFiles=function(fileUrl,callBack,readyUrl,isSaveFile,isAutoClear){
  627. (readyUrl===void 0)&& (readyUrl="");
  628. (isSaveFile===void 0)&& (isSaveFile=false);
  629. (isAutoClear===void 0)&& (isAutoClear=true);
  630. MiniFileMgr.wxdown({url:fileUrl,success:function (data){
  631. if (data.statusCode===200){
  632. if((BMiniAdapter.autoCacheFile || isSaveFile)&& readyUrl.indexOf("wx.qlogo.cn")==-1 && readyUrl.indexOf(".php")==-1)
  633. MiniFileMgr.copyFile(data.tempFilePath,readyUrl,callBack,"",isAutoClear);
  634. else
  635. callBack !=null && callBack.runWith([0,data.tempFilePath]);
  636. }else{
  637. if(data.statusCode===403){
  638. callBack !=null && callBack.runWith([0,fileUrl]);
  639. }else{
  640. callBack !=null && callBack.runWith([1,data]);
  641. }
  642. }
  643. },fail:function (data){
  644. callBack !=null && callBack.runWith([1,data]);
  645. }});
  646. }
  647. MiniFileMgr.downLoadFile=function(fileUrl,fileType,callBack,encoding){
  648. (fileType===void 0)&& (fileType="");
  649. (encoding===void 0)&& (encoding="ascii");
  650. if(/*__JS__ */window.navigator.userAgent.indexOf('MiniGame')<0){
  651. Laya.loader.load(fileUrl,callBack);
  652. }else{
  653. if(fileType==/*laya.net.Loader.IMAGE*/"image" || fileType==/*laya.net.Loader.SOUND*/"sound")
  654. MiniFileMgr.downOtherFiles(fileUrl,callBack,fileUrl,true,false);
  655. else
  656. MiniFileMgr.downFiles(fileUrl,encoding,callBack,fileUrl,true,fileType,false);
  657. }
  658. }
  659. MiniFileMgr.copyFile=function(tempFilePath,readyUrl,callBack,encoding,isAutoClear){
  660. (encoding===void 0)&& (encoding="");
  661. (isAutoClear===void 0)&& (isAutoClear=true);
  662. var temp=tempFilePath.split("/");
  663. var tempFileName=temp[temp.length-1];
  664. var fileurlkey=readyUrl;
  665. var fileObj=MiniFileMgr.getFileInfo(readyUrl);
  666. var saveFilePath=MiniFileMgr.getFileNativePath(tempFileName);
  667. var totalSize=50 *1024 *1024;
  668. var chaSize=4 *1024 *1024;
  669. var fileUseSize=MiniFileMgr.getCacheUseSize();
  670. if (fileObj){
  671. if (fileObj.readyUrl !=readyUrl){
  672. MiniFileMgr.fs.getFileInfo({
  673. filePath:tempFilePath,
  674. success:function (data){
  675. if((isAutoClear && (fileUseSize+chaSize+data.size)>=totalSize)){
  676. if(data.size > BMiniAdapter.minClearSize)
  677. BMiniAdapter.minClearSize=data.size;
  678. MiniFileMgr.onClearCacheRes();
  679. }
  680. MiniFileMgr.deleteFile(tempFileName,readyUrl,callBack,encoding,data.size);
  681. },
  682. fail:function (data){
  683. callBack !=null && callBack.runWith([1,data]);
  684. }
  685. });
  686. }
  687. else
  688. callBack !=null && callBack.runWith([0]);
  689. }else{
  690. MiniFileMgr.fs.getFileInfo({
  691. filePath:tempFilePath,
  692. success:function (data){
  693. if((isAutoClear && (fileUseSize+chaSize+data.size)>=totalSize)){
  694. if(data.size > BMiniAdapter.minClearSize)
  695. BMiniAdapter.minClearSize=data.size;
  696. MiniFileMgr.onClearCacheRes();
  697. }
  698. MiniFileMgr.fs.copyFile({srcPath:tempFilePath,destPath:saveFilePath,success:function (data2){
  699. MiniFileMgr.onSaveFile(readyUrl,tempFileName,true,encoding,callBack,data.size);
  700. },fail:function (data){
  701. callBack !=null && callBack.runWith([1,data]);
  702. }});
  703. },
  704. fail:function (data){
  705. callBack !=null && callBack.runWith([1,data]);
  706. }
  707. });
  708. }
  709. }
  710. MiniFileMgr.onClearCacheRes=function(){
  711. var memSize=BMiniAdapter.minClearSize;
  712. var tempFileListArr=[];
  713. for(var key in MiniFileMgr.filesListObj){
  714. tempFileListArr.push(MiniFileMgr.filesListObj[key]);
  715. }
  716. MiniFileMgr.sortOn(tempFileListArr,"times",16);
  717. var clearSize=0;
  718. for(var i=1,sz=tempFileListArr.length;i<sz;i++){
  719. var fileObj=tempFileListArr[i];
  720. if(clearSize >=memSize)
  721. break ;
  722. clearSize+=fileObj.size;
  723. MiniFileMgr.deleteFile("",fileObj.readyUrl);
  724. }
  725. }
  726. MiniFileMgr.sortOn=function(array,name,options){
  727. (options===void 0)&& (options=0);
  728. if (options==16)return array.sort(function(a,b){return a[name]-b[name];});
  729. if (options==(16 | 2))return array.sort(function(a,b){return b[name]-a[name];});
  730. return array.sort(function(a,b){return a[name]-b[name] });
  731. }
  732. MiniFileMgr.getFileNativePath=function(fileName){
  733. return laya.bd.mini.MiniFileMgr.fileNativeDir+"/"+fileName;
  734. }
  735. MiniFileMgr.deleteFile=function(tempFileName,readyUrl,callBack,encoding,fileSize){
  736. (readyUrl===void 0)&& (readyUrl="");
  737. (encoding===void 0)&& (encoding="");
  738. (fileSize===void 0)&& (fileSize=0);
  739. var fileObj=MiniFileMgr.getFileInfo(readyUrl);
  740. var deleteFileUrl=MiniFileMgr.getFileNativePath(fileObj.md5);
  741. MiniFileMgr.fs.unlink({filePath:deleteFileUrl,success:function (data){
  742. var isAdd=tempFileName !="" ? true :false;
  743. if(tempFileName !=""){
  744. var saveFilePath=MiniFileMgr.getFileNativePath(tempFileName);
  745. MiniFileMgr.fs.copyFile({srcPath:tempFileName,destPath:saveFilePath,success:function (data){
  746. MiniFileMgr.onSaveFile(readyUrl,tempFileName,isAdd,encoding,callBack,data.size);
  747. },fail:function (data){
  748. callBack !=null && callBack.runWith([1,data]);
  749. }});
  750. }else{
  751. MiniFileMgr.onSaveFile(readyUrl,tempFileName,isAdd,encoding,callBack,fileSize);
  752. }
  753. },fail:function (data){
  754. }});
  755. }
  756. MiniFileMgr.deleteAll=function(){
  757. var tempFileListArr=[];
  758. for(var key in MiniFileMgr.filesListObj){
  759. tempFileListArr.push(MiniFileMgr.filesListObj[key]);
  760. }
  761. for(var i=1,sz=tempFileListArr.length;i<sz;i++){
  762. var fileObj=tempFileListArr[i];
  763. MiniFileMgr.deleteFile("",fileObj.readyUrl);
  764. }
  765. }
  766. MiniFileMgr.onSaveFile=function(readyUrl,md5Name,isAdd,encoding,callBack,fileSize){
  767. (isAdd===void 0)&& (isAdd=true);
  768. (encoding===void 0)&& (encoding="");
  769. (fileSize===void 0)&& (fileSize=0);
  770. var fileurlkey=readyUrl;
  771. if(MiniFileMgr.filesListObj['fileUsedSize']==null)
  772. MiniFileMgr.filesListObj['fileUsedSize']=0;
  773. if(isAdd){
  774. var fileNativeName=MiniFileMgr.getFileNativePath(md5Name);
  775. MiniFileMgr.filesListObj[fileurlkey]={md5:md5Name,readyUrl:readyUrl,size:fileSize,times:Browser.now(),encoding:encoding};
  776. MiniFileMgr.filesListObj['fileUsedSize']=parseInt(MiniFileMgr.filesListObj['fileUsedSize'])+fileSize;
  777. MiniFileMgr.writeFilesList(fileurlkey,JSON.stringify(MiniFileMgr.filesListObj),true);
  778. callBack !=null && callBack.runWith([0]);
  779. }else{
  780. if(MiniFileMgr.filesListObj[fileurlkey]){
  781. var deletefileSize=parseInt(MiniFileMgr.filesListObj[fileurlkey].size);
  782. MiniFileMgr.filesListObj['fileUsedSize']=parseInt(MiniFileMgr.filesListObj['fileUsedSize'])-deletefileSize;
  783. delete MiniFileMgr.filesListObj[fileurlkey];
  784. MiniFileMgr.writeFilesList(fileurlkey,JSON.stringify(MiniFileMgr.filesListObj),false);
  785. callBack !=null && callBack.runWith([0]);
  786. }
  787. }
  788. }
  789. MiniFileMgr.writeFilesList=function(fileurlkey,filesListStr,isAdd){
  790. var listFilesPath=MiniFileMgr.fileNativeDir+"/"+MiniFileMgr.fileListName;
  791. MiniFileMgr.fs.writeFile({filePath:listFilesPath,encoding:'utf8',data:filesListStr,success:function (data){
  792. },fail:function (data){
  793. }});
  794. if(!BMiniAdapter.isZiYu &&BMiniAdapter.isPosMsgYu){
  795. BMiniAdapter.window.swan.postMessage({url:fileurlkey,data:MiniFileMgr.filesListObj[fileurlkey],isLoad:"filenative",isAdd:isAdd});
  796. }
  797. }
  798. MiniFileMgr.getCacheUseSize=function(){
  799. if(MiniFileMgr.filesListObj && MiniFileMgr.filesListObj['fileUsedSize'])
  800. return MiniFileMgr.filesListObj['fileUsedSize'];
  801. return 0;
  802. }
  803. MiniFileMgr.existDir=function(dirPath,callBack){
  804. MiniFileMgr.fs.mkdir({dirPath:dirPath,success:function (data){
  805. callBack !=null && callBack.runWith([0,{data:JSON.stringify({})}]);
  806. },fail:function (data){
  807. if (data.errMsg.indexOf("file already exists")!=-1)
  808. MiniFileMgr.readSync(MiniFileMgr.fileListName,"utf8",callBack);
  809. else
  810. callBack !=null && callBack.runWith([1,data]);
  811. }});
  812. }
  813. MiniFileMgr.readSync=function(filePath,encoding,callBack,readyUrl){
  814. (encoding===void 0)&& (encoding="ascill");
  815. (readyUrl===void 0)&& (readyUrl="");
  816. var fileUrl=MiniFileMgr.getFileNativePath(filePath);
  817. var filesListStr
  818. try{
  819. filesListStr=MiniFileMgr.fs.readFileSync(fileUrl,encoding);
  820. callBack !=null && callBack.runWith([0,{data:filesListStr}]);
  821. }
  822. catch(error){
  823. callBack !=null && callBack.runWith([1]);
  824. }
  825. }
  826. MiniFileMgr.setNativeFileDir=function(value){
  827. MiniFileMgr.fileNativeDir=BMiniAdapter.window.swan.env.USER_DATA_PATH+value;
  828. }
  829. MiniFileMgr.filesListObj={};
  830. MiniFileMgr.fileNativeDir=null;
  831. MiniFileMgr.fileListName="layaairfiles.txt";
  832. MiniFileMgr.ziyuFileData={};
  833. MiniFileMgr.ziyuFileTextureData={};
  834. MiniFileMgr.loadPath="";
  835. MiniFileMgr.DESCENDING=2;
  836. MiniFileMgr.NUMERIC=16;
  837. __static(MiniFileMgr,
  838. ['fs',function(){return this.fs=BMiniAdapter.window.swan.getFileSystemManager();},'wxdown',function(){return this.wxdown=BMiniAdapter.window.swan.downloadFile;}
  839. ]);
  840. return MiniFileMgr;
  841. })()
  842. /**@private **/
  843. //class laya.bd.mini.MiniLoader extends laya.events.EventDispatcher
  844. var MiniLoader$1=(function(_super){
  845. function MiniLoader(){
  846. MiniLoader.__super.call(this);
  847. }
  848. __class(MiniLoader,'laya.bd.mini.MiniLoader',_super,'MiniLoader$1');
  849. var __proto=MiniLoader.prototype;
  850. /**
  851. *@private
  852. *@param url
  853. *@param type
  854. *@param cache
  855. *@param group
  856. *@param ignoreCache
  857. */
  858. __proto.load=function(url,type,cache,group,ignoreCache){
  859. (cache===void 0)&& (cache=true);
  860. (ignoreCache===void 0)&& (ignoreCache=false);
  861. var thisLoader=this;
  862. thisLoader._url=url;
  863. if (!url){
  864. thisLoader.onLoaded(null);
  865. return;
  866. }
  867. url=URL.customFormat(url);
  868. if (url.indexOf("data:image")===0)thisLoader._type=type=/*laya.net.Loader.IMAGE*/"image";
  869. else {
  870. thisLoader._type=type || (type=Loader.getTypeFromUrl(thisLoader._url));
  871. }
  872. thisLoader._cache=cache;
  873. thisLoader._data=null;
  874. if (!ignoreCache && Loader.loadedMap[URL.formatURL(url)]){
  875. thisLoader._data=Loader.loadedMap[URL.formatURL(url)];
  876. this.event(/*laya.events.Event.PROGRESS*/"progress",1);
  877. this.event(/*laya.events.Event.COMPLETE*/"complete",thisLoader._data);
  878. return;
  879. }
  880. if (Loader.parserMap[type] !=null){
  881. thisLoader._customParse=true;
  882. if (((Loader.parserMap[type])instanceof laya.utils.Handler ))Loader.parserMap[type].runWith(this);
  883. else Loader.parserMap[type].call(null,this);
  884. return;
  885. };
  886. var contentType;
  887. switch (type){
  888. case /*laya.net.Loader.ATLAS*/"atlas":
  889. case /*laya.net.Loader.PREFAB*/"prefab":
  890. case /*laya.net.Loader.PLF*/"plf":
  891. contentType=/*laya.net.Loader.JSON*/"json";
  892. break ;
  893. case /*laya.net.Loader.FONT*/"font":
  894. contentType=/*laya.net.Loader.XML*/"xml";
  895. break ;
  896. case /*laya.net.Loader.PLFB*/"plfb":
  897. contentType=/*laya.net.Loader.BUFFER*/"arraybuffer";
  898. break ;
  899. default :
  900. contentType=type;
  901. }
  902. if (Loader.preLoadedMap[URL.formatURL(url)]){
  903. thisLoader.onLoaded(Loader.preLoadedMap[URL.formatURL(url)]);
  904. return;
  905. };
  906. var encoding=BMiniAdapter.getUrlEncode(url,contentType);
  907. var urlType=Utils.getFileExtension(url);
  908. if ((MiniLoader._fileTypeArr.indexOf(urlType)!=-1)){
  909. BMiniAdapter.EnvConfig.load.call(this,url,type,cache,group,ignoreCache);
  910. }else {
  911. if(BMiniAdapter.isZiYu && MiniFileMgr$1.ziyuFileData[url]){
  912. var tempData=MiniFileMgr$1.ziyuFileData[url];
  913. thisLoader.onLoaded(tempData);
  914. return;
  915. }
  916. if (!MiniFileMgr$1.getFileInfo(url)){
  917. if (MiniFileMgr$1.isLocalNativeFile(url)){
  918. if (BMiniAdapter.subNativeFiles && BMiniAdapter.subNativeheads.length==0){
  919. for (var key in BMiniAdapter.subNativeFiles){
  920. var tempArr=BMiniAdapter.subNativeFiles[key];
  921. BMiniAdapter.subNativeheads=BMiniAdapter.subNativeheads.concat(tempArr);
  922. for (var aa=0;aa < tempArr.length;aa++){
  923. BMiniAdapter.subMaps[tempArr[aa]]=key+"/"+tempArr[aa];
  924. }
  925. }
  926. }
  927. if(BMiniAdapter.subNativeFiles && url.indexOf("/")!=-1){
  928. debugger;
  929. var curfileHead=url.split("/")[0]+"/";
  930. if(curfileHead && BMiniAdapter.subNativeheads.indexOf(curfileHead)!=-1){
  931. var newfileHead=BMiniAdapter.subMaps[curfileHead];
  932. url=url.replace(curfileHead,newfileHead);
  933. }
  934. };
  935. var tempStr=URL.rootPath !="" ? URL.rootPath :URL.basePath;
  936. var tempUrl=url;
  937. if (tempStr !="")
  938. url=url.split(tempStr)[1];
  939. if (!url){
  940. url=tempUrl;
  941. }
  942. MiniFileMgr$1.read(url,encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]));
  943. return;
  944. };
  945. var tempurl=URL.formatURL(url);
  946. if (tempurl.indexOf("http://usr/")==-1&& (tempurl.indexOf("http://")!=-1 || tempurl.indexOf("https://")!=-1)&& !BMiniAdapter.AutoCacheDownFile){
  947. BMiniAdapter.EnvConfig.load.call(thisLoader,url,type,cache,group,ignoreCache);
  948. }else {
  949. MiniFileMgr$1.readFile(url,encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]),url);
  950. }
  951. }else {
  952. var fileObj=MiniFileMgr$1.getFileInfo(url);
  953. fileObj.encoding=fileObj.encoding==null ? "utf8" :fileObj.encoding;
  954. MiniFileMgr$1.readFile(url,fileObj.encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]),url);
  955. }
  956. }
  957. }
  958. MiniLoader.onReadNativeCallBack=function(encoding,url,type,cache,group,ignoreCache,thisLoader,errorCode,data){
  959. (cache===void 0)&& (cache=true);
  960. (ignoreCache===void 0)&& (ignoreCache=false);
  961. (errorCode===void 0)&& (errorCode=0);
  962. if (!errorCode){
  963. var tempData;
  964. if (type==/*laya.net.Loader.JSON*/"json" || type==/*laya.net.Loader.ATLAS*/"atlas" || type==/*laya.net.Loader.PREFAB*/"prefab" || type==/*laya.net.Loader.PLF*/"plf"){
  965. tempData=BMiniAdapter.getJson(data.data);
  966. }else if (type==/*laya.net.Loader.XML*/"xml"){
  967. tempData=Utils.parseXMLFromString(data.data);
  968. }else {
  969. tempData=data.data;
  970. }
  971. if(!BMiniAdapter.isZiYu &&BMiniAdapter.isPosMsgYu && type !=/*laya.net.Loader.BUFFER*/"arraybuffer"){
  972. BMiniAdapter.window.swan.postMessage({url:url,data:tempData,isLoad:"filedata"});
  973. }
  974. thisLoader.onLoaded(tempData);
  975. }else if (errorCode==1){
  976. BMiniAdapter.EnvConfig.load.call(thisLoader,url,type,cache,group,ignoreCache);
  977. }
  978. }
  979. __static(MiniLoader,
  980. ['_fileTypeArr',function(){return this._fileTypeArr=['png','jpg','bmp','jpeg','gif'];}
  981. ]);
  982. return MiniLoader;
  983. })(EventDispatcher)
  984. /**@private **/
  985. //class laya.bd.mini.MiniSound extends laya.events.EventDispatcher
  986. var MiniSound$1=(function(_super){
  987. function MiniSound(){
  988. /**@private **/
  989. this._sound=null;
  990. /**
  991. *@private
  992. *声音URL
  993. */
  994. this.url=null;
  995. /**
  996. *@private
  997. *是否已加载完成
  998. */
  999. this.loaded=false;
  1000. /**@private **/
  1001. this.readyUrl=null;
  1002. MiniSound.__super.call(this);
  1003. }
  1004. __class(MiniSound,'laya.bd.mini.MiniSound',_super,'MiniSound$1');
  1005. var __proto=MiniSound.prototype;
  1006. /**
  1007. *@private
  1008. *加载声音。
  1009. *@param url 地址。
  1010. *
  1011. */
  1012. __proto.load=function(url){
  1013. url=URL.formatURL(url);
  1014. this.url=url;
  1015. this.readyUrl=url;
  1016. if (MiniSound._audioCache[this.readyUrl]){
  1017. this.event(/*laya.events.Event.COMPLETE*/"complete");
  1018. return;
  1019. }
  1020. if(BMiniAdapter.autoCacheFile&&MiniFileMgr$1.getFileInfo(url)){
  1021. this.onDownLoadCallBack(url,0);
  1022. }else{
  1023. if(!BMiniAdapter.autoCacheFile){
  1024. this.onDownLoadCallBack(url,0);
  1025. }else{
  1026. if (MiniFileMgr$1.isLocalNativeFile(url)){
  1027. var tempStr=URL.rootPath !="" ? URL.rootPath :URL.basePath;
  1028. var tempUrl=url;
  1029. if(tempStr !="")
  1030. url=url.split(tempStr)[1];
  1031. if (!url){
  1032. url=tempUrl;
  1033. }
  1034. this.onDownLoadCallBack(url,0);
  1035. }else{
  1036. if (!MiniFileMgr$1.isLocalNativeFile(url)&& (url.indexOf("http://")==-1 && url.indexOf("https://")==-1)|| (url.indexOf("http://usr/")!=-1)){
  1037. this.onDownLoadCallBack(url,0);
  1038. }else{
  1039. MiniFileMgr$1.downOtherFiles(url,Handler.create(this,this.onDownLoadCallBack,[url]),url);
  1040. }
  1041. }
  1042. }
  1043. }
  1044. }
  1045. /**@private **/
  1046. __proto.onDownLoadCallBack=function(sourceUrl,errorCode){
  1047. if (!errorCode){
  1048. var fileNativeUrl;
  1049. if(BMiniAdapter.autoCacheFile){
  1050. if (MiniFileMgr$1.isLocalNativeFile(sourceUrl)){
  1051. var tempStr=URL.rootPath !="" ? URL.rootPath :URL.basePath;
  1052. var tempUrl=sourceUrl;
  1053. if(tempStr !="" && (sourceUrl.indexOf("http://")!=-1 || sourceUrl.indexOf("https://")!=-1))
  1054. fileNativeUrl=sourceUrl.split(tempStr)[1];
  1055. if(!fileNativeUrl){
  1056. fileNativeUrl=tempUrl;
  1057. }
  1058. }else{
  1059. var fileObj=MiniFileMgr$1.getFileInfo(sourceUrl);
  1060. if(fileObj && fileObj.md5){
  1061. var fileMd5Name=fileObj.md5;
  1062. fileNativeUrl=MiniFileMgr$1.getFileNativePath(fileMd5Name);
  1063. }else{
  1064. fileNativeUrl=sourceUrl;
  1065. }
  1066. }
  1067. this._sound=MiniSound._createSound();
  1068. this._sound.src=this.url=fileNativeUrl;
  1069. }else{
  1070. this._sound=MiniSound._createSound();
  1071. this._sound.src=sourceUrl;
  1072. }
  1073. this._sound.onCanplay(MiniSound.bindToThis(this.onCanPlay,this));
  1074. this._sound.onError(MiniSound.bindToThis(this.onError,this));
  1075. }else{
  1076. this.event(/*laya.events.Event.ERROR*/"error");
  1077. }
  1078. }
  1079. /**@private **/
  1080. __proto.onError=function(error){
  1081. try{
  1082. console.log("-----1---------------minisound-----id:"+MiniSound._id);
  1083. console.log(error);
  1084. }
  1085. catch(error){
  1086. console.log("-----2---------------minisound-----id:"+MiniSound._id);
  1087. console.log(error);
  1088. }
  1089. this.event(/*laya.events.Event.ERROR*/"error");
  1090. this._sound.offError(null);
  1091. }
  1092. /**@private **/
  1093. __proto.onCanPlay=function(){
  1094. this.loaded=true;
  1095. this.event(/*laya.events.Event.COMPLETE*/"complete");
  1096. this._sound.offCanplay(null);
  1097. }
  1098. /**
  1099. *@private
  1100. *播放声音。
  1101. *@param startTime 开始时间,单位秒
  1102. *@param loops 循环次数,0表示一直循环
  1103. *@return 声道 SoundChannel 对象。
  1104. *
  1105. */
  1106. __proto.play=function(startTime,loops){
  1107. (startTime===void 0)&& (startTime=0);
  1108. (loops===void 0)&& (loops=0);
  1109. var tSound;
  1110. if (this.url==SoundManager._bgMusic){
  1111. if (!MiniSound._musicAudio)MiniSound._musicAudio=MiniSound._createSound();
  1112. tSound=MiniSound._musicAudio;
  1113. }else {
  1114. if(MiniSound._audioCache[this.readyUrl]){
  1115. tSound=MiniSound._audioCache[this.readyUrl]._sound;
  1116. }else{
  1117. tSound=MiniSound._createSound();
  1118. }
  1119. }
  1120. if(BMiniAdapter.autoCacheFile&&MiniFileMgr$1.getFileInfo(this.url)){
  1121. var fileNativeUrl;
  1122. var fileObj=MiniFileMgr$1.getFileInfo(this.url);
  1123. var fileMd5Name=fileObj.md5;
  1124. tSound.src=this.url=MiniFileMgr$1.getFileNativePath(fileMd5Name);
  1125. }else{
  1126. tSound.src=this.url;
  1127. }
  1128. if(!tSound)
  1129. return null;
  1130. var channel=new MiniSoundChannel$1(tSound,this);
  1131. channel.url=this.url;
  1132. channel.loops=loops;
  1133. channel.loop=(loops===0 ? true :false);
  1134. channel.startTime=startTime;
  1135. channel.play();
  1136. SoundManager.addChannel(channel);
  1137. return channel;
  1138. }
  1139. /**
  1140. *@private
  1141. *释放声音资源。
  1142. *
  1143. */
  1144. __proto.dispose=function(){
  1145. var ad=MiniSound._audioCache[this.readyUrl];
  1146. if (ad){
  1147. ad.src="";
  1148. if(ad._sound){
  1149. ad._sound.destroy();
  1150. ad._sound=null;
  1151. ad=null;
  1152. }
  1153. delete MiniSound._audioCache[this.readyUrl];
  1154. }
  1155. }
  1156. /**
  1157. *@private
  1158. *获取总时间。
  1159. */
  1160. __getset(0,__proto,'duration',function(){
  1161. return this._sound.duration;
  1162. });
  1163. MiniSound._createSound=function(){
  1164. MiniSound._id++;
  1165. return BMiniAdapter.window.swan.createInnerAudioContext();
  1166. }
  1167. MiniSound.bindToThis=function(fun,scope){
  1168. var rst=fun;
  1169. /*__JS__ */rst=fun.bind(scope);;
  1170. return rst;
  1171. }
  1172. MiniSound._musicAudio=null;
  1173. MiniSound._id=0;
  1174. MiniSound._audioCache={};
  1175. return MiniSound;
  1176. })(EventDispatcher)
  1177. /**@private **/
  1178. //class laya.bd.mini.MiniAccelerator extends laya.events.EventDispatcher
  1179. var MiniAccelerator$1=(function(_super){
  1180. function MiniAccelerator(){
  1181. MiniAccelerator.__super.call(this);
  1182. }
  1183. __class(MiniAccelerator,'laya.bd.mini.MiniAccelerator',_super,'MiniAccelerator$1');
  1184. var __proto=MiniAccelerator.prototype;
  1185. /**
  1186. *侦听加速器运动。
  1187. *@param observer 回调函数接受4个参数,见类说明。
  1188. */
  1189. __proto.on=function(type,caller,listener,args){
  1190. _super.prototype.on.call(this,type,caller,listener,args);
  1191. MiniAccelerator.startListen(this["onDeviceOrientationChange"]);
  1192. return this;
  1193. }
  1194. /**
  1195. *取消侦听加速器。
  1196. *@param handle 侦听加速器所用处理器。
  1197. */
  1198. __proto.off=function(type,caller,listener,onceOnly){
  1199. (onceOnly===void 0)&& (onceOnly=false);
  1200. if (!this.hasListener(type))
  1201. MiniAccelerator.stopListen();
  1202. return _super.prototype.off.call(this,type,caller,listener,onceOnly);
  1203. }
  1204. MiniAccelerator.__init__=function(){
  1205. try{
  1206. var Acc;
  1207. Acc=/*__JS__ */laya.device.motion.Accelerator;
  1208. if (!Acc)return;
  1209. Acc["prototype"]["on"]=MiniAccelerator["prototype"]["on"];
  1210. Acc["prototype"]["off"]=MiniAccelerator["prototype"]["off"];
  1211. }catch (e){
  1212. }
  1213. }
  1214. MiniAccelerator.startListen=function(callBack){
  1215. MiniAccelerator._callBack=callBack;
  1216. if (MiniAccelerator._isListening)return;
  1217. MiniAccelerator._isListening=true;
  1218. try{
  1219. BMiniAdapter.window.swan.onAccelerometerChange(laya.bd.mini.MiniAccelerator.onAccelerometerChange);
  1220. }catch(e){}
  1221. }
  1222. MiniAccelerator.stopListen=function(){
  1223. MiniAccelerator._isListening=false;
  1224. try{
  1225. BMiniAdapter.window.swan.stopAccelerometer({});
  1226. }catch(e){}
  1227. }
  1228. MiniAccelerator.onAccelerometerChange=function(res){
  1229. var e;
  1230. e={};
  1231. e.acceleration=res;
  1232. e.accelerationIncludingGravity=res;
  1233. e.rotationRate={};
  1234. if (MiniAccelerator._callBack !=null){
  1235. MiniAccelerator._callBack(e);
  1236. }
  1237. }
  1238. MiniAccelerator._isListening=false;
  1239. MiniAccelerator._callBack=null;
  1240. return MiniAccelerator;
  1241. })(EventDispatcher)
  1242. /**@private **/
  1243. //class laya.bd.mini.MiniSoundChannel extends laya.media.SoundChannel
  1244. var MiniSoundChannel$1=(function(_super){
  1245. function MiniSoundChannel(audio,miniSound){
  1246. /**@private **/
  1247. this._audio=null;
  1248. /**@private **/
  1249. this._onEnd=null;
  1250. /**@private **/
  1251. this._miniSound=null;
  1252. MiniSoundChannel.__super.call(this);
  1253. this._audio=audio;
  1254. this._miniSound=miniSound;
  1255. this._onEnd=MiniSoundChannel.bindToThis(this.__onEnd,this);
  1256. audio.onEnded(this._onEnd);
  1257. }
  1258. __class(MiniSoundChannel,'laya.bd.mini.MiniSoundChannel',_super,'MiniSoundChannel$1');
  1259. var __proto=MiniSoundChannel.prototype;
  1260. /**@private **/
  1261. __proto.__onEnd=function(){
  1262. MiniSound$1._audioCache[this.url]=this._miniSound;
  1263. if (this.loops==1){
  1264. if (this.completeHandler){
  1265. Laya.systemTimer.once(10,this,this.__runComplete,[this.completeHandler],false);
  1266. this.completeHandler=null;
  1267. }
  1268. this.stop();
  1269. this.event(/*laya.events.Event.COMPLETE*/"complete");
  1270. return;
  1271. }
  1272. if (this.loops > 0){
  1273. this.loops--;
  1274. }
  1275. this.startTime=0;
  1276. this.play();
  1277. }
  1278. /**
  1279. *@private
  1280. *播放
  1281. */
  1282. __proto.play=function(){
  1283. this.isStopped=false;
  1284. SoundManager.addChannel(this);
  1285. this._audio.play();
  1286. }
  1287. /**
  1288. *@private
  1289. *停止播放
  1290. *
  1291. */
  1292. __proto.stop=function(){
  1293. this.isStopped=true;
  1294. SoundManager.removeChannel(this);
  1295. this.completeHandler=null;
  1296. if (!this._audio)
  1297. return;
  1298. this._audio.pause();
  1299. this._audio.offEnded(null);
  1300. this._miniSound.dispose();
  1301. this._audio=null;
  1302. this._miniSound=null;
  1303. this._onEnd=null;
  1304. }
  1305. /**@private **/
  1306. __proto.pause=function(){
  1307. this.isStopped=true;
  1308. this._audio.pause();
  1309. }
  1310. /**@private **/
  1311. __proto.resume=function(){
  1312. if (!this._audio)
  1313. return;
  1314. this.isStopped=false;
  1315. SoundManager.addChannel(this);
  1316. this._audio.play();
  1317. }
  1318. /**@private **/
  1319. /**
  1320. *@private
  1321. *自动播放
  1322. *@param value
  1323. */
  1324. __getset(0,__proto,'autoplay',function(){
  1325. return this._audio.autoplay;
  1326. },function(value){
  1327. this._audio.autoplay=value;
  1328. });
  1329. /**
  1330. *@private
  1331. *当前播放到的位置
  1332. *@return
  1333. *
  1334. */
  1335. __getset(0,__proto,'position',function(){
  1336. if (!this._audio)
  1337. return 0;
  1338. return this._audio.currentTime;
  1339. });
  1340. /**
  1341. *@private
  1342. *获取总时间。
  1343. */
  1344. __getset(0,__proto,'duration',function(){
  1345. if (!this._audio)
  1346. return 0;
  1347. return this._audio.duration;
  1348. });
  1349. /**@private **/
  1350. /**@private **/
  1351. __getset(0,__proto,'loop',function(){
  1352. return this._audio.loop;
  1353. },function(value){
  1354. this._audio.loop=value;
  1355. });
  1356. /**
  1357. *@private
  1358. *设置音量
  1359. *@param v
  1360. *
  1361. */
  1362. /**
  1363. *@private
  1364. *获取音量
  1365. *@return
  1366. */
  1367. __getset(0,__proto,'volume',function(){
  1368. if (!this._audio)return 1;
  1369. return this._audio.volume;
  1370. },function(v){
  1371. if (!this._audio)return;
  1372. this._audio.volume=v;
  1373. });
  1374. MiniSoundChannel.bindToThis=function(fun,scope){
  1375. var rst=fun;
  1376. /*__JS__ */rst=fun.bind(scope);;
  1377. return rst;
  1378. }
  1379. return MiniSoundChannel;
  1380. })(SoundChannel)
  1381. },1001);