main.js 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061
  1. document.body.addEventListener('touchmove', bodyScroll, { passive: false });
  2. function bodyScroll(event) {
  3. event.preventDefault();
  4. }
  5. var canvas = document.getElementById("canvas");
  6. var stage = new createjs.Stage(canvas);
  7. createjs.Sound.alternateExtensions = ["mp3"];
  8. createjs.Sound.registerSound("sound/start/hsr.mp3", "hsr");
  9. createjs.Sound.registerSound("sound/start/ymc.mp3", "ymc");
  10. createjs.Sound.registerSound("sound/start/swy.mp3", "swy");
  11. createjs.Sound.registerSound("sound/start/qcdf.mp3", "qcdf");
  12. createjs.Sound.registerSound("sound/background_music.mp3", "bgm");
  13. createjs.Sound.registerSound("sound/cut.mp3", "cut");//切菜
  14. createjs.Sound.registerSound("sound/oil.mp3", "oil");//空锅倒油(肉、油麦菜)
  15. createjs.Sound.registerSound("sound/soup.mp3", "soup");//煮
  16. // 大屏适配
  17. var hFont = $('html').css('font-size');
  18. var h = $(window).height();
  19. hFont = hFont.slice(0,-2);
  20. // 屏幕超过1245。显示大屏配置
  21. if(h/hFont > 16.6){
  22. $("body").addClass("big-page");
  23. }else if(h/hFont < 15.2){
  24. $("body").addClass("small-page");
  25. $(".game-box").css("top",'-35px')
  26. }
  27. window.user_info = {
  28. uid: 0,
  29. logo:'http://img5q.duitang.com/uploads/item/201502/25/20150225060808_wuANL.jpeg',//用户头像
  30. nickname:'用户昵称',//用户昵称,
  31. namemsg:'那个她/他',//寄语
  32. textmsg:'GOOD GOOD STUDY,DAY DAY UP'//寄语
  33. };
  34. var URLParams = new Array() , chooseType = 0 , dishType = 0;
  35. var params = document.location.search.substr(1).split('&');
  36. var ua = navigator.userAgent.toLowerCase() , url = "" , type = 0;
  37. for (i=0; i < params.length ; i++){
  38. var aParam = params[i].split('=');
  39. URLParams[aParam[0]] = aParam[1];
  40. }
  41. function init() {
  42. //createjs.Sound.play("bgm", {loop: -1});
  43. just_play();
  44. var comp = AdobeAn.getComposition("5529E26743974F469545223C44E61D22");
  45. var lib = comp.getLibrary();
  46. var loader = new createjs.LoadQueue(false);
  47. loader.addEventListener("fileload", function(evt) { handleFileLoad(evt, comp) });
  48. loader.addEventListener("complete", function(evt) { handleComplete(evt, comp) });
  49. loader.addEventListener("progress", loadProgressHandler);
  50. var lib = comp.getLibrary();
  51. loader.loadManifest(lib.properties.manifest);
  52. createjs.MotionGuidePlugin.install();
  53. createjs.Touch.enable(stage);
  54. }
  55. function handleFileLoad(evt, comp) {
  56. var loadingimages = comp.getImages();
  57. if (evt && (evt.item.type == "image")) {
  58. loadingimages[evt.item.id] = evt.result;
  59. }
  60. }
  61. function loadProgressHandler(event) {
  62. var num = Math.floor(event.progress * 100);
  63. $("#loadingTxt").text(num);
  64. $("#loadingBar").css("width", num + '%');
  65. }
  66. function handleComplete(evt, comp) {
  67. //This function is always called, irrespective of the content. You can use the variable "stage" after it is created in token create_stage.
  68. var lib = comp.getLibrary();
  69. var ss = comp.getSpriteSheet();
  70. var queue = evt.target;
  71. var ssMetadata = lib.ssMetadata;
  72. for (i = 0; i < ssMetadata.length; i++) {
  73. ss[ssMetadata[i].name] = new createjs.SpriteSheet({ "images": [queue.getResult(ssMetadata[i].name)], "frames": ssMetadata[i].frames })
  74. }
  75. var exportRoot = new lib.assets();
  76. $(".loading").fadeOut(function(){
  77. $(".select-dish-box").find(".animated").removeClass("js-an");
  78. });
  79. var dishIndex = 0;
  80. $(".select-dish-box .item").on("click", function() {
  81. $(this).addClass("active").siblings().removeClass("active");
  82. $(".select-dish-box .confirm").show();
  83. })
  84. $(".select-dish-box .confirm").on("click", function() {
  85. if (!$(".select-dish-box .item").hasClass("active")) {
  86. alert("请选择你要做的菜")
  87. return false;
  88. }
  89. dishIndex = $(".select-dish-box .item.active").index();
  90. $(".select-dish-box").hide();
  91. $(".game-box").show();
  92. // 判断是哪个菜
  93. if(dishIndex == 0){
  94. exportRoot.plate.hsr_icon1.alpha = 1;
  95. exportRoot.plate.hsr_icon2.alpha = 1;
  96. exportRoot.plate.hsr_icon3.alpha = 1;
  97. exportRoot.plate.hsr_icon4.alpha = 1;
  98. cutDishArr = hsr_iconArr;
  99. $('#poster').attr('src','./img/poster/hsr.png');
  100. }else if(dishIndex == 1){
  101. exportRoot.plate.qcdf_icon1.alpha = 1;
  102. exportRoot.plate.qcdf_icon2.alpha = 1;
  103. exportRoot.plate.qcdf_icon3.alpha = 1;
  104. exportRoot.plate.qcdf_icon4.alpha = 1;
  105. exportRoot.plate.qcdf_icon5.alpha = 1;
  106. cutDishArr = qcdf_iconArr;
  107. $('#poster').attr('src','./img/poster/qcdf.png');
  108. }else if(dishIndex == 2){
  109. exportRoot.plate.swy_icon1.alpha = 1;
  110. exportRoot.plate.swy_icon2.alpha = 1;
  111. cutDishArr = swy_iconArr;
  112. $('#poster').attr('src','./img/poster/swy.png');
  113. }else{
  114. exportRoot.plate.ymc_icon1.alpha = 1;
  115. exportRoot.plate.ymc_icon2.alpha = 1;
  116. exportRoot.plate.ymc_icon3.alpha = 1;
  117. exportRoot.plate.ymc_icon4.alpha = 1;
  118. cutDishArr = ymc_iconArr;
  119. $('#poster').attr('src','./img/poster/ymc.png');
  120. }
  121. })
  122. $(".replay-btn").on("click",function(){
  123. URLParams = new Array();
  124. window.location.href = "http://wx.ttkuaiban.com/minigame/";
  125. //location.reload()
  126. })
  127. //$(".secret-btn").on("click",function(){
  128. //saveText();
  129. // $(".secret-box").fadeIn();
  130. //})
  131. $(".secret-box").on("click",function(){
  132. $(".secret-box").fadeOut();
  133. })
  134. function ballAnim(dom) {
  135. var anim = new TimelineMax({ repeat: -1 });
  136. anim.to(dom, 0.15, { rotation: "-=15", ease: Power0.easeIn })
  137. .to(dom, 0.3, { rotation: "+=30", ease: Power0.easeIn })
  138. .to(dom, 0.3, { rotation: "-=30", ease: Power0.easeIn })
  139. .to(dom, 0.3, { rotation: "+=30", ease: Power0.easeIn })
  140. .to(dom, 0.15, { rotation: "-=15", ease: Power0.easeIn });
  141. return anim;
  142. }
  143. function materialAnim(dom, x, y, callback) {
  144. var anim = new TimelineMax({ onComplete: callback });
  145. anim.to(dom, 0.5, { x: "+=" + x, y: "+=" + y, ease: Power0.easeIn })
  146. .to(dom, 0.3, { rotation: "-=25", ease: Power0.easeIn })
  147. .to(dom, 0.3, { rotation: "+=25", ease: Power0.easeIn })
  148. .to(dom, 0.3, { rotation: "-=25", ease: Power0.easeIn })
  149. .to(dom, 0.3, { rotation: "+=25", ease: Power0.easeIn });
  150. return anim;
  151. }
  152. function oilAnim(){
  153. if(dishIndex != 2){
  154. var dom = exportRoot.pot.oil;
  155. }else{
  156. var dom = exportRoot.bowl.oil;
  157. }
  158. var anim = new TimelineMax({ delay:0.8});
  159. anim.to(dom, 0.4, { alpha: 1, ease: Power0.easeIn })
  160. .to(dom, 1, { scale: 1, ease: Power0.easeIn })
  161. return anim;
  162. }
  163. function bowlAnim(callback) {
  164. var anim = new TimelineMax({ onComplete: callback, delay: 0.3 });
  165. anim.to(exportRoot.plate, 0.5, { y: "-=370", ease: Power0.easeIn })
  166. .to(exportRoot.bowl, 0.5, { alpha: 1, ease: Power0.easeIn });
  167. return anim;
  168. }
  169. function proAnim(callback) {
  170. var anim = new TimelineMax({ onComplete: callback, delay: 0.5 });
  171. anim.to(exportRoot.pro.proImg, 0.5, { rotation: "-=25", ease: Power0.easeIn })
  172. .to(exportRoot.pro.oil_icon1, 0.3, {alpha:1})
  173. .to(exportRoot.pro.oil_icon2, 0.2, {alpha:1})
  174. .to(exportRoot.pro.proImg, 1, {})
  175. .to(exportRoot.pro, 0.3, { alpha: 0, ease: Power0.easeIn })
  176. .to(exportRoot.pro, 1, {})
  177. return anim;
  178. }
  179. function oilIconAnim() {
  180. oilAnim();
  181. var video = "";
  182. if(dishIndex == 0){
  183. createjs.Sound.play("hsr");//播放
  184. video = createjs.Sound.play("oil");//播放
  185. }else if(dishIndex == 1){
  186. createjs.Sound.play("qcdf");//播放
  187. video = createjs.Sound.play("soup");//播放
  188. }else if(dishIndex == 2){
  189. createjs.Sound.play("swy");//播放
  190. }else{
  191. createjs.Sound.play("ymc");//播放
  192. video = createjs.Sound.play("oil");//播放
  193. }
  194. setTimeout(function(){ video.paused = true; }, 5000);
  195. var anim = new TimelineMax({ repeat:10,delay:1});
  196. anim.to(exportRoot.pro.oil_icon2, 0.3, {y:"+=100",alpha:0})
  197. return anim;
  198. }
  199. function btnAnim(dom){
  200. var anim = new TimelineMax({ repeat:-1 });
  201. anim.to(dom, 0.3, { scale: "+=0.1", ease: Power0.easeIn })
  202. .to(dom, 0.3, { scale: "-=0.1", ease: Power0.easeIn })
  203. return anim;
  204. }
  205. function fadeInAnim(dom){
  206. var anim = new TimelineMax({ });
  207. anim.to(dom, 0.4, { alpha: 1, ease: Power0.easeIn })
  208. return anim;
  209. }
  210. function menuIconInAnim(dom){
  211. var anim = new TimelineMax({ });
  212. if(!dom.icon5){
  213. dom.icon5 = exportRoot.btn2;
  214. }
  215. anim.to(dom.icon1, 0.3, { alpha: 1, ease: Power0.easeIn })
  216. .to(dom.icon2, 0.3, { alpha: 1, ease: Power0.easeIn })
  217. .to(dom.icon3, 0.3, { alpha: 1, ease: Power0.easeIn })
  218. .to(dom.icon4, 0.3, { alpha: 1, ease: Power0.easeIn })
  219. .to(dom.icon5, 0.3, { alpha: 1, ease: Power0.easeIn })
  220. .to(exportRoot.btn2, 0.4, { alpha: 1, ease: Power0.easeIn })
  221. return anim;
  222. }
  223. function menuIconInAnim2(dom,callback){
  224. var anim = new TimelineMax({onComplete:callback });
  225. anim.to(dom.icon1, 0.3, { alpha: 1, ease: Power0.easeIn })
  226. .to(dom.icon2, 0.3, { alpha: 1, ease: Power0.easeIn })
  227. .to(dom.icon3, 0.3, { alpha: 1, ease: Power0.easeIn })
  228. .to(dom.icon4, 0.3, { alpha: 1, ease: Power0.easeIn })
  229. .to(dom.icon5, 0.3, { alpha: 1, ease: Power0.easeIn })
  230. return anim;
  231. }
  232. function materialEnterAnim(dom,delay){
  233. dom.scale = 0.1;
  234. delay = delay || 0.1;
  235. var anim = new TimelineMax({ delay:delay});
  236. anim.to(dom,1.2, { scale: 1, ease: Elastic.easeOut.config(1, 0.3) })
  237. return anim;
  238. }
  239. var cutDishArr = [];
  240. // 油麦菜
  241. var ymc_iconArr = [
  242. {
  243. x: exportRoot.plate.x + exportRoot.plate.ymc_icon1.x,
  244. y: exportRoot.plate.y + exportRoot.plate.ymc_icon1.y,
  245. width: 266,
  246. height: 187,
  247. isClear: false
  248. },
  249. {
  250. x: exportRoot.plate.x + exportRoot.plate.ymc_icon2.x,
  251. y: exportRoot.plate.y + exportRoot.plate.ymc_icon2.y,
  252. width: 103,
  253. height: 118,
  254. isClear: false
  255. },
  256. {
  257. x: exportRoot.plate.x + exportRoot.plate.ymc_icon3.x,
  258. y: exportRoot.plate.y + exportRoot.plate.ymc_icon3.y,
  259. width: 371,
  260. height: 144,
  261. isClear: false
  262. },
  263. {
  264. x: exportRoot.plate.x + exportRoot.plate.ymc_icon4.x,
  265. y: exportRoot.plate.y + exportRoot.plate.ymc_icon4.y,
  266. width: 86,
  267. height: 75,
  268. isClear: false
  269. }
  270. ]
  271. // 三文鱼
  272. var swy_iconArr = [
  273. {
  274. x: exportRoot.plate.x + exportRoot.plate.hsr_icon1.x,
  275. y: exportRoot.plate.y + exportRoot.plate.hsr_icon1.y,
  276. width: 262,
  277. height: 195,
  278. isClear: false
  279. }
  280. ]
  281. // 红烧肉的位置
  282. var hsr_iconArr = [{
  283. x: exportRoot.plate.x + exportRoot.plate.hsr_icon1.x,
  284. y: exportRoot.plate.y + exportRoot.plate.hsr_icon1.y,
  285. width: 202,
  286. height: 129,
  287. isClear: false
  288. },
  289. {
  290. x: exportRoot.plate.x + exportRoot.plate.hsr_icon2.x,
  291. y: exportRoot.plate.y + exportRoot.plate.hsr_icon2.y,
  292. width: 86,
  293. height: 75,
  294. isClear: false
  295. },
  296. {
  297. x: exportRoot.plate.x + exportRoot.plate.hsr_icon3.x,
  298. y: exportRoot.plate.y + exportRoot.plate.hsr_icon3.y,
  299. width: 371,
  300. height: 144,
  301. isClear: false
  302. },
  303. {
  304. x: exportRoot.plate.x + exportRoot.plate.hsr_icon4.x,
  305. y: exportRoot.plate.y + exportRoot.plate.hsr_icon4.y,
  306. width: 103,
  307. height: 118,
  308. isClear: false
  309. }
  310. ];
  311. // 青菜豆腐的位置
  312. var qcdf_iconArr = [{
  313. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon1.x,
  314. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon1.y,
  315. width: 169,
  316. height: 320,
  317. isClear: false
  318. },
  319. {
  320. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon2.x,
  321. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon2.y,
  322. width: 207,
  323. height: 144,
  324. isClear: false
  325. },
  326. {
  327. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon3.x,
  328. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon3.y,
  329. width: 103,
  330. height: 118,
  331. isClear: false
  332. },
  333. {
  334. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon4.x,
  335. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon4.y,
  336. width: 371,
  337. height: 144,
  338. isClear: false
  339. },
  340. {
  341. x: exportRoot.plate.x + exportRoot.plate.qcdf_icon5.x,
  342. y: exportRoot.plate.y + exportRoot.plate.qcdf_icon5.y,
  343. width: 86,
  344. height: 75,
  345. isClear: false
  346. }
  347. ]
  348. // 画线
  349. var lineArr = [];
  350. var lineTimr = null;
  351. var lineShape = new createjs.Shape();
  352. function drawLine() {
  353. var value = 40;
  354. lineTimr = setInterval(function() {
  355. lineShape.graphics.clear();
  356. lineShape.graphics.setStrokeStyle(8).beginStroke("#787878");
  357. if (lineArr.length) {
  358. lineShape.graphics.moveTo(lineArr[0].x, lineArr[0].y);
  359. }
  360. for (var i = 0; i < lineArr.length; i++) {
  361. var x = lineArr[i].x;
  362. var y = lineArr[i].y;
  363. lineShape.graphics.lineTo(x, y);
  364. for (var p = 0; p < cutDishArr.length; p++) {
  365. if (x-cutDishArr[p].width/3 > cutDishArr[p].x && x < (cutDishArr[p].x + cutDishArr[p].width)) {
  366. if (y-cutDishArr[p].height/3 > cutDishArr[p].y && y < (cutDishArr[p].y + cutDishArr[p].height)) {
  367. if (cutDishArr[p].isClear == false) {
  368. cutDishArr[p].isClear = true;
  369. if(dishIndex == 0){
  370. exportRoot.plate['hsr_icon' + (p + 1)].gotoAndStop(1);
  371. }else if(dishIndex == 1){
  372. exportRoot.plate['qcdf_icon' + (p + 1)].gotoAndStop(1);
  373. }else if(dishIndex == 2){
  374. exportRoot.plate.swy_icon1.gotoAndStop(1);
  375. }else{
  376. exportRoot.plate['ymc_icon' + (p + 1)].gotoAndStop(1);
  377. }
  378. }
  379. }
  380. }
  381. }
  382. }
  383. lineArr.splice(0, 1);
  384. }, 30)
  385. }
  386. // 画线事件
  387. drawLine();
  388. exportRoot.addEventListener("mousedown", function(event) {
  389. lineArr = [];
  390. var obj = {
  391. x: event.stageX,
  392. y: event.stageY,
  393. };
  394. lineArr.push(obj);
  395. createjs.Sound.play("cut");//播放
  396. })
  397. exportRoot.addEventListener("pressmove", function(event) {
  398. if (lineArr.length >= 15) {
  399. lineArr.splice(0, 1);
  400. }
  401. var obj = {
  402. x: event.stageX,
  403. y: event.stageY,
  404. };
  405. lineArr.push(obj);
  406. })
  407. exportRoot.addEventListener("pressup", function(event) {
  408. playbowlAnim();
  409. })
  410. var dishMoveIndex = 0;
  411. // 移动菜品
  412. function dishMove(dom,x,y) {
  413. var startX = 0;
  414. var startY = 0;
  415. var domFirst = $.extend(true, {}, dom);
  416. dom.addEventListener("mousedown", function(event) {
  417. startX = event.stageX;
  418. startY = event.stageY;
  419. })
  420. dom.addEventListener("pressmove", function(event) {
  421. dom.x -= (startX - event.stageX);
  422. dom.y -= (startY - event.stageY);
  423. startX = event.stageX;
  424. startY = event.stageY;
  425. })
  426. dom.addEventListener("pressup", function(event) {
  427. if (dom.x + exportRoot.plate.x > 80 && dom.y + exportRoot.plate.y > 518) {
  428. dom.x = 190 - exportRoot.plate.x + x;
  429. dom.y = 630 - exportRoot.plate.y + y;
  430. dom.removeAllEventListeners();
  431. if(dishIndex == 0){
  432. ++dishMoveIndex;
  433. if (dishMoveIndex >= 4) {
  434. exportRoot.btn1.alpha = 1;
  435. btnAnim(exportRoot.btn1);
  436. isAllInplate();
  437. }
  438. }else if(dishIndex == 1){
  439. ++dishMoveIndex;
  440. if (dishMoveIndex >= 5) {
  441. exportRoot.btn1.alpha = 1;
  442. btnAnim(exportRoot.btn1);
  443. isAllInplate();
  444. }
  445. }else if(dishIndex == 2){
  446. exportRoot.btn1.alpha = 1;
  447. btnAnim(exportRoot.btn1);
  448. isAllInplate();
  449. }else{
  450. ++dishMoveIndex;
  451. if (dishMoveIndex >= 4) {
  452. exportRoot.btn1.alpha = 1;
  453. btnAnim(exportRoot.btn1);
  454. isAllInplate();
  455. }
  456. }
  457. } else {
  458. dom.x = domFirst.x;
  459. dom.y = domFirst.y;
  460. }
  461. })
  462. }
  463. // 菜全部到盘子里
  464. function isAllInplate() {
  465. exportRoot.btn1.addEventListener("mousedown", function() {
  466. exportRoot.btn1.removeAllEventListeners();
  467. exportRoot.btn1.alpha = 0;
  468. exportRoot.pro.alpha = 1;
  469. if(dishIndex != 2){
  470. exportRoot.bowl.alpha = 0;
  471. exportRoot.plate.alpha = 0;
  472. exportRoot.pot.alpha = 1;
  473. }else{
  474. exportRoot.plate.instance.alpha = 0;
  475. exportRoot.plate.swy_icon2.alpha = 0;
  476. }
  477. if(dishIndex == 1){
  478. menuIconInAnim2(exportRoot.pot.qcdf,function(){
  479. oilIconAnim();
  480. proAnim(function() {
  481. exportRoot.btn2.alpha = 1;
  482. btnAnim(exportRoot.btn2);
  483. })
  484. });
  485. }else{
  486. oilIconAnim();
  487. proAnim(function() {
  488. btnAnim(exportRoot.btn2);
  489. if(dishIndex == 0){
  490. menuIconInAnim(exportRoot.pot.hsr);
  491. }else if(dishIndex == 3){
  492. menuIconInAnim(exportRoot.pot.ymc);
  493. }else{
  494. exportRoot.btn2.alpha = 1;
  495. }
  496. });
  497. }
  498. })
  499. exportRoot.btn2.addEventListener("mousedown", function() {
  500. exportRoot.btn2.removeAllEventListeners();
  501. exportRoot.btn2.alpha = 0;
  502. fadeInAnim(exportRoot.blackboard);
  503. materialEnterAnim(exportRoot.blackboard.material1,0.2);
  504. materialEnterAnim(exportRoot.blackboard.material2,0.4);
  505. materialEnterAnim(exportRoot.blackboard.material3,0.6);
  506. ballAnim(exportRoot.ball1);
  507. })
  508. exportRoot.blackboard.material1.addEventListener("mousedown", function() {
  509. exportRoot.blackboard.material1.removeAllEventListeners();
  510. exportRoot.blackboard.material2.removeAllEventListeners();
  511. exportRoot.blackboard.material3.removeAllEventListeners();
  512. $(".poster-mode").addClass("poster-bg3");
  513. if(dishIndex == 0){
  514. $('#poster').attr('src','./img/poster/hsr_lv.png');
  515. }else if(dishIndex == 1){
  516. $('#poster').attr('src','./img/poster/qcdf_lv.png');
  517. }else if(dishIndex == 2){
  518. $('#poster').attr('src','./img/poster/swy_lv.png');
  519. }else{
  520. $('#poster').attr('src','./img/poster/ymc_lv.png');
  521. }
  522. materialAnim(exportRoot.blackboard.material1, 300, 180, function() {
  523. exportRoot.blackboard.material1.x -=300;
  524. exportRoot.blackboard.material1.y -=180;
  525. // $(".shake-mode").show();
  526. shakeInit();
  527. });
  528. })
  529. exportRoot.blackboard.material2.addEventListener("mousedown", function() {
  530. exportRoot.blackboard.material1.removeAllEventListeners();
  531. exportRoot.blackboard.material2.removeAllEventListeners();
  532. exportRoot.blackboard.material3.removeAllEventListeners();
  533. $(".poster-mode").addClass("poster-bg2");
  534. if(dishIndex == 0){
  535. $('#poster').attr('src','./img/poster/hsr_hei.png');
  536. }else if(dishIndex == 1){
  537. $('#poster').attr('src','./img/poster/qcdf_hei.png');
  538. }else if(dishIndex == 2){
  539. $('#poster').attr('src','./img/poster/swy_hei.png');
  540. }else{
  541. $('#poster').attr('src','./img/poster/ymc_hei.png');
  542. }
  543. materialAnim(exportRoot.blackboard.material2, 120, 180, function() {
  544. exportRoot.blackboard.material2.x -=120;
  545. exportRoot.blackboard.material2.y -=180;
  546. // $(".shake-mode").show();
  547. shakeInit();
  548. });
  549. })
  550. exportRoot.blackboard.material3.addEventListener("mousedown", function() {
  551. exportRoot.blackboard.material1.removeAllEventListeners();
  552. exportRoot.blackboard.material2.removeAllEventListeners();
  553. exportRoot.blackboard.material3.removeAllEventListeners();
  554. $(".poster-mode").addClass("poster-bg1");
  555. if(dishIndex == 0){
  556. $('#poster').attr('src','./img/poster/hsr_fen.png');
  557. }else if(dishIndex == 1){
  558. $('#poster').attr('src','./img/poster/qcdf_fen.png');
  559. }else if(dishIndex == 2){
  560. $('#poster').attr('src','./img/poster/swy_fen.png');
  561. }else{
  562. $('#poster').attr('src','./img/poster/ymc_fen.png');
  563. }
  564. materialAnim(exportRoot.blackboard.material3, -30, 180, function() {
  565. exportRoot.blackboard.material3.x +=30;
  566. exportRoot.blackboard.material3.y -=180;
  567. // $(".shake-mode").show();
  568. shakeInit();
  569. });
  570. })
  571. }
  572. // 菜切完盘子上移动
  573. function playbowlAnim() {
  574. for (var i = 0; i < cutDishArr.length; i++) {
  575. if (cutDishArr[i].isClear == false) {
  576. return false;
  577. }
  578. }
  579. stage.removeChild(lineShape);
  580. clearInterval(lineTimr);
  581. exportRoot.removeAllEventListeners();
  582. bowlAnim(function() {
  583. if(dishIndex == 0){
  584. dishMove(exportRoot.plate.hsr_icon1,0,0);
  585. dishMove(exportRoot.plate.hsr_icon2,0,0);
  586. dishMove(exportRoot.plate.hsr_icon3,0,0);
  587. dishMove(exportRoot.plate.hsr_icon4,0,0);
  588. }else if(dishIndex == 1){
  589. dishMove(exportRoot.plate.qcdf_icon1,0,-80);
  590. dishMove(exportRoot.plate.qcdf_icon2,0,0);
  591. dishMove(exportRoot.plate.qcdf_icon3,0,0);
  592. dishMove(exportRoot.plate.qcdf_icon4,0,0);
  593. dishMove(exportRoot.plate.qcdf_icon5,0,0);
  594. }else if(dishIndex == 2){
  595. dishMove(exportRoot.plate.swy_icon1,120,100);
  596. }else{
  597. dishMove(exportRoot.plate.ymc_icon1,0,0);
  598. dishMove(exportRoot.plate.ymc_icon2,0,0);
  599. dishMove(exportRoot.plate.ymc_icon3,0,0);
  600. dishMove(exportRoot.plate.ymc_icon4,0,0);
  601. }
  602. });
  603. }
  604. function shakeInit() {
  605. var shake_cnt = 0;
  606. $(".shake-mode2").show();
  607. if (window.DeviceMotionEvent) {
  608. window.addEventListener('devicemotion', deviceMotionHandler, false);
  609. } else {
  610. alert('您的手机不支持摇一摇功能!');
  611. }
  612. //获取加速度信息
  613. //通过监听上一步获取到的x, y, z 值在一定时间范围内的变化率,进行设备是否有进行晃动的判断。
  614. //而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。
  615. var SHAKE_THRESHOLD = 10000000; //阈值越大,触发摇晃事件时手机摇晃的程度越剧烈
  616. var last_update = 0;
  617. var x, y, z, last_x = 0,
  618. last_y = 0,
  619. last_z = 0;
  620. function deviceMotionHandler(eventData) {
  621. var acceleration = eventData.accelerationIncludingGravity;
  622. console.log(acceleration);
  623. var curTime = new Date().getTime();
  624. if ((curTime - last_update) > 10) {
  625. var diffTime = curTime - last_update;
  626. last_update = curTime;
  627. x = acceleration.x;
  628. y = acceleration.y;
  629. z = acceleration.z;
  630. var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
  631. console.log('speed='+speed+',SHAKE_THRESHOLD='+SHAKE_THRESHOLD)
  632. if (speed > SHAKE_THRESHOLD) {
  633. $(".shake-mode2").hide();
  634. $(".shake-mode").show();
  635. shake_cnt++;
  636. if(shake_cnt>2){
  637. setTimeout(function(){
  638. window.removeEventListener('devicemotion', deviceMotionHandler, false);
  639. exportRoot.pot.hsr.play();
  640. // exportRoot.btn3.alpha = 1;
  641. // btnAnim(exportRoot.btn3);
  642. // exportRoot.btn3.addEventListener("mousedown",function(){
  643. // exportRoot.btn3.removeAllEventListeners();
  644. // $(".poster-mode").fadeIn();
  645. // })
  646. if(document.location.href.indexOf('type') == -1){
  647. var href = document.location.href + (document.location.href.indexOf('?') > -1?'&':'?') + "type=" + chooseType + "&food=" + dishIndex;
  648. history.pushState("", "Title", href);
  649. }
  650. if(dishIndex == 0){
  651. exportRoot.pot.hsr.gotoAndStop(1);
  652. }else if(dishIndex == 1){
  653. exportRoot.pot.qcdf.gotoAndStop(1);
  654. }else if(dishIndex == 2){
  655. exportRoot.bowl.oil.alpha = 0;
  656. exportRoot.plate['swy_icon1'].gotoAndStop(2);
  657. }else{
  658. exportRoot.pot.ymc.gotoAndStop(1);
  659. }
  660. $(".shake-mode").fadeOut();
  661. // exportRoot.btn3.removeAllEventListeners();
  662. $(".poster-mode").fadeIn();
  663. },3000)
  664. }
  665. //dosomething
  666. $("#fire").addClass("anim-time");
  667. }else{
  668. $("#fire").removeClass("anim-time");
  669. }
  670. last_x = x;
  671. last_y = y;
  672. last_z = z;
  673. // 开始火的动画
  674. $("#fire").removeClass("js-an");
  675. }
  676. }
  677. }
  678. //Registers the "tick" event listener.
  679. function fnStartAnimation() {
  680. stage.addChild(exportRoot, lineShape);
  681. createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
  682. createjs.Ticker.addEventListener("tick", stage);
  683. }
  684. fnStartAnimation();
  685. stageBreakHandler();
  686. }
  687. function getInfo() {
  688. var ua = navigator.userAgent.toLowerCase();
  689. var isMobile = false;
  690. if (!!navigator.userAgent.match(/AppleWebKit.*Mobile.*/)) {
  691. isMobile = true;
  692. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  693. type = 0;
  694. url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
  695. +"appid=wx749c84daac654e1e&"
  696. +"redirect_uri=http://wx.ttkuaiban.com/minigame&"
  697. +"response_type=code&"
  698. +"scope=snsapi_userinfo&"//snsapi_userinfo
  699. +"state=1#wechat_redirect";
  700. }
  701. if (ua.match(/WeiBo/i) == "weibo") {
  702. type = 1;
  703. url = "https://api.weibo.com/oauth2/authorize?"
  704. +"client_id=2141531565&"
  705. +"response_type=code&"
  706. +"redirect_uri=http://wx.ttkuaiban.com/minigame/index.html"
  707. }
  708. } else {
  709. var ua = navigator.userAgent.toLowerCase();
  710. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  711. type = 0;
  712. url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
  713. +"appid=wx749c84daac654e1e&"
  714. +"redirect_uri=http://wx.ttkuaiban.com/minigame&"
  715. +"response_type=code&"
  716. +"scope=snsapi_userinfo&"//snsapi_userinfo
  717. +"state=1#wechat_redirect";
  718. }
  719. }
  720. if(URLParams['uid']) {
  721. $('#nameInput').hide();
  722. $('#nameText').show();
  723. $('#textInput').hide();
  724. $('#text').show();
  725. $('.replay-btn').hide();
  726. $('.secret-btn').hide();
  727. chooseType = URLParams['type'];
  728. dishType = URLParams['food'];
  729. $(".poster-mode").addClass("poster-bg" + chooseType);
  730. if(chooseType == 3) {
  731. if(dishType == 0){
  732. $('#poster').attr('src','./img/poster/hsr_lv.png');
  733. }else if(dishType == 1){
  734. $('#poster').attr('src','./img/poster/qcdf_lv.png');
  735. }else if(dishType == 2){
  736. $('#poster').attr('src','./img/poster/swy_lv.png');
  737. }else{
  738. $('#poster').attr('src','./img/poster/ymc_lv.png');
  739. }
  740. } else if(chooseType == 2) {
  741. if(dishType == 0){
  742. $('#poster').attr('src','./img/poster/hsr_hei.png');
  743. }else if(dishType == 1){
  744. $('#poster').attr('src','./img/poster/qcdf_hei.png');
  745. }else if(dishType == 2){
  746. $('#poster').attr('src','./img/poster/swy_hei.png');
  747. }else{
  748. $('#poster').attr('src','./img/poster/ymc_hei.png');
  749. }
  750. } else if(chooseType == 1) {
  751. if(dishType == 0){
  752. $('#poster').attr('src','./img/poster/hsr_fen.png');
  753. }else if(dishType == 1){
  754. $('#poster').attr('src','./img/poster/qcdf_fen.png');
  755. }else if(dishType == 2){
  756. $('#poster').attr('src','./img/poster/swy_fen.png');
  757. }else{
  758. $('#poster').attr('src','./img/poster/ymc_fen.png');
  759. }
  760. }
  761. // if(dishType == 0){
  762. // $('#poster').attr('src','./img/poster/hsr.png');
  763. // }else if(dishType == 1){
  764. // $('#poster').attr('src','./img/poster/qcdf.png');
  765. // }else if(dishType == 2){
  766. // $('#poster').attr('src','./img/poster/swy.png');
  767. // }else{
  768. // $('#poster').attr('src','./img/poster/ymc.png');
  769. // }
  770. getMsg();
  771. $(".poster-mode").fadeIn();
  772. } else {
  773. $('#nameInput').show();
  774. $('#nameText').hide();
  775. $('#textInput').show();
  776. $('#text').hide();
  777. $('.replay-btn').show();
  778. $('.secret-btn').show();
  779. init();
  780. if (isMobile) {
  781. getMsg();
  782. }
  783. }
  784. }
  785. // 获取登陆信息
  786. function getMsg(){
  787. if(URLParams['uid'] || localStorage.userId){
  788. if(URLParams['uid']) {
  789. var uid = URLParams['uid'];
  790. var xhr=null;
  791. try{
  792. xhr=new XMLHttpRequest();
  793. }catch(e){
  794. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  795. }
  796. xhr.open("post","news/show",true);
  797. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  798. xhr.send("id="+uid);
  799. xhr.onreadystatechange=function(){
  800. if(xhr.readyState==4){
  801. if(xhr.status==200){
  802. var msg = JSON.parse(xhr.response);
  803. if(msg.code == "ok") {
  804. window.user_info.uid = msg.data.id;
  805. window.user_info.logo = msg.data.headerPic;
  806. window.user_info.nickname = msg.data.nickName;
  807. window.user_info.namemsg = msg.data.message;
  808. window.user_info.textmsg = msg.data.message;
  809. $('.headimg-box img').attr("src", msg.data.headerPic);
  810. $('.user-info p').html(msg.data.nickName);
  811. $('#nameText').html(msg.data.receiver);
  812. $('#text').html(msg.data.message);
  813. }
  814. }else{
  815. console.log("错误"+xhr.status)
  816. }
  817. }
  818. }
  819. } else {
  820. window.user_info.uid = localStorage.userId;
  821. window.user_info.logo = localStorage.userPic;
  822. window.user_info.nickname = localStorage.userName;
  823. $('.headimg-box img').attr("src", localStorage.userPic);
  824. $('.user-info p').html(localStorage.userName);
  825. }
  826. }else {
  827. if(URLParams['code']){
  828. var code = URLParams['code'];
  829. var xhr=null;
  830. try{
  831. xhr=new XMLHttpRequest();
  832. }catch(e){
  833. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  834. }
  835. xhr.open("post","user/weiXinLogin",true);
  836. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  837. xhr.send("code="+code+"&type="+type);
  838. xhr.onreadystatechange=function(){
  839. if(xhr.readyState==4){
  840. if(xhr.status==200){
  841. var msg = JSON.parse(xhr.response);
  842. if(msg.code == "ok") {
  843. window.user_info.uid = msg.data.id;
  844. localStorage.userId = msg.data.id;
  845. localStorage.userPic = msg.data.headerPic;
  846. localStorage.userName = msg.data.nickName;
  847. window.user_info.logo = msg.data.headerPic;
  848. window.user_info.nickname = msg.data.nickName;
  849. $('.headimg-box img').attr("src", msg.data.headerPic);
  850. $('.user-info p').html(msg.data.nickName);
  851. }
  852. }else{
  853. console.log("错误"+xhr.status)
  854. }
  855. }
  856. }
  857. } else {
  858. window.location.href = url;
  859. }
  860. }
  861. }
  862. function saveText() {
  863. var value = $('#textInput').val(),
  864. receiver = $('#nameInput').val();
  865. if(value == '' || receiver == '') {
  866. alert('请填写寄语');
  867. return false;
  868. }
  869. var xhr=null;
  870. try{
  871. xhr=new XMLHttpRequest();
  872. }catch(e){
  873. xhr=new ActiveXObject("Microsoft.XMLHTTP");
  874. }
  875. xhr.open("post","news/addNews",true);
  876. xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
  877. xhr.send("receiver="+receiver+"&message="+value+"&userId="+window.user_info.uid);
  878. xhr.onreadystatechange=function(){
  879. if(xhr.readyState==4){
  880. if(xhr.status==200){
  881. var msg = JSON.parse(xhr.response) , href = document.location.href;
  882. if(msg.code == "ok") {
  883. window.user_info.uid = msg.data.id;
  884. window.user_info.logo = msg.data.headerPic;
  885. window.user_info.nickname = msg.data.nickName;
  886. window.user_info.namemsg = msg.data.receiver;
  887. window.user_info.textmsg = msg.data.message;
  888. $('.headimg-box img').attr("src", msg.data.headerPic);
  889. $('.user-info p').html(msg.data.nickName);
  890. $('#nameInput').val(msg.data.receiver);
  891. $('#textInput').val(msg.data.message);
  892. if(document.location.href.indexOf('?') > -1){
  893. href = document.location.href + "&uid=" + msg.data.id;
  894. } else {
  895. href = document.location.href + "?uid=" + msg.data.id;
  896. }
  897. }
  898. if(href != document.location.href){
  899. history.pushState("", "Title", href);
  900. }
  901. $("#cover").show();
  902. //海报页面的微信分享
  903. $.post("./user/getWxConfigParam?url=" + href, {}, function(resp) {
  904. if (resp.code == 'error') {
  905. console.log(resp.code);
  906. }else{
  907. wx.config({
  908. debug: false,
  909. appId: 'wx749c84daac654e1e',
  910. timestamp: resp.data.timestamp,
  911. nonceStr: resp.data.noncestr,
  912. signature: resp.data.sign,
  913. jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'showOptionMenu', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem']
  914. });
  915. wx.ready(function(){
  916. const share = {
  917. title: "我为你精心准备的美味,快享用吧!",
  918. desc: "",
  919. imgUrl: "http://wx.ttkuaiban.com/minigame/images/share_picture.png",
  920. link: href,
  921. success: function() {
  922. $.post("./prize/luckDrawAddShare", {uid: id}, function(resp) {
  923. if (resp.code == 'error') {
  924. console.log(resp.code);
  925. }else{
  926. window.location.href = "http://wx.ttkuaiban.com/minigame/lottery.html";
  927. }
  928. });
  929. },
  930. cancel: function() {}
  931. };
  932. wx.onMenuShareAppMessage(share);
  933. wx.onMenuShareTimeline(share);
  934. wx.onMenuShareQQ(share);
  935. wx.onMenuShareQZone(share);
  936. wx.onMenuShareWeibo(share);
  937. });
  938. wx.error(function(res){
  939. console.log(res);
  940. });
  941. };
  942. });
  943. //if(type == 1) {
  944. setTimeout(function(){
  945. window.location.href = "http://wx.ttkuaiban.com/minigame/lottery.html";
  946. }, 10000);
  947. //}
  948. }else{
  949. console.log("错误"+xhr.status)
  950. }
  951. }
  952. }
  953. }
  954. $(".replay-btn").on("click",function(){
  955. URLParams = new Array();
  956. window.location.href = "http://wx.ttkuaiban.com/minigame/";
  957. })
  958. function hiddenCover() {
  959. $("#cover").hide();
  960. }
  961. // 自适应
  962. var stageWidth, stageHeight, stageScale;
  963. function stageBreakHandler(event) {
  964. if (stageWidth != $(".warp").width() || stageHeight != $(".warp").height()) {
  965. stageWidth = $(".warp").width();
  966. stageHeight = $(".warp").height();
  967. stageScale = stageWidth / 640;
  968. canvas.style.width = 640 * stageScale + 'px';
  969. canvas.style.height = 1040 * stageScale + 'px';
  970. }
  971. }