main.js 35 KB

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