index.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="utf-8"><meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,maximum-scale=1.0,user-scalable=no"/>
  6. <title>洛克王国-滚蛋小游戏</title>
  7. <style>
  8. body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,th,td,p,pre,form,input,textarea{padding: 0;margin: 0;}
  9. table{border-collapse: collapse;border-spacing: 0;}
  10. ol,ul{list-style:none;}
  11. img{border:0 none;display:block;}
  12. a{outline: none;outline:none;text-decoration: none;}
  13. a:focus{outline:none;-moz-outline:none;}
  14. em,strong{font-weight: normal;font-style: normal;}
  15. html,body{font: 14px/20px "5B8B4F53";height: 100%;overflow:hidden;background:#000;}
  16. .wrap{background: url(images/inputTxt.png) repeat;background-size:cover;width: 266px;height:307px;position: absolute;left: 50%;top: 50%;margin: -153px 0 0 -128px;}
  17. .w_txt,.w_btn{border: 0 none;background:0 none;width: 230px;height: 40px;position: absolute;top: 168px;left: 50%;margin-left: -115px;text-indent: 8px;}
  18. .w_btn{display: block;top: 225px;height: 60px;}
  19. </style>
  20. <script src="lib/easeljs-0.7.1.min.js"></script>
  21. <script src="lib/tweenjs-0.5.1.min.js"></script>
  22. <script src="lib/preloadjs-0.4.1.min.js"></script>
  23. <script src="lib/movieclip-0.7.1.min.js"></script>
  24. <script src="lib/soundjs-0.5.2.min.js"></script>
  25. <script src="common/common.js"></script>
  26. <script src="src/app.js"></script>
  27. <script src="src/loadingContent.js"></script>
  28. <script src="src/screenContent.js"></script>
  29. <script src="src/parameters.js"></script>
  30. <script src="loading.js"></script>
  31. <script src="main.js"></script>
  32. <body id="bodyMain" onload="initLoading();" style="background-color: #666666">
  33. <div id="inputNamePanel" class="wrap">
  34. <input class="w_txt" id="usernameInput" type="text" maxlength="8" value="请输入!如:坏运气" onfocus="javascript:inputFocus();">
  35. <a class="w_btn" id="wBtn" href="javascript:inputNamePanelStartGame();"></a>
  36. </div>
  37. <div id="loading" class="div-loading">
  38. <canvas id="canvasLoading" width="640" height="1008">
  39. sorry,your browser dosen't support html5
  40. </canvas>
  41. <style>
  42. *{
  43. margin: 0;
  44. padding: 0;
  45. }
  46. #a{
  47. display: block;
  48. background-color: gray;
  49. }
  50. </style>
  51. </div>
  52. <div id="main" class="div-main">
  53. <canvas id="canvas" width="640" height="1008">
  54. sorry,your browser dosen't support html5
  55. </canvas>
  56. <style>
  57. *{
  58. margin: 0;
  59. padding: 0;
  60. }
  61. #a{
  62. display: block;
  63. background-color: gray;
  64. }
  65. </style>
  66. </div>
  67. </body>
  68. <script language="JavaScript" type="text/javascript">
  69. var picArr=[];//记录大图小图的数组;
  70. var canvasLoading,canvas,stage,loadingStage,exportRoot;
  71. var queue;
  72. var scale=1;
  73. var picNum=0;//主文件已加载图片数量;
  74. var picTotal=0;//主文件图片数量总和;
  75. var loadingProgress=0;//loading百分比;
  76. var loadingPanel;//loading对象;
  77. var appPanel;//app主体对象;
  78. var screenPanel;//其他场景对象;
  79. var model=new createjs.MovieClip();//用于发送事件;
  80. var _fps,$time,$count = 0;
  81. init();
  82. function init()
  83. {
  84. inputNamePanelDisplay(false);//隐藏输入名称面板;
  85. // onBridgeInit();//朋友圈;
  86. tcssComplete();//监测代码;
  87. queue=new createjs.LoadQueue(true);
  88. var tmpStr=3;//getQueryString('heartNum');
  89. console.log('heartNum:',tmpStr);
  90. HEARTNUM=Number(tmpStr);
  91. SHARE_URL='http://roco.qq.com/act/a20141208game/index.html?heartNum='+HEARTNUM.toString();//分享地址;
  92. }
  93. //loading canvas加载完成的时候会调用该函数;
  94. function initLoading()
  95. {
  96. canvasLoading=document.getElementById('canvasLoading');
  97. loadingImages = loadingImages||{};
  98. var loader = new createjs.LoadQueue(false);
  99. loader.addEventListener("fileload", loadingHandleFileLoad);
  100. loader.addEventListener("complete", loadingHandleComplete);
  101. loader.loadManifest(loadingLib.properties.manifest);
  102. //initMain();
  103. }
  104. //loading过程中加载图片素材;
  105. function loadingHandleFileLoad(evt) {
  106. if (evt.item.type == "image") { loadingImages[evt.item.id] = evt.result; }
  107. }
  108. //loading素材加载完成;
  109. function loadingHandleComplete() {
  110. exportRoot = new loadingLib.loading();
  111. stage = new createjs.Stage(canvasLoading);
  112. stage.addChild(exportRoot);
  113. stage.update();
  114. createjs.Ticker.setFPS(loadingLib.properties.fps);
  115. createjs.Ticker.addEventListener("tick", stage);
  116. //初始化loading内容;
  117. loadingPanel=new loadingObj();
  118. //return;
  119. if(isLoadBigPic)
  120. {
  121. //加载大图;
  122. queue.setMaxConnections(5);
  123. queue.on('complete',imagesLoadComplete,this);
  124. queue.on('progress',imagesLoadProgress);
  125. var manifestLength=lib.properties.manifest.length;
  126. picArr=[].concat(lib.properties.manifest);
  127. for(var i=0;i<gamedataArr.length;i++)
  128. {
  129. for (prop in gamedataArr[i].animations)
  130. {
  131. //console.log(prop,arr[i].animations[prop]);
  132. for(var j=0;j<manifestLength;j++)
  133. {
  134. if(picArr[j])
  135. {
  136. if(prop==picArr[j].id)
  137. {
  138. picArr.splice(j,1);
  139. j-=1;
  140. }
  141. }
  142. }
  143. }
  144. picArr.push({id:'test'+ i.toString(),src:gamedataArr[i].images[0]});
  145. }
  146. console.log(picArr);
  147. queue.loadManifest(picArr);
  148. }
  149. else
  150. {
  151. //加载小图;
  152. initMain();
  153. }
  154. }
  155. function imagesLoadProgress(e)
  156. {
  157. loadingProgress= e.progress;
  158. }
  159. function imagesLoadComplete(e)
  160. {
  161. initMain();
  162. }
  163. //
  164. function initMain()
  165. {
  166. canvas = document.getElementById('canvas');
  167. images = images||{};
  168. picTotal=lib.properties.manifest.length;
  169. if(isLoadBigPic)
  170. {
  171. //加载大图 解析大图;
  172. for(var i=0;i<gamedataArr.length;i++)
  173. {
  174. setImgItem(gamedataArr[i],lib,images);
  175. }
  176. for(var j=0;j<picArr.length;j++)
  177. {
  178. //console.log(picArr[j]);
  179. for(var k=0;k<picTotal;k++)
  180. {
  181. if(lib.properties.manifest[k].id==picArr[j].id)
  182. {
  183. images[picArr[j].id]=queue.getResult(picArr[j].id);
  184. }
  185. }
  186. }
  187. console.log('pic num:',picArr.length);
  188. initHandleComplete();
  189. }
  190. else
  191. {
  192. //加载小图;
  193. var loader = new createjs.LoadQueue(false);
  194. loader.addEventListener("fileload", initHandleFileLoad);
  195. loader.addEventListener("complete", initHandleComplete);
  196. loader.loadManifest(lib.properties.manifest);
  197. }
  198. }
  199. function initHandleFileLoad(evt) {
  200. picNum+=1;
  201. loadingProgress=picNum/picTotal;
  202. //console.log(loadingProgress);
  203. if (evt.item.type == "image") { images[evt.item.id] = evt.result; }
  204. }
  205. function initHandleComplete() {
  206. console.log('handleCompleteInit');
  207. exportRoot = new lib.main();
  208. stage = new createjs.Stage(canvas);
  209. stage.addChild(exportRoot);
  210. stage.update();
  211. if(isNeedFps)
  212. {
  213. _fps = new createjs.Text("0","900 36px Arial", "#000000");
  214. stage.addChild(_fps);
  215. $time = new Date().getTime();
  216. }
  217. createjs.Ticker.setFPS(lib.properties.fps);
  218. createjs.Ticker.addEventListener("tick", stageFun);
  219. createjs.EventDispatcher.initialize(model);
  220. //new app.init();
  221. screenPanel=new screenObj();
  222. screenPanel.init();
  223. appPanel=new appObj();
  224. appPanel.init();
  225. //test;
  226. //loadingNone();
  227. //gameStart();
  228. }
  229. //由于大图解析成小图需要一个过度时间3-4s,所以需要先用loading遮挡;
  230. function loadingNone()
  231. {
  232. stage.removeChild(loading);
  233. document.getElementById('loading').style.display="none";
  234. }
  235. //帧频显示;
  236. function stageFun()
  237. {
  238. if(isNeedFps)
  239. {
  240. $count++;
  241. var now = new Date().getTime();
  242. if( now-$time>1000 ){
  243. _fps.text = "fps:"+ Math.round( $count*10000 / (now-$time))/10+'/'+lib.properties.fps;
  244. $time = now;
  245. $count = 0;
  246. }
  247. }
  248. stage.update();
  249. }
  250. function gameStart()
  251. {
  252. }
  253. function gameOver()
  254. {
  255. }
  256. function inputNamePanelStartGame()
  257. {
  258. //alert('inputNamePanelStartGame');
  259. username=document.getElementById('usernameInput').value;
  260. if(username=='请输入!如:坏运气'||username=='')
  261. {
  262. username='洛克小蛋蛋';
  263. }
  264. //alert(username);
  265. inputNamePanelDisplay(false);
  266. appPanel.startGame();
  267. }
  268. function inputNamePanelDisplay(arg)
  269. {
  270. if(arg==true)
  271. {
  272. document.getElementById('inputNamePanel').style.display='block';
  273. }
  274. else
  275. {
  276. document.getElementById('inputNamePanel').style.display='none';
  277. }
  278. }
  279. function inputFocus()
  280. {
  281. username=document.getElementById('usernameInput').value;
  282. if(username=='请输入!如:坏运气')
  283. {
  284. //username='默认名称';
  285. document.getElementById('usernameInput').value='';
  286. }
  287. }
  288. var sw=window.screen.width*0.9,sh=(sw*296)/256;
  289. function g(id){return document.getElementById(id);}
  290. if(window.screen.width<=640){
  291. g("inputNamePanel").style.width=sw+"px";
  292. g("inputNamePanel").style.height=sh+"px";
  293. g("inputNamePanel").style.marginLeft=-(sw/2)+"px";
  294. g("inputNamePanel").style.marginTop=-(sh/2)+"px";
  295. g("usernameInput").style.width=sw*0.9+"px";
  296. g("usernameInput").style.marginLeft=-(sw*0.9/2)+"px";
  297. g("usernameInput").style.top=sh*0.555+"px";
  298. g("wBtn").style.top=sh*0.735+"px";
  299. g("wBtn").style.width=sw*0.9+"px";
  300. g("wBtn").style.marginLeft=-(sw*0.9/2)+"px";
  301. g("wBtn").style.height=sh*0.2+"px";
  302. }
  303. </script>
  304. </head>
  305. </html><!--[if !IE]>|xGv00|a221b93aaaa31cf3dcd8f6ed331efa79<![endif]-->