main.js 38 KB

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