main.js 39 KB

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