laya.xmmini.js 49 KB

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