app.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. var FlexibleScreen, Main_Page, Main_Page_Lock, SpinLoader, Title, Tuto_Page, all, appPlay, bgReset, blockEvent, c, cateArr, cateBg_hide, cateBg_show, firstSetting, fisrt_ani, i, indicator_Fn, j, k, l, len, len1, loadInterval, motion_Fn, pArr, ref, screenLanding, t, titleAni, titleArr, tutoArr, vinylc_loading;
  2. Framer.Extras.Hints.disable();
  3. Framer.Extras.Preloader.enable();
  4. // Framer.Extras.Preloader.setLogo("framer/images/VC_120_T.png");
  5. Screen.backgroundColor = "white";
  6. FlexibleScreen = require("FlexibleScreen").FlexibleScreen;
  7. SpinLoader = require("SpinLoader").SpinLoader;
  8. blockEvent = new Layer({
  9. size: Screen.size,
  10. backgroundColor: "",
  11. visible: false
  12. });
  13. blockEvent.onTap(function() {});
  14. all = new FlexibleScreen({
  15. backgroundColor: "white",
  16. width: 1242,
  17. height: 2208,
  18. _blockEvent: blockEvent
  19. });
  20. Main_Page = new PageComponent({
  21. parent: all,
  22. size: all.size,
  23. scrollVertical: false
  24. });
  25. Main_Page.content.draggable.overdrag = false;
  26. Tuto_Page = new PageComponent({
  27. size: all.size,
  28. scrollVertical: false
  29. });
  30. Tuto_Page.content.draggable.overdrag = false;
  31. Main_Page.addPage(Title);
  32. Main_Page.addPage(Tuto_Page);
  33. Main_Page.addPage(Last);
  34. tutoArr = [tutoTxt0, tutoTxt1, tutoTxt2, tutoTxt3, tutoTxt4];
  35. pArr = [];
  36. for (i = j = 0, ref = tutoArr.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
  37. pArr.push(new Layer({
  38. name: "pArr" + i,
  39. size: all.size,
  40. backgroundColor: ""
  41. }));
  42. Tuto_Page.addPage(pArr[i]);
  43. tutoArr[i].props = {
  44. midX: all.width / 2,
  45. y: 1717,
  46. parent: pArr[i]
  47. };
  48. }
  49. indicator.props = {
  50. parent: Tuto_Page,
  51. midX: all.width / 2,
  52. y: 2069
  53. };
  54. indicator_Fn = function(num) {
  55. var k, ref1, results;
  56. results = [];
  57. for (i = k = 0, ref1 = tutoArr.length; 0 <= ref1 ? k <= ref1 : k >= ref1; i = 0 <= ref1 ? ++k : --k) {
  58. if (i === num) {
  59. results.push(indicator.children[i].opacity = cateIndi.children[i].opacity = 1);
  60. } else {
  61. if (i < indicator.children.length) {
  62. indicator.children[i].opacity = 0.3;
  63. }
  64. if (i < cateIndi.children.length) {
  65. results.push(cateIndi.children[i].opacity = 0);
  66. } else {
  67. results.push(void 0);
  68. }
  69. }
  70. }
  71. return results;
  72. };
  73. indicator_Fn(0);
  74. skip.parent = Tuto_Page;
  75. phone.parent = Tuto_Page;
  76. skip.style.cursor = "pointer";
  77. skip.onTap(function() {
  78. return Main_Page.snapToPage(Last);
  79. });
  80. bt_arrow.style.cursor = "pointer";
  81. bt_arrow.onTap(function() {
  82. return Main_Page.snapToPage(Tuto_Page);
  83. });
  84. __layer_0__.onTap(function() {
  85. return window.HybridApp.onClickJoin();
  86. });
  87. Main_Page_Lock = false;
  88. Main_Page.on("change:currentPage", function() {
  89. if (this.currentPage === Tuto_Page && !Main_Page_Lock) {
  90. Utils.delay(.5, function() {
  91. return Main_Page_Lock = true;
  92. });
  93. motion_Fn(0, true);
  94. screenLanding();
  95. }
  96. if (this.currentPage === Tuto_Page) {
  97. this.scrollHorizontal = false;
  98. TweenMax.delayedCall(.5, bgReset);
  99. if (Tuto_Page.currentPage === pArr[pArr.length - 1]) {
  100. this.scrollHorizontal = true;
  101. }
  102. } else {
  103. this.scrollHorizontal = true;
  104. }
  105. if (this.currentPage === Last) {
  106. TweenMax.to(lastTxt0, 1, {
  107. y: 22,
  108. ease: Quint.easeOut,
  109. delay: .3
  110. });
  111. TweenMax.to(lastTxt1, 1, {
  112. y: 28,
  113. ease: Quint.easeOut,
  114. delay: .2 + .3
  115. });
  116. return bg.animate({
  117. properties: {
  118. scale: 1.2
  119. },
  120. curve: Bezier.ease,
  121. time: 20
  122. });
  123. }
  124. });
  125. Main_Page.content.on("change:x", function() {
  126. if (Main_Page_Lock) {
  127. if (this.x > -all.width) {
  128. return this.x = -all.width;
  129. }
  130. }
  131. });
  132. Main_Page.content.onAnimationEnd(function() {
  133. if (Utils.round(this.x) === -all.width * 2) {
  134. return Tuto_Page.snapToPage(pArr[pArr.length - 1], false);
  135. }
  136. });
  137. bgReset = function() {
  138. bg.animateStop();
  139. bg.scale = 1;
  140. TweenMax.killTweensOf(lastTxt0);
  141. TweenMax.killTweensOf(lastTxt1);
  142. lastTxt0.y = lastTxt0.parent.height;
  143. return lastTxt1.y = lastTxt1.parent.height;
  144. };
  145. cateBg.parent = Tuto_Page;
  146. cateBg.opacity = 0;
  147. cateArr = [cate0, cate1, cate2, cate3, cate4];
  148. for (i = k = 0, len = cateArr.length; k < len; i = ++k) {
  149. c = cateArr[i];
  150. if (i > 0) {
  151. c.props = {
  152. parent: cateBg,
  153. midX: cate0.midX,
  154. y: cate0.y,
  155. opacity: 0
  156. };
  157. }
  158. }
  159. cateBg_show = function(num) {
  160. var l, len1;
  161. for (i = l = 0, len1 = cateArr.length; l < len1; i = ++l) {
  162. c = cateArr[i];
  163. if (i === num) {
  164. c.opacity = 1;
  165. } else {
  166. c.opacity = 0;
  167. }
  168. }
  169. cateBg.animateStop();
  170. cateBg.scale = 0;
  171. cateBg.opacity = 1;
  172. if (num === 4) {
  173. cateBg.y = 740;
  174. } else {
  175. cateBg.y = 463;
  176. }
  177. if (num === 3) {
  178. cateBg.children[1].opacity = 0;
  179. cateBg.children[0].opacity = 1;
  180. } else {
  181. cateBg.children[1].opacity = 1;
  182. cateBg.children[0].opacity = 0;
  183. }
  184. return cateBg.animate({
  185. scale: 1,
  186. options: {
  187. curve: Spring({
  188. damping: .5
  189. }),
  190. time: .7
  191. }
  192. });
  193. };
  194. cateBg_hide = function() {
  195. cateBg.animateStop();
  196. return cateBg.animate({
  197. properties: {
  198. opacity: 0
  199. },
  200. time: .2
  201. });
  202. };
  203. Tuto_Page.on("change:currentPage", function() {
  204. var num;
  205. num = this.horizontalPageIndex(this.currentPage);
  206. indicator_Fn(num);
  207. cateBg_hide();
  208. TweenMax.killDelayedCallsTo(cateBg_show);
  209. return motion_Fn(num);
  210. });
  211. Tuto_Page.content.on("change:x", function() {
  212. if (Utils.round(this.x) <= -all.width * (pArr.length - 1)) {
  213. return Main_Page.scrollHorizontal = true;
  214. } else {
  215. return Main_Page.scrollHorizontal = false;
  216. }
  217. });
  218. screenLanding = function() {
  219. var FF;
  220. FF = function() {
  221. contentImg.animate({
  222. properties: {
  223. y: 180
  224. },
  225. curve: Bezier(0.4, 0, 0.2, 1),
  226. time: .5
  227. });
  228. topArea.animate({
  229. properties: {
  230. y: -40
  231. },
  232. curve: Bezier(0.4, 0, 0.2, 1),
  233. time: .5
  234. });
  235. return TweenMax.delayedCall(.15, cateBg_show, [0]);
  236. };
  237. TweenMax.to(topArea, 1, {
  238. y: 61,
  239. ease: Quint.easeOut,
  240. delay: .5
  241. });
  242. TweenMax.to(contentImg, 1, {
  243. y: 679,
  244. ease: Quint.easeOut,
  245. delay: .5,
  246. onComplete: FF
  247. });
  248. TweenMax.to(cateIndi, 1, {
  249. opacity: 1,
  250. ease: Quint.easeOut,
  251. delay: .5
  252. });
  253. TweenMax.to(icon, 1, {
  254. opacity: 1,
  255. ease: Quint.easeOut,
  256. delay: .5
  257. });
  258. TweenMax.to(txt0, 1, {
  259. y: 9,
  260. ease: Quint.easeOut,
  261. delay: .5
  262. });
  263. TweenMax.to(txt1, 1, {
  264. y: 9,
  265. ease: Quint.easeOut,
  266. delay: .5
  267. });
  268. return icon.animate({
  269. properties: {
  270. rotation: 60
  271. },
  272. curve: Bezier.linear,
  273. time: 3
  274. });
  275. };
  276. motion_Fn = function(num, first) {
  277. if (first === void 0) {
  278. first = false;
  279. }
  280. if (num === 0) {
  281. if (first === false) {
  282. TweenMax.delayedCall(.5, cateBg_show, [0]);
  283. }
  284. return Dummy.animate({
  285. properties: {
  286. y: 0
  287. },
  288. curve: "spring(500,50,0)"
  289. });
  290. } else {
  291. TweenMax.delayedCall(.5, cateBg_show, [num]);
  292. if (num === pArr.length - 1) {
  293. return Dummy.animate({
  294. properties: {
  295. y: -2970
  296. },
  297. curve: "spring(500,50,0)"
  298. });
  299. } else {
  300. return Dummy.animate({
  301. properties: {
  302. y: -810 * num
  303. },
  304. curve: "spring(500,50,0)"
  305. });
  306. }
  307. }
  308. };
  309. contentImg.on("change:y", function() {
  310. return infoArea.y = Utils.modulate(this.y, [679, 679 - 478], [139, 139 - 478], true);
  311. });
  312. firstSetting = function() {
  313. topArea.y = -40;
  314. contentImg.y = 1139;
  315. cateIndi.opacity = icon.opacity = 0;
  316. txt0.y = txt0.parent.height;
  317. txt1.y = txt1.parent.height;
  318. return bt_arrow.opacity = 0;
  319. };
  320. logo.opacity = 0;
  321. titleArr = [title0, title1, title2];
  322. for (l = 0, len1 = titleArr.length; l < len1; l++) {
  323. t = titleArr[l];
  324. t.dy = t.y;
  325. t.y = t.parent.height;
  326. }
  327. titleAni = function() {
  328. var len2, m, results;
  329. logo.animate({
  330. properties: {
  331. opacity: 1
  332. },
  333. curve: Bezier.ease,
  334. time: .5
  335. });
  336. bt_arrow.animate({
  337. properties: {
  338. opacity: 1
  339. },
  340. curve: Bezier.ease,
  341. time: .5
  342. });
  343. results = [];
  344. for (i = m = 0, len2 = titleArr.length; m < len2; i = ++m) {
  345. t = titleArr[i];
  346. results.push(t.animate({
  347. y: t.dy,
  348. options: {
  349. curve: Bezier(0, 0, 0, 1),
  350. time: 1,
  351. delay: .5 + i * .15
  352. }
  353. }));
  354. }
  355. return results;
  356. };
  357. fisrt_ani = function() {
  358. return titleAni();
  359. };
  360. firstSetting();
  361. vinylc_loading = function(options) {
  362. var ixdSrc, loadingImgSize, spin;
  363. if (options == null) {
  364. options = {
  365. vcSize: 60 * 3,
  366. spinSize: 140 * 3
  367. };
  368. }
  369. ixdSrc = "framer/images/";
  370. loadingImgSize = options.vcSize;
  371. this.loadingLayer = new Layer({
  372. name: "loadingLayer",
  373. parent: all,
  374. size: all.size,
  375. backgroundColor: "white",
  376. opacity: 0.95
  377. });
  378. this.loadingLayer.states["delete"] = {
  379. opacity: 0,
  380. options: {
  381. curve: Bezier.easeOut,
  382. time: 0.1
  383. }
  384. };
  385. this.loadingLayer.onAnimationEnd(function() {
  386. if (this.opacity === 0) {
  387. return this.destroy();
  388. }
  389. });
  390. spin = new SpinLoader({
  391. parent: this.loadingLayer,
  392. size: options.spinSize,
  393. thickness: 3,
  394. color: "#7e00ff",
  395. changeColor: true
  396. });
  397. spin.center();
  398. return spin.start();
  399. };
  400. vinylc_loading();
  401. appPlay = function() {
  402. switch (document.readyState) {
  403. case 'loading':
  404. break;
  405. case 'interactive':
  406. break;
  407. case 'complete':
  408. clearInterval(loadInterval);
  409. return Utils.delay(1, function() {
  410. this.loadingLayer.animate("delete");
  411. return Utils.delay(0.5, function() {
  412. return fisrt_ani();
  413. });
  414. });
  415. }
  416. };
  417. loadInterval = Utils.interval(0.1, function() {
  418. return appPlay();
  419. });