Commit 6dae2e0f 6dae2e0f163187accda208ec3ce1a3618167eba0 by jinwawa

complete SceneRecommend

0 parents
Showing 112 changed files with 9111 additions and 0 deletions
1 #/////////////////////////////////////////////////////////////////////////////
2 # Fireball Projects
3 #/////////////////////////////////////////////////////////////////////////////
4
5 /library/
6 /temp/
7 /local/
8 /build/
9
10 #/////////////////////////////////////////////////////////////////////////////
11 # npm files
12 #/////////////////////////////////////////////////////////////////////////////
13
14 npm-debug.log
15 node_modules/
16
17 #/////////////////////////////////////////////////////////////////////////////
18 # Logs and databases
19 #/////////////////////////////////////////////////////////////////////////////
20
21 *.log
22 *.sql
23 *.sqlite
24
25 #/////////////////////////////////////////////////////////////////////////////
26 # files for debugger
27 #/////////////////////////////////////////////////////////////////////////////
28
29 *.sln
30 *.csproj
31 *.pidb
32 *.unityproj
33 *.suo
34
35 #/////////////////////////////////////////////////////////////////////////////
36 # OS generated files
37 #/////////////////////////////////////////////////////////////////////////////
38
39 .DS_Store
40 ehthumbs.db
41 Thumbs.db
42
43 #/////////////////////////////////////////////////////////////////////////////
44 # WebStorm files
45 #/////////////////////////////////////////////////////////////////////////////
46
47 .idea/
48
49 #//////////////////////////
50 # VS Code files
51 #//////////////////////////
52
53 .vscode/
1 # hello-world
2 Hello world new project template.
1 {
2 "ver": "1.0.1",
3 "uuid": "29f52784-2fca-467b-92e7-8fd9ef8c57b7",
4 "isGroup": false,
5 "subMetas": {}
6 }
...\ No newline at end of file ...\ No newline at end of file
1 [
2 {
3 "__type__": "cc.SceneAsset",
4 "_name": "",
5 "_objFlags": 0,
6 "_native": "",
7 "scene": {
8 "__id__": 1
9 }
10 },
11 {
12 "__type__": "cc.Scene",
13 "_objFlags": 0,
14 "_parent": null,
15 "_children": [
16 {
17 "__id__": 2
18 }
19 ],
20 "_active": true,
21 "_level": 0,
22 "_components": [],
23 "_prefab": null,
24 "_opacity": 255,
25 "_color": {
26 "__type__": "cc.Color",
27 "r": 255,
28 "g": 255,
29 "b": 255,
30 "a": 255
31 },
32 "_contentSize": {
33 "__type__": "cc.Size",
34 "width": 0,
35 "height": 0
36 },
37 "_anchorPoint": {
38 "__type__": "cc.Vec2",
39 "x": 0,
40 "y": 0
41 },
42 "_scale": {
43 "__type__": "cc.Vec3",
44 "x": 1,
45 "y": 1,
46 "z": 1
47 },
48 "_eulerAngles": {
49 "__type__": "cc.Vec3",
50 "x": 0,
51 "y": 0,
52 "z": 0
53 },
54 "_is3DNode": true,
55 "groupIndex": 0,
56 "autoReleaseAssets": false,
57 "_id": "2d2f792f-a40c-49bb-a189-ed176a246e49"
58 },
59 {
60 "__type__": "cc.Node",
61 "_name": "Canvas",
62 "_objFlags": 0,
63 "_parent": {
64 "__id__": 1
65 },
66 "_children": [
67 {
68 "__id__": 3
69 },
70 {
71 "__id__": 5
72 },
73 {
74 "__id__": 17
75 },
76 {
77 "__id__": 30
78 }
79 ],
80 "_active": true,
81 "_level": 0,
82 "_components": [
83 {
84 "__id__": 34
85 },
86 {
87 "__id__": 35
88 },
89 {
90 "__id__": 39
91 }
92 ],
93 "_prefab": null,
94 "_opacity": 255,
95 "_color": {
96 "__type__": "cc.Color",
97 "r": 252,
98 "g": 252,
99 "b": 252,
100 "a": 255
101 },
102 "_contentSize": {
103 "__type__": "cc.Size",
104 "width": 1280,
105 "height": 720
106 },
107 "_anchorPoint": {
108 "__type__": "cc.Vec2",
109 "x": 0.5,
110 "y": 0.5
111 },
112 "_position": {
113 "__type__": "cc.Vec3",
114 "x": 640,
115 "y": 360,
116 "z": 0
117 },
118 "_scale": {
119 "__type__": "cc.Vec3",
120 "x": 1,
121 "y": 1,
122 "z": 1
123 },
124 "_eulerAngles": {
125 "__type__": "cc.Vec3",
126 "x": 0,
127 "y": 0,
128 "z": 0
129 },
130 "_skewX": 0,
131 "_skewY": 0,
132 "_is3DNode": false,
133 "groupIndex": 0,
134 "_rotationX": 0,
135 "_rotationY": 0,
136 "_id": "a286bbGknJLZpRpxROV6M94"
137 },
138 {
139 "__type__": "cc.Node",
140 "_name": "Main Camera",
141 "_objFlags": 0,
142 "_parent": {
143 "__id__": 2
144 },
145 "_children": [],
146 "_active": true,
147 "_level": 1,
148 "_components": [
149 {
150 "__id__": 4
151 }
152 ],
153 "_prefab": null,
154 "_opacity": 255,
155 "_color": {
156 "__type__": "cc.Color",
157 "r": 255,
158 "g": 255,
159 "b": 255,
160 "a": 255
161 },
162 "_contentSize": {
163 "__type__": "cc.Size",
164 "width": 0,
165 "height": 0
166 },
167 "_anchorPoint": {
168 "__type__": "cc.Vec2",
169 "x": 0.5,
170 "y": 0.5
171 },
172 "_position": {
173 "__type__": "cc.Vec3",
174 "x": 0,
175 "y": 0,
176 "z": 0
177 },
178 "_scale": {
179 "__type__": "cc.Vec3",
180 "x": 1,
181 "y": 1,
182 "z": 1
183 },
184 "_eulerAngles": {
185 "__type__": "cc.Vec3",
186 "x": 0,
187 "y": 0,
188 "z": 0
189 },
190 "_skewX": 0,
191 "_skewY": 0,
192 "_is3DNode": false,
193 "groupIndex": 0,
194 "_rotationX": 0,
195 "_rotationY": 0,
196 "_id": "bajsC4KotFLZ6XLFLKnycL"
197 },
198 {
199 "__type__": "cc.Camera",
200 "_name": "",
201 "_objFlags": 0,
202 "node": {
203 "__id__": 3
204 },
205 "_enabled": true,
206 "_cullingMask": 4294967295,
207 "_clearFlags": 7,
208 "_backgroundColor": {
209 "__type__": "cc.Color",
210 "r": 0,
211 "g": 0,
212 "b": 0,
213 "a": 255
214 },
215 "_depth": -1,
216 "_zoomRatio": 1,
217 "_targetTexture": null,
218 "_fov": 60,
219 "_orthoSize": 10,
220 "_nearClip": 1,
221 "_farClip": 4096,
222 "_ortho": true,
223 "_rect": {
224 "__type__": "cc.Rect",
225 "x": 0,
226 "y": 0,
227 "width": 1,
228 "height": 1
229 },
230 "_renderStages": 1,
231 "_id": "c7r5+B15dD56dUBiNj+0KH"
232 },
233 {
234 "__type__": "cc.Node",
235 "_name": "ScrollContent",
236 "_objFlags": 0,
237 "_parent": {
238 "__id__": 2
239 },
240 "_children": [
241 {
242 "__id__": 6
243 },
244 {
245 "__id__": 9
246 },
247 {
248 "__id__": 13
249 }
250 ],
251 "_active": true,
252 "_level": 1,
253 "_components": [],
254 "_prefab": null,
255 "_opacity": 255,
256 "_color": {
257 "__type__": "cc.Color",
258 "r": 255,
259 "g": 255,
260 "b": 255,
261 "a": 255
262 },
263 "_contentSize": {
264 "__type__": "cc.Size",
265 "width": 1280,
266 "height": 0
267 },
268 "_anchorPoint": {
269 "__type__": "cc.Vec2",
270 "x": 0.5,
271 "y": 0.5
272 },
273 "_position": {
274 "__type__": "cc.Vec3",
275 "x": 0,
276 "y": 360,
277 "z": 0
278 },
279 "_scale": {
280 "__type__": "cc.Vec3",
281 "x": 1,
282 "y": 1,
283 "z": 1
284 },
285 "_eulerAngles": {
286 "__type__": "cc.Vec3",
287 "x": 0,
288 "y": 0,
289 "z": 0
290 },
291 "_skewX": 0,
292 "_skewY": 0,
293 "_is3DNode": false,
294 "groupIndex": 0,
295 "_id": "d5YgFh8GFGSYo+TkcU3i8/"
296 },
297 {
298 "__type__": "cc.Node",
299 "_name": "background",
300 "_objFlags": 0,
301 "_parent": {
302 "__id__": 5
303 },
304 "_children": [],
305 "_active": true,
306 "_level": 2,
307 "_components": [
308 {
309 "__id__": 7
310 },
311 {
312 "__id__": 8
313 }
314 ],
315 "_prefab": null,
316 "_opacity": 255,
317 "_color": {
318 "__type__": "cc.Color",
319 "r": 255,
320 "g": 255,
321 "b": 255,
322 "a": 255
323 },
324 "_contentSize": {
325 "__type__": "cc.Size",
326 "width": 1280,
327 "height": 2885
328 },
329 "_anchorPoint": {
330 "__type__": "cc.Vec2",
331 "x": 0.5,
332 "y": 0.5
333 },
334 "_position": {
335 "__type__": "cc.Vec3",
336 "x": 0,
337 "y": -1442.5,
338 "z": 0
339 },
340 "_scale": {
341 "__type__": "cc.Vec3",
342 "x": 1,
343 "y": 1,
344 "z": 1
345 },
346 "_eulerAngles": {
347 "__type__": "cc.Vec3",
348 "x": 0,
349 "y": 0,
350 "z": 0
351 },
352 "_skewX": 0,
353 "_skewY": 0,
354 "_is3DNode": false,
355 "groupIndex": 0,
356 "_rotationX": 0,
357 "_rotationY": 0,
358 "_id": "e2e0crkOLxGrpMxpbC4iQg1"
359 },
360 {
361 "__type__": "cc.Widget",
362 "_name": "",
363 "_objFlags": 0,
364 "node": {
365 "__id__": 6
366 },
367 "_enabled": true,
368 "alignMode": 1,
369 "_target": null,
370 "_alignFlags": 9,
371 "_left": 0,
372 "_right": 507.8855000000003,
373 "_top": 0,
374 "_bottom": -290.2645000000001,
375 "_verticalCenter": 0,
376 "_horizontalCenter": 0,
377 "_isAbsLeft": true,
378 "_isAbsRight": true,
379 "_isAbsTop": true,
380 "_isAbsBottom": true,
381 "_isAbsHorizontalCenter": true,
382 "_isAbsVerticalCenter": true,
383 "_originalWidth": 200,
384 "_originalHeight": 150,
385 "_id": "86+yud7pFDSrM+lsxByQvE"
386 },
387 {
388 "__type__": "cc.Sprite",
389 "_name": "",
390 "_objFlags": 0,
391 "node": {
392 "__id__": 6
393 },
394 "_enabled": true,
395 "_materials": [
396 {
397 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
398 }
399 ],
400 "_srcBlendFactor": 770,
401 "_dstBlendFactor": 771,
402 "_spriteFrame": {
403 "__uuid__": "eab92123-65ec-44fd-b9af-7b80346d5e64"
404 },
405 "_type": 0,
406 "_sizeMode": 1,
407 "_fillType": 0,
408 "_fillCenter": {
409 "__type__": "cc.Vec2",
410 "x": 0,
411 "y": 0
412 },
413 "_fillStart": 0,
414 "_fillRange": 0,
415 "_isTrimmedMode": true,
416 "_atlas": null,
417 "_id": "6eJ8mvvn9A6o5pdFTP+tE3"
418 },
419 {
420 "__type__": "cc.Node",
421 "_name": "RightRecommendLayout",
422 "_objFlags": 0,
423 "_parent": {
424 "__id__": 5
425 },
426 "_children": [],
427 "_active": true,
428 "_level": 2,
429 "_components": [
430 {
431 "__id__": 10
432 },
433 {
434 "__id__": 11
435 },
436 {
437 "__id__": 12
438 }
439 ],
440 "_prefab": null,
441 "_opacity": 255,
442 "_color": {
443 "__type__": "cc.Color",
444 "r": 255,
445 "g": 255,
446 "b": 255,
447 "a": 255
448 },
449 "_contentSize": {
450 "__type__": "cc.Size",
451 "width": 200,
452 "height": 150
453 },
454 "_anchorPoint": {
455 "__type__": "cc.Vec2",
456 "x": 0.5,
457 "y": 0.5
458 },
459 "_position": {
460 "__type__": "cc.Vec3",
461 "x": 0,
462 "y": -720,
463 "z": 0
464 },
465 "_scale": {
466 "__type__": "cc.Vec3",
467 "x": 1,
468 "y": 1,
469 "z": 1
470 },
471 "_eulerAngles": {
472 "__type__": "cc.Vec3",
473 "x": 0,
474 "y": 0,
475 "z": 0
476 },
477 "_skewX": 0,
478 "_skewY": 0,
479 "_is3DNode": false,
480 "groupIndex": 0,
481 "_rotationX": 0,
482 "_rotationY": 0,
483 "_id": "51WwK6fT5MhIC+kSgz1URv"
484 },
485 {
486 "__type__": "cc.Sprite",
487 "_name": "",
488 "_objFlags": 0,
489 "node": {
490 "__id__": 9
491 },
492 "_enabled": true,
493 "_materials": [
494 {
495 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
496 }
497 ],
498 "_srcBlendFactor": 770,
499 "_dstBlendFactor": 771,
500 "_spriteFrame": null,
501 "_type": 1,
502 "_sizeMode": 0,
503 "_fillType": 0,
504 "_fillCenter": {
505 "__type__": "cc.Vec2",
506 "x": 0,
507 "y": 0
508 },
509 "_fillStart": 0,
510 "_fillRange": 0,
511 "_isTrimmedMode": true,
512 "_atlas": null,
513 "_id": "f1MeZlDVRD2KNNosLBuU/N"
514 },
515 {
516 "__type__": "cc.Layout",
517 "_name": "",
518 "_objFlags": 0,
519 "node": {
520 "__id__": 9
521 },
522 "_enabled": true,
523 "_layoutSize": {
524 "__type__": "cc.Size",
525 "width": 200,
526 "height": 150
527 },
528 "_resize": 0,
529 "_N$layoutType": 0,
530 "_N$padding": 0,
531 "_N$cellSize": {
532 "__type__": "cc.Size",
533 "width": 40,
534 "height": 40
535 },
536 "_N$startAxis": 0,
537 "_N$paddingLeft": 0,
538 "_N$paddingRight": 0,
539 "_N$paddingTop": 0,
540 "_N$paddingBottom": 0,
541 "_N$spacingX": 0,
542 "_N$spacingY": 0,
543 "_N$verticalDirection": 1,
544 "_N$horizontalDirection": 0,
545 "_N$affectedByScale": false,
546 "_id": "b3BQZMZyBBxJl5pXvEm5lx"
547 },
548 {
549 "__type__": "cc.Widget",
550 "_name": "",
551 "_objFlags": 0,
552 "node": {
553 "__id__": 9
554 },
555 "_enabled": true,
556 "alignMode": 1,
557 "_target": null,
558 "_alignFlags": 9,
559 "_left": 540,
560 "_right": 0,
561 "_top": 645,
562 "_bottom": 0,
563 "_verticalCenter": 0,
564 "_horizontalCenter": 0,
565 "_isAbsLeft": true,
566 "_isAbsRight": true,
567 "_isAbsTop": true,
568 "_isAbsBottom": true,
569 "_isAbsHorizontalCenter": true,
570 "_isAbsVerticalCenter": true,
571 "_originalWidth": 0,
572 "_originalHeight": 0,
573 "_id": "57pm3qSI5K0LQU8JHl25iQ"
574 },
575 {
576 "__type__": "cc.Node",
577 "_name": "RightTopLayout",
578 "_objFlags": 0,
579 "_parent": {
580 "__id__": 5
581 },
582 "_children": [],
583 "_active": true,
584 "_level": 2,
585 "_components": [
586 {
587 "__id__": 14
588 },
589 {
590 "__id__": 15
591 },
592 {
593 "__id__": 16
594 }
595 ],
596 "_prefab": null,
597 "_opacity": 255,
598 "_color": {
599 "__type__": "cc.Color",
600 "r": 255,
601 "g": 255,
602 "b": 255,
603 "a": 255
604 },
605 "_contentSize": {
606 "__type__": "cc.Size",
607 "width": 1280,
608 "height": 48
609 },
610 "_anchorPoint": {
611 "__type__": "cc.Vec2",
612 "x": 19.88,
613 "y": -4.06
614 },
615 "_position": {
616 "__type__": "cc.Vec3",
617 "x": 24806.399999999998,
618 "y": -242.88,
619 "z": 0
620 },
621 "_scale": {
622 "__type__": "cc.Vec3",
623 "x": 1,
624 "y": 1,
625 "z": 1
626 },
627 "_eulerAngles": {
628 "__type__": "cc.Vec3",
629 "x": 0,
630 "y": 0,
631 "z": 0
632 },
633 "_skewX": 0,
634 "_skewY": 0,
635 "_is3DNode": false,
636 "groupIndex": 0,
637 "_rotationX": 0,
638 "_rotationY": 0,
639 "_id": "35Jp4SXkxGI43N2Ggf1UCc"
640 },
641 {
642 "__type__": "cc.Sprite",
643 "_name": "",
644 "_objFlags": 0,
645 "node": {
646 "__id__": 13
647 },
648 "_enabled": true,
649 "_materials": [
650 {
651 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
652 }
653 ],
654 "_srcBlendFactor": 770,
655 "_dstBlendFactor": 771,
656 "_spriteFrame": null,
657 "_type": 1,
658 "_sizeMode": 0,
659 "_fillType": 0,
660 "_fillCenter": {
661 "__type__": "cc.Vec2",
662 "x": 0,
663 "y": 0
664 },
665 "_fillStart": 0,
666 "_fillRange": 0,
667 "_isTrimmedMode": true,
668 "_atlas": null,
669 "_id": "3eSf6yzglJmJ+mX2/JDKVE"
670 },
671 {
672 "__type__": "cc.Layout",
673 "_name": "",
674 "_objFlags": 0,
675 "node": {
676 "__id__": 13
677 },
678 "_enabled": false,
679 "_layoutSize": {
680 "__type__": "cc.Size",
681 "width": 1280,
682 "height": 48
683 },
684 "_resize": 1,
685 "_N$layoutType": 0,
686 "_N$padding": 0,
687 "_N$cellSize": {
688 "__type__": "cc.Size",
689 "width": 40,
690 "height": 40
691 },
692 "_N$startAxis": 0,
693 "_N$paddingLeft": 0,
694 "_N$paddingRight": 0,
695 "_N$paddingTop": 0,
696 "_N$paddingBottom": 0,
697 "_N$spacingX": 0,
698 "_N$spacingY": 0,
699 "_N$verticalDirection": 1,
700 "_N$horizontalDirection": 0,
701 "_N$affectedByScale": false,
702 "_id": "56DFhkMhtPSYuyBBgvO6rZ"
703 },
704 {
705 "__type__": "cc.Widget",
706 "_name": "",
707 "_objFlags": 0,
708 "node": {
709 "__id__": 13
710 },
711 "_enabled": true,
712 "alignMode": 2,
713 "_target": null,
714 "_alignFlags": 9,
715 "_left": 0,
716 "_right": 0,
717 "_top": 0,
718 "_bottom": 0,
719 "_verticalCenter": 0,
720 "_horizontalCenter": 0,
721 "_isAbsLeft": true,
722 "_isAbsRight": true,
723 "_isAbsTop": true,
724 "_isAbsBottom": true,
725 "_isAbsHorizontalCenter": true,
726 "_isAbsVerticalCenter": true,
727 "_originalWidth": 0,
728 "_originalHeight": 0,
729 "_id": "22pn9r5DZCzY8gDnbvqZki"
730 },
731 {
732 "__type__": "cc.Node",
733 "_name": "TopTitle",
734 "_objFlags": 0,
735 "_parent": {
736 "__id__": 2
737 },
738 "_children": [
739 {
740 "__id__": 18
741 },
742 {
743 "__id__": 21
744 },
745 {
746 "__id__": 24
747 },
748 {
749 "__id__": 27
750 }
751 ],
752 "_active": true,
753 "_level": 1,
754 "_components": [],
755 "_prefab": null,
756 "_opacity": 255,
757 "_color": {
758 "__type__": "cc.Color",
759 "r": 255,
760 "g": 255,
761 "b": 255,
762 "a": 255
763 },
764 "_contentSize": {
765 "__type__": "cc.Size",
766 "width": 1280,
767 "height": 720
768 },
769 "_anchorPoint": {
770 "__type__": "cc.Vec2",
771 "x": 0.5,
772 "y": 0.5
773 },
774 "_position": {
775 "__type__": "cc.Vec3",
776 "x": 0,
777 "y": 0,
778 "z": 0
779 },
780 "_scale": {
781 "__type__": "cc.Vec3",
782 "x": 1,
783 "y": 1,
784 "z": 1
785 },
786 "_eulerAngles": {
787 "__type__": "cc.Vec3",
788 "x": 0,
789 "y": 0,
790 "z": 0
791 },
792 "_skewX": 0,
793 "_skewY": 0,
794 "_is3DNode": false,
795 "groupIndex": 0,
796 "_id": "cdi5cODkZFr5VmgKy1vTNk"
797 },
798 {
799 "__type__": "cc.Node",
800 "_name": "logo",
801 "_objFlags": 0,
802 "_parent": {
803 "__id__": 17
804 },
805 "_children": [],
806 "_active": true,
807 "_level": 2,
808 "_components": [
809 {
810 "__id__": 19
811 },
812 {
813 "__id__": 20
814 }
815 ],
816 "_prefab": null,
817 "_opacity": 255,
818 "_color": {
819 "__type__": "cc.Color",
820 "r": 255,
821 "g": 255,
822 "b": 255,
823 "a": 255
824 },
825 "_contentSize": {
826 "__type__": "cc.Size",
827 "width": 649,
828 "height": 466
829 },
830 "_anchorPoint": {
831 "__type__": "cc.Vec2",
832 "x": 0.5,
833 "y": 0.5
834 },
835 "_position": {
836 "__type__": "cc.Vec3",
837 "x": -509.073,
838 "y": 311.974,
839 "z": 0
840 },
841 "_scale": {
842 "__type__": "cc.Vec3",
843 "x": 0.2,
844 "y": 0.2,
845 "z": 1
846 },
847 "_eulerAngles": {
848 "__type__": "cc.Vec3",
849 "x": 0,
850 "y": 0,
851 "z": 0
852 },
853 "_skewX": 0,
854 "_skewY": 0,
855 "_is3DNode": false,
856 "groupIndex": 0,
857 "_id": "beZ17y2HxMJLrQRbuVHIo3"
858 },
859 {
860 "__type__": "cc.Sprite",
861 "_name": "",
862 "_objFlags": 0,
863 "node": {
864 "__id__": 18
865 },
866 "_enabled": true,
867 "_materials": [
868 {
869 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
870 }
871 ],
872 "_srcBlendFactor": 770,
873 "_dstBlendFactor": 771,
874 "_spriteFrame": {
875 "__uuid__": "1af31773-8501-40fe-96e5-ec700c03162c"
876 },
877 "_type": 0,
878 "_sizeMode": 1,
879 "_fillType": 0,
880 "_fillCenter": {
881 "__type__": "cc.Vec2",
882 "x": 0,
883 "y": 0
884 },
885 "_fillStart": 0,
886 "_fillRange": 0,
887 "_isTrimmedMode": true,
888 "_atlas": null,
889 "_id": "534Ob4DUBNoYl4CjIl8U1/"
890 },
891 {
892 "__type__": "cc.Widget",
893 "_name": "",
894 "_objFlags": 0,
895 "node": {
896 "__id__": 18
897 },
898 "_enabled": true,
899 "alignMode": 1,
900 "_target": null,
901 "_alignFlags": 9,
902 "_left": 66.02700000000004,
903 "_right": 0,
904 "_top": 1.4259999999999877,
905 "_bottom": 0,
906 "_verticalCenter": 0,
907 "_horizontalCenter": 0,
908 "_isAbsLeft": true,
909 "_isAbsRight": true,
910 "_isAbsTop": true,
911 "_isAbsBottom": true,
912 "_isAbsHorizontalCenter": true,
913 "_isAbsVerticalCenter": true,
914 "_originalWidth": 0,
915 "_originalHeight": 0,
916 "_id": "00CarZ9TlCQb53TyqcYV2a"
917 },
918 {
919 "__type__": "cc.Node",
920 "_name": "my",
921 "_objFlags": 0,
922 "_parent": {
923 "__id__": 17
924 },
925 "_children": [],
926 "_active": false,
927 "_level": 2,
928 "_components": [
929 {
930 "__id__": 22
931 },
932 {
933 "__id__": 23
934 }
935 ],
936 "_prefab": null,
937 "_opacity": 255,
938 "_color": {
939 "__type__": "cc.Color",
940 "r": 255,
941 "g": 255,
942 "b": 255,
943 "a": 255
944 },
945 "_contentSize": {
946 "__type__": "cc.Size",
947 "width": 127,
948 "height": 48
949 },
950 "_anchorPoint": {
951 "__type__": "cc.Vec2",
952 "x": 0.5,
953 "y": 0.5
954 },
955 "_position": {
956 "__type__": "cc.Vec3",
957 "x": 299.5,
958 "y": 310,
959 "z": 0
960 },
961 "_scale": {
962 "__type__": "cc.Vec3",
963 "x": 1,
964 "y": 1,
965 "z": 1
966 },
967 "_eulerAngles": {
968 "__type__": "cc.Vec3",
969 "x": 0,
970 "y": 0,
971 "z": 0
972 },
973 "_skewX": 0,
974 "_skewY": 0,
975 "_is3DNode": false,
976 "groupIndex": 0,
977 "_id": "f9kqgyMlpC3ozF7o6pqj+s"
978 },
979 {
980 "__type__": "cc.Sprite",
981 "_name": "",
982 "_objFlags": 0,
983 "node": {
984 "__id__": 21
985 },
986 "_enabled": true,
987 "_materials": [
988 {
989 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
990 }
991 ],
992 "_srcBlendFactor": 770,
993 "_dstBlendFactor": 771,
994 "_spriteFrame": {
995 "__uuid__": "e74a5b86-b958-43cf-a583-6ebdeb00e071"
996 },
997 "_type": 0,
998 "_sizeMode": 1,
999 "_fillType": 0,
1000 "_fillCenter": {
1001 "__type__": "cc.Vec2",
1002 "x": 0,
1003 "y": 0
1004 },
1005 "_fillStart": 0,
1006 "_fillRange": 0,
1007 "_isTrimmedMode": true,
1008 "_atlas": null,
1009 "_id": "350BsuLatCF7YLMe9Kd4P5"
1010 },
1011 {
1012 "__type__": "cc.Widget",
1013 "_name": "",
1014 "_objFlags": 0,
1015 "node": {
1016 "__id__": 21
1017 },
1018 "_enabled": true,
1019 "alignMode": 1,
1020 "_target": null,
1021 "_alignFlags": 9,
1022 "_left": 876,
1023 "_right": 0,
1024 "_top": 26,
1025 "_bottom": 0,
1026 "_verticalCenter": 0,
1027 "_horizontalCenter": 0,
1028 "_isAbsLeft": true,
1029 "_isAbsRight": true,
1030 "_isAbsTop": true,
1031 "_isAbsBottom": true,
1032 "_isAbsHorizontalCenter": true,
1033 "_isAbsVerticalCenter": true,
1034 "_originalWidth": 0,
1035 "_originalHeight": 0,
1036 "_id": "30wK+HB5dN+K4M5Bv7RBpz"
1037 },
1038 {
1039 "__type__": "cc.Node",
1040 "_name": "history",
1041 "_objFlags": 0,
1042 "_parent": {
1043 "__id__": 17
1044 },
1045 "_children": [],
1046 "_active": false,
1047 "_level": 2,
1048 "_components": [
1049 {
1050 "__id__": 25
1051 },
1052 {
1053 "__id__": 26
1054 }
1055 ],
1056 "_prefab": null,
1057 "_opacity": 255,
1058 "_color": {
1059 "__type__": "cc.Color",
1060 "r": 255,
1061 "g": 255,
1062 "b": 255,
1063 "a": 255
1064 },
1065 "_contentSize": {
1066 "__type__": "cc.Size",
1067 "width": 108,
1068 "height": 48
1069 },
1070 "_anchorPoint": {
1071 "__type__": "cc.Vec2",
1072 "x": 0.5,
1073 "y": 0.5
1074 },
1075 "_position": {
1076 "__type__": "cc.Vec3",
1077 "x": 427,
1078 "y": 310,
1079 "z": 0
1080 },
1081 "_scale": {
1082 "__type__": "cc.Vec3",
1083 "x": 1,
1084 "y": 1,
1085 "z": 1
1086 },
1087 "_eulerAngles": {
1088 "__type__": "cc.Vec3",
1089 "x": 0,
1090 "y": 0,
1091 "z": 0
1092 },
1093 "_skewX": 0,
1094 "_skewY": 0,
1095 "_is3DNode": false,
1096 "groupIndex": 0,
1097 "_id": "5a8qPirfxKcJr1VsOOYd7K"
1098 },
1099 {
1100 "__type__": "cc.Sprite",
1101 "_name": "",
1102 "_objFlags": 0,
1103 "node": {
1104 "__id__": 24
1105 },
1106 "_enabled": true,
1107 "_materials": [
1108 {
1109 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
1110 }
1111 ],
1112 "_srcBlendFactor": 770,
1113 "_dstBlendFactor": 771,
1114 "_spriteFrame": {
1115 "__uuid__": "8c0c790b-4b85-43a1-8b6c-a8686b700df6"
1116 },
1117 "_type": 0,
1118 "_sizeMode": 1,
1119 "_fillType": 0,
1120 "_fillCenter": {
1121 "__type__": "cc.Vec2",
1122 "x": 0,
1123 "y": 0
1124 },
1125 "_fillStart": 0,
1126 "_fillRange": 0,
1127 "_isTrimmedMode": true,
1128 "_atlas": null,
1129 "_id": "73kwIf2EhLvbMiSYrTU8fZ"
1130 },
1131 {
1132 "__type__": "cc.Widget",
1133 "_name": "",
1134 "_objFlags": 0,
1135 "node": {
1136 "__id__": 24
1137 },
1138 "_enabled": true,
1139 "alignMode": 1,
1140 "_target": null,
1141 "_alignFlags": 9,
1142 "_left": 1013,
1143 "_right": 0,
1144 "_top": 26,
1145 "_bottom": 0,
1146 "_verticalCenter": 0,
1147 "_horizontalCenter": 0,
1148 "_isAbsLeft": true,
1149 "_isAbsRight": true,
1150 "_isAbsTop": true,
1151 "_isAbsBottom": true,
1152 "_isAbsHorizontalCenter": true,
1153 "_isAbsVerticalCenter": true,
1154 "_originalWidth": 0,
1155 "_originalHeight": 0,
1156 "_id": "91sa5VKrFDvIloUk0T/ZQm"
1157 },
1158 {
1159 "__type__": "cc.Node",
1160 "_name": "search",
1161 "_objFlags": 0,
1162 "_parent": {
1163 "__id__": 17
1164 },
1165 "_children": [],
1166 "_active": false,
1167 "_level": 2,
1168 "_components": [
1169 {
1170 "__id__": 28
1171 },
1172 {
1173 "__id__": 29
1174 }
1175 ],
1176 "_prefab": null,
1177 "_opacity": 255,
1178 "_color": {
1179 "__type__": "cc.Color",
1180 "r": 255,
1181 "g": 255,
1182 "b": 255,
1183 "a": 255
1184 },
1185 "_contentSize": {
1186 "__type__": "cc.Size",
1187 "width": 108,
1188 "height": 48
1189 },
1190 "_anchorPoint": {
1191 "__type__": "cc.Vec2",
1192 "x": 0.5,
1193 "y": 0.5
1194 },
1195 "_position": {
1196 "__type__": "cc.Vec3",
1197 "x": 545,
1198 "y": 310,
1199 "z": 0
1200 },
1201 "_scale": {
1202 "__type__": "cc.Vec3",
1203 "x": 1,
1204 "y": 1,
1205 "z": 1
1206 },
1207 "_eulerAngles": {
1208 "__type__": "cc.Vec3",
1209 "x": 0,
1210 "y": 0,
1211 "z": 0
1212 },
1213 "_skewX": 0,
1214 "_skewY": 0,
1215 "_is3DNode": false,
1216 "groupIndex": 0,
1217 "_id": "f6RVR5r6xKSJwKkWfuZoVo"
1218 },
1219 {
1220 "__type__": "cc.Sprite",
1221 "_name": "",
1222 "_objFlags": 0,
1223 "node": {
1224 "__id__": 27
1225 },
1226 "_enabled": true,
1227 "_materials": [
1228 {
1229 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
1230 }
1231 ],
1232 "_srcBlendFactor": 770,
1233 "_dstBlendFactor": 771,
1234 "_spriteFrame": {
1235 "__uuid__": "2724fd4d-8592-497d-9ab1-4e33968c0e89"
1236 },
1237 "_type": 0,
1238 "_sizeMode": 1,
1239 "_fillType": 0,
1240 "_fillCenter": {
1241 "__type__": "cc.Vec2",
1242 "x": 0,
1243 "y": 0
1244 },
1245 "_fillStart": 0,
1246 "_fillRange": 0,
1247 "_isTrimmedMode": true,
1248 "_atlas": null,
1249 "_id": "17hQ03BA9Ca4ThWJsVAe5t"
1250 },
1251 {
1252 "__type__": "cc.Widget",
1253 "_name": "",
1254 "_objFlags": 0,
1255 "node": {
1256 "__id__": 27
1257 },
1258 "_enabled": true,
1259 "alignMode": 1,
1260 "_target": null,
1261 "_alignFlags": 9,
1262 "_left": 1131,
1263 "_right": 0,
1264 "_top": 26,
1265 "_bottom": 0,
1266 "_verticalCenter": 0,
1267 "_horizontalCenter": 0,
1268 "_isAbsLeft": true,
1269 "_isAbsRight": true,
1270 "_isAbsTop": true,
1271 "_isAbsBottom": true,
1272 "_isAbsHorizontalCenter": true,
1273 "_isAbsVerticalCenter": true,
1274 "_originalWidth": 0,
1275 "_originalHeight": 0,
1276 "_id": "a2/o9snvpNqJT40s1JTdzI"
1277 },
1278 {
1279 "__type__": "cc.Node",
1280 "_name": "LeftNaviLayout",
1281 "_objFlags": 0,
1282 "_parent": {
1283 "__id__": 2
1284 },
1285 "_children": [],
1286 "_active": true,
1287 "_level": 1,
1288 "_components": [
1289 {
1290 "__id__": 31
1291 },
1292 {
1293 "__id__": 32
1294 },
1295 {
1296 "__id__": 33
1297 }
1298 ],
1299 "_prefab": null,
1300 "_opacity": 255,
1301 "_color": {
1302 "__type__": "cc.Color",
1303 "r": 255,
1304 "g": 255,
1305 "b": 255,
1306 "a": 255
1307 },
1308 "_contentSize": {
1309 "__type__": "cc.Size",
1310 "width": 100,
1311 "height": 100
1312 },
1313 "_anchorPoint": {
1314 "__type__": "cc.Vec2",
1315 "x": 0.5,
1316 "y": 0.5
1317 },
1318 "_position": {
1319 "__type__": "cc.Vec3",
1320 "x": -46.952999999999975,
1321 "y": -57.77800000000002,
1322 "z": 0
1323 },
1324 "_scale": {
1325 "__type__": "cc.Vec3",
1326 "x": 1,
1327 "y": 1,
1328 "z": 1
1329 },
1330 "_eulerAngles": {
1331 "__type__": "cc.Vec3",
1332 "x": 0,
1333 "y": 0,
1334 "z": 0
1335 },
1336 "_skewX": 0,
1337 "_skewY": 0,
1338 "_is3DNode": false,
1339 "groupIndex": 0,
1340 "_rotationX": 0,
1341 "_rotationY": 0,
1342 "_id": "69iub5QUFKlJZbOYd98Moy"
1343 },
1344 {
1345 "__type__": "cc.Sprite",
1346 "_name": "",
1347 "_objFlags": 0,
1348 "node": {
1349 "__id__": 30
1350 },
1351 "_enabled": true,
1352 "_materials": [
1353 {
1354 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
1355 }
1356 ],
1357 "_srcBlendFactor": 770,
1358 "_dstBlendFactor": 771,
1359 "_spriteFrame": null,
1360 "_type": 1,
1361 "_sizeMode": 0,
1362 "_fillType": 0,
1363 "_fillCenter": {
1364 "__type__": "cc.Vec2",
1365 "x": 0,
1366 "y": 0
1367 },
1368 "_fillStart": 0,
1369 "_fillRange": 0,
1370 "_isTrimmedMode": true,
1371 "_atlas": null,
1372 "_id": "26Ql9OXmxGI7lB2aDBhZAP"
1373 },
1374 {
1375 "__type__": "cc.Layout",
1376 "_name": "",
1377 "_objFlags": 0,
1378 "node": {
1379 "__id__": 30
1380 },
1381 "_enabled": true,
1382 "_layoutSize": {
1383 "__type__": "cc.Size",
1384 "width": 100,
1385 "height": 100
1386 },
1387 "_resize": 2,
1388 "_N$layoutType": 3,
1389 "_N$padding": 0,
1390 "_N$cellSize": {
1391 "__type__": "cc.Size",
1392 "width": 40,
1393 "height": 40
1394 },
1395 "_N$startAxis": 1,
1396 "_N$paddingLeft": 0,
1397 "_N$paddingRight": 0,
1398 "_N$paddingTop": 0,
1399 "_N$paddingBottom": 0,
1400 "_N$spacingX": 0,
1401 "_N$spacingY": 0,
1402 "_N$verticalDirection": 1,
1403 "_N$horizontalDirection": 0,
1404 "_N$affectedByScale": false,
1405 "_id": "02q0yVtilE4osvaqeyHIMc"
1406 },
1407 {
1408 "__type__": "cc.Widget",
1409 "_name": "",
1410 "_objFlags": 0,
1411 "node": {
1412 "__id__": 30
1413 },
1414 "_enabled": true,
1415 "alignMode": 1,
1416 "_target": null,
1417 "_alignFlags": 9,
1418 "_left": 543.047,
1419 "_right": 0,
1420 "_top": 367.778,
1421 "_bottom": 0,
1422 "_verticalCenter": 0,
1423 "_horizontalCenter": 0,
1424 "_isAbsLeft": true,
1425 "_isAbsRight": true,
1426 "_isAbsTop": true,
1427 "_isAbsBottom": true,
1428 "_isAbsHorizontalCenter": true,
1429 "_isAbsVerticalCenter": true,
1430 "_originalWidth": 0,
1431 "_originalHeight": 0,
1432 "_id": "d6M9RdbjVCuY+Yq7AAexFK"
1433 },
1434 {
1435 "__type__": "cc.Canvas",
1436 "_name": "",
1437 "_objFlags": 0,
1438 "node": {
1439 "__id__": 2
1440 },
1441 "_enabled": true,
1442 "_designResolution": {
1443 "__type__": "cc.Size",
1444 "width": 1280,
1445 "height": 720
1446 },
1447 "_fitWidth": false,
1448 "_fitHeight": true,
1449 "_id": "6f5cteKmlPh6NGUsUqxlFR"
1450 },
1451 {
1452 "__type__": "280c3rsZJJKnZ9RqbALVwtK",
1453 "_name": "",
1454 "_objFlags": 0,
1455 "node": {
1456 "__id__": 2
1457 },
1458 "_enabled": true,
1459 "_cLog": null,
1460 "_cApplication": null,
1461 "_cFocus": null,
1462 "_aFocusTargets": [],
1463 "_fiCurrentFocus": null,
1464 "_iSceneStatus": 0,
1465 "_fFocusScaleFactor": 1.06,
1466 "_bIsFocusInit": false,
1467 "_oSceneContext": null,
1468 "_oNextSceneParameter": null,
1469 "_compPlayer": null,
1470 "_aTouchContext": [],
1471 "_defaultBackScene": null,
1472 "_oFocusScaleFactorInfo": null,
1473 "holdClick": false,
1474 "_bShowExitBox": false,
1475 "_iRightRecommendHeight": 0,
1476 "_aBgHeight": [],
1477 "PFB_LEFT_RECOMMEND": {
1478 "__uuid__": "0a9ac85b-6d8a-498b-92ce-d1b35b092920"
1479 },
1480 "PFB_RECOMMEND_RIGHT": {
1481 "__uuid__": "9058dd42-455f-43f3-93b4-ed587f2159bd"
1482 },
1483 "targetAry": [
1484 {
1485 "__id__": 36
1486 },
1487 {
1488 "__id__": 37
1489 },
1490 {
1491 "__id__": 38
1492 }
1493 ],
1494 "_id": "dcGJ+cSA5D7qNtScKfLjJJ"
1495 },
1496 {
1497 "__type__": "info",
1498 "target": {
1499 "__id__": 30
1500 },
1501 "num": 0
1502 },
1503 {
1504 "__type__": "info",
1505 "target": {
1506 "__id__": 13
1507 },
1508 "num": 0
1509 },
1510 {
1511 "__type__": "info",
1512 "target": {
1513 "__id__": 9
1514 },
1515 "num": 0
1516 },
1517 {
1518 "__type__": "cc.ScrollView",
1519 "_name": "",
1520 "_objFlags": 0,
1521 "node": {
1522 "__id__": 2
1523 },
1524 "_enabled": true,
1525 "horizontal": false,
1526 "vertical": true,
1527 "inertia": true,
1528 "brake": 1,
1529 "elastic": true,
1530 "bounceDuration": 1,
1531 "scrollEvents": [],
1532 "cancelInnerEvents": true,
1533 "_N$content": {
1534 "__id__": 5
1535 },
1536 "content": {
1537 "__id__": 5
1538 },
1539 "_id": "d87WXBbQpNp76VZw/tO/Tu"
1540 }
1541 ]
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.2.0",
3 "uuid": "2d2f792f-a40c-49bb-a189-ed176a246e49",
4 "asyncLoadAssets": false,
5 "autoReleaseAssets": false,
6 "subMetas": {}
7 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "4734c20c-0db8-4eb2-92ea-e692f4d70934",
4 "isGroup": false,
5 "subMetas": {}
6 }
...\ No newline at end of file ...\ No newline at end of file
1 cc.Class({
2 extends: cc.Layout,
3
4 properties: {
5
6 },
7
8 _doLayoutDirty: function () {
9 this._layoutDirty = true;
10 //-----------------------------------------------
11 var children = this.node.children;
12 for (var i = 0; i < children.length; ++i) {
13 var child = children[i];
14 child.zIndex=10;
15 }
16 //-----------------------------------------------
17 },
18
19 });
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.5",
3 "uuid": "e24450be-ee0f-4078-8526-2d1821a7bc96",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 /**
2 * 扩展TVFocus,新增字段_bChangeZIndex,Layout模式下禁止改动zIndex,扰乱Layout排序
3 */
4
5 var Common = require('Common');
6 var TVFocus = require('TVFocus');
7 //var AbstractTVFocus=require('AbstractTVFocus');
8
9 cc.Class({
10 //name:"TVFocus",
11 extends: TVFocus,
12 //extends: cc.Node, 引擎团队的人不推荐这么做
13
14 properties: {
15 _bChangeZIndex: false,
16 },
17
18 init: function (strName, oScene, fiCurrentFocus,//Left,fTop,fObjectWidth,fObjectHeight,
19 fScreenWidth, fScreenHeight, fCornerOuterRadius, fCornerInnerRadius, fScaleFactor, bChangeZIndex) {
20 this._bChangeZIndex = bChangeZIndex;
21 //TODO:这个函数里面是否要做onbeforeFocus和onAfterFocus的操作 --question from eva
22 //cc.log(this instanceof Sprite); // true
23 if (strName) {
24 this.name = strName;
25 } else {
26 cc.log('No Focus Name Specified');
27 return;
28 }
29 if (oScene) {
30 this._oScene = oScene;
31 } else {
32 cc.log('No Scene Specified for Focus');
33 }
34 fScaleFactor = fScaleFactor || fiCurrentFocus.getScaleFactor();
35 //this.width=fObjectWidth;
36 //this.height=fObjectHeight;
37 var fLeft = fiCurrentFocus.getLeft();
38 var fTop = fiCurrentFocus.getTop();
39 var fObjectWidth = fiCurrentFocus.getWidth();
40 var fObjectHeight = fiCurrentFocus.getHeight();
41 if (fScreenWidth) {
42 this._screenWidth = fScreenWidth;
43 }
44 if (fScreenHeight) {
45 this._screenHeight = fScreenHeight;
46 }
47 if (fCornerOuterRadius) {
48 this._cornerOuterRadius = fCornerOuterRadius;
49 }
50 if (fCornerInnerRadius) {
51 this._cornerInnerRadius = fCornerInnerRadius;
52 }
53 var oTransformedPosition = this.transformCoordinatesWeb2Cocos(fLeft, fTop, fObjectWidth, fObjectHeight);
54 this.node.x = oTransformedPosition.x;
55 this.node.y = oTransformedPosition.y;
56 var urlFocus = null;
57 var textureFocus = null;
58 //1 2 3
59 //4 6
60 //7 8 9
61 for (var i = 1; i <= 9; i++) {
62 //this.node.children[i-1] = new cc.Node('focus_'+i);
63 this.node.addChild(new cc.Node('focus_' + i), 10);
64 if (5 == i) {
65 continue;
66 }
67 // urlFocus = cc.url.raw('resources/Texture/Focus/'+i+'.png');
68 // textureFocus = cc.textureCache.addImage(urlFocus);
69 var spriteTemp = this.node.getChildByName('focus_' + i).addComponent(cc.Sprite);
70 // spriteTemp.spriteFrame = new cc.SpriteFrame(textureFocus);
71 var ftaScaleTo = null
72 if (2 == i || 8 == i) {
73 //spriteTemp.sizeMode = cc.Sprite.SizeMode.CUSTOM;
74 //spriteTemp.type= cc.Sprite.Type.FILLED;
75 //spriteTemp.fillType = cc.Sprite.FillType.HORIZONTAL;
76 //spriteTemp.width=fObjectWidth-2*fCornerInnerRadius;
77 //this.node.children[i-1].width=fObjectWidth-2*fCornerInnerRadius;
78 //this.node.children[i-1].height=fCornerOuterRadius;
79 ftaScaleTo = cc.scaleTo(0, fScaleFactor * (fObjectWidth - 2 * fCornerInnerRadius), fScaleFactor * 1.0);
80 } else if (4 == i || 6 == i) {
81 //spriteTemp.sizeMode = cc.Sprite.SizeMode.CUSTOM;
82 //spriteTemp.type= cc.Sprite.Type.FILLED;
83 //spriteTemp.fillType = cc.Sprite.FillType.VERTICAL;
84 //spriteTemp.height=fObjectHeight-2*fCornerInnerRadius;
85 //this.node.children[i-1].setContentSize();
86 //this.node.children[i-1].width=fCornerOuterRadius;
87 //this.node.children[i-1].height=fObjectHeight-2*fCornerInnerRadius;
88 ftaScaleTo = cc.scaleTo(0, fScaleFactor * 1.0, fScaleFactor * (fObjectHeight - 2 * fCornerInnerRadius));
89 } else {
90 ftaScaleTo = cc.scaleTo(0, fScaleFactor, fScaleFactor);
91 }
92 ftaScaleTo.setTag(Common.FOCUS_CELL_TRANSFER);
93 this.node.children[i - 1].stopAllActions();
94 this.node.children[i - 1].runAction(ftaScaleTo);
95 }
96 //TODO:2.0版本采用异步加载本地图片,在焦点初始完成后在批量处理图片
97 //TODO:循环中焦点框不是连续的,而批量加载的图地址是连续的需特殊处理下
98 var self = this;
99 cc.loader.loadResDir("focus", cc.Texture2D, function (err, textures) {
100 for (let i = 1; i < 10; i++) {
101 if (i == 2 || i == 4 || i == 6 || i == 8) continue; //暂时将焦点框一部分隐藏
102 if (i >= 5) {
103 if (i == 5) continue;
104 self.node.getChildByName('focus_' + i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(textures[i - 2]);
105 } else {
106 self.node.getChildByName('focus_' + i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(textures[i - 1]);
107 }
108 }
109 });
110
111 this.node.children[0].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
112 this.node.children[0].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
113 this.node.children[1].x = 0;
114 this.node.children[1].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
115 this.node.children[2].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
116 this.node.children[2].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
117
118 this.node.children[3].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
119 this.node.children[3].y = 0;
120 //this.node.children[4].x=0;
121 //this.node.children[4].y=0;
122 this.node.children[5].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
123 this.node.children[5].y = 0;
124
125 this.node.children[6].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
126 this.node.children[6].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
127 this.node.children[7].x = 0;
128 this.node.children[7].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
129 this.node.children[8].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
130 this.node.children[8].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
131
132 //放大 当前选中的Node
133 var ftaScaleCurrentFocus = cc.scaleTo(0, fScaleFactor, fScaleFactor);
134 ftaScaleCurrentFocus.setTag(Common.FEATURE_NODE_TRANSFER);
135
136 if (bChangeZIndex) {
137
138 } else {
139 fiCurrentFocus.node.zIndex = 40;
140 }
141
142 fiCurrentFocus.node.stopAllActions();
143 fiCurrentFocus.node.runAction(ftaScaleCurrentFocus);
144
145 //开始呼吸动画
146 var aiFocusBreath = cc.repeatForever(cc.sequence(cc.fadeTo(1, 100), cc.fadeTo(1, 255), cc.fadeTo(2, 255)));
147 aiFocusBreath.setTag(Common.FOCUS_CONTAINER_BREATH);
148 this.node.stopAllActions();
149 this.node.runAction(aiFocusBreath);
150
151 this._oScene.setCurrentFocus(fiCurrentFocus);
152 },
153
154 flyFocus: function (fiCurrentFocus, fiFocusTarget, iDirection, fScaleFactor, oScrollParameter, iDuration) {
155 if (null == fiFocusTarget) {//todo:先判断这个是否更划得来
156 //找不到目标的动画小交互
157 //var blink1=cc.blink(0.6,20);
158 //this.node.runAction(blink1);
159
160 let aiJoggle = cc.repeat(
161 cc.sequence(
162 cc.rotateTo(0.02, -2),
163 cc.rotateTo(0.02, 0),
164 cc.rotateTo(0.02, 2),
165 cc.rotateTo(0.02, 0)
166 ),
167 4
168 );
169 aiJoggle.setTag(Common.FOCUS_CONTAINER_JOGGLE);
170 //if (null!=this.node.getActionByTag(Common.FOCUS_CONTAINER_JOGGLE)){
171 // this.node.stopAction(Common.FOCUS_CONTAINER_JOGGLE);
172 //}
173 this.node.stopAction(this.node.getActionByTag(Common.FOCUS_CONTAINER_JOGGLE));
174 this.node.runAction(aiJoggle);
175 return 0;
176 }
177
178 if (null == fiCurrentFocus) {
179 fiCurrentFocus = this._oScene.getCurrentFocusInfo();
180 }
181
182 fScaleFactor = fScaleFactor || fiFocusTarget.getScaleFactor();
183 if (null == fScaleFactor) {
184 fScaleFactor = 1.0;
185 }
186
187 if (null == iDuration) {
188 iDuration = Common.FOCUS_FLY_DURATION;
189 }
190
191 //是否是有效方向
192 if (Common.MOVE_DIRECTION_UP <= iDirection && iDirection <= Common.MOVE_DIRECTION_LEFT) {
193 //滚屏相关参数 elScroll,iScrollStep 如果都有效开始处理滚屏
194 //oScrollParameter.element 需要滚动的元素 Object[Element]
195 //oScrollParameter.step 滚动的距离 Integer
196 //oScrollParameter.relation 滚动是否和焦点元素有关? Integer [0|1]
197 //oScrollParameter.direction 滚动方向 ['left'|'right'|'up'|'down']
198
199 //旧的时间通知
200 //this.node.dispachEvent('before_focus_change', { from: fiCurrentFocus, to: fiFocusTarget});
201 let eventBeforeFocus = new cc.Event.EventCustom('before_focus_change', true);
202 eventBeforeFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
203 this.node.dispatchEvent(eventBeforeFocus);
204
205 let eventOnBlur = new cc.Event.EventCustom('blur', true);
206 eventOnBlur.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
207 this.node.dispatchEvent(eventOnBlur);
208 //let eventOnFocus=new cc.Event.
209 let nodeCurrent = fiCurrentFocus.node;//node;
210 let nodeTarget = fiFocusTarget.node;//node;
211 //if (fiCurrentFocus && fiCurrentFocus.onBlur && typeof fiCurrentFocus.onBlur =='function' ){
212 // fiCurrentFocus.onBlur();
213 //}
214 //处理因焦点移动导致的部分界面滑动
215 let fXScrollStep = 0;
216 let fYScrollStep = 0;
217 let fXScrollTarget = 0; //新方法
218 let fYScrollTarget = 0; //新方法
219 if (null != oScrollParameter && null != oScrollParameter.node
220 && null != oScrollParameter.getStep() && null != oScrollParameter.getHasRelation()) { //满足此条件才考虑界面滚动
221 //MOVE_DIRECTION_UP:0,
222 //MOVE_DIRECTION_RIGHT:1,
223 //MOVE_DIRECTION_DOWN:2,
224 //MOVE_DIRECTION_LEFT:3,
225 //默认反向
226 if (null == oScrollParameter.getDirection()) {
227 switch (iDirection) {
228 case Common.MOVE_DIRECTION_UP: oScrollParameter.setDirection(Common.MOVE_DIRECTION_DOWN); break;
229 case Common.MOVE_DIRECTION_RIGHT: oScrollParameter.setDirection(Common.MOVE_DIRECTION_LEFT); break;
230 case Common.MOVE_DIRECTION_DOWN: oScrollParameter.setDirection(Common.MOVE_DIRECTION_UP); break;
231 case Common.MOVE_DIRECTION_LEFT: oScrollParameter.setDirection(Common.MOVE_DIRECTION_RIGHT); break;
232 }
233 }
234 //Deprecated Start
235 switch (oScrollParameter.getDirection()) {
236 case Common.MOVE_DIRECTION_UP:
237 fYScrollStep = oScrollParameter.getStep();
238 break;
239 case Common.MOVE_DIRECTION_DOWN:
240 fYScrollStep = -oScrollParameter.getStep();
241 break;
242 case Common.MOVE_DIRECTION_LEFT:
243 fXScrollStep = -oScrollParameter.getStep();
244 break;
245 case Common.MOVE_DIRECTION_RIGHT:
246 fXScrollStep = oScrollParameter.getStep();
247 break;
248
249 }
250 //let ftaMoveToScrollParameter = cc.moveTo(iDuration,
251 // oScrollParameter.node.x+fXScrollStep,
252 // oScrollParameter.node.y-fYScrollStep
253 // );
254 //Deprecated End
255 switch (oScrollParameter.getDirection()) { //正负在外面算好了
256 case Common.MOVE_DIRECTION_UP:
257 fYScrollTarget = oScrollParameter.getTargetPosition();
258 break;
259 case Common.MOVE_DIRECTION_DOWN:
260 fYScrollTarget = oScrollParameter.getTargetPosition();
261 break;
262 case Common.MOVE_DIRECTION_LEFT:
263 fXScrollTarget = oScrollParameter.getTargetPosition();
264 break;
265 case Common.MOVE_DIRECTION_RIGHT:
266 fXScrollTarget = oScrollParameter.getTargetPosition();
267 break;
268
269 }
270 let finished = cc.callFunc((oScrollParameter.callback ? oScrollParameter.callback : function () {
271 cc.log("do something");
272 }), this, oScrollParameter.scope);//todo:这里是否考虑要个回调
273 let ftaMoveToScrollParameter = cc.sequence(cc.moveTo(iDuration, fXScrollTarget, fYScrollTarget), finished);
274
275 ftaMoveToScrollParameter.setTag(Common.SCROLL_BY_FOCUS_CHANGE);
276 oScrollParameter.node.stopAction(oScrollParameter.node.getActionByTag(Common.SCROLL_BY_FOCUS_CHANGE));
277 //oScrollParameter.node.stopAllActions();
278 oScrollParameter.node.runAction(ftaMoveToScrollParameter);
279 oScrollParameter.setDirection(null);
280 //oScrollParameter.node.x+=fXScrollStep;
281 //oScrollParameter.node.y-=fYScrollStep;
282 }
283
284 //由于浮点数变成坐标必须取整所以不可避免会形成误差,其中的+1 -1为了保证边框不留空隙
285 //Target会比边框稍大
286
287 //let fDestFocusLeft = iScaledTargetLeft - g_iFocusFrameWidth + iXScrollStep + "px";
288 //let fDestFocusTop = iScaledTargetTop - g_iFocusFrameHeight + iYScrollStep + "px";
289 //let fDestFocusWidth = iScaledTargetWidth + 2 * g_iFocusFrameWidth + "px";
290 //let fDestFocusHeight = iScaledTargetHeight + 2 * g_iFocusFrameHeight + "px";
291
292 //只要改掉相对Left Top 就可
293 //此处需很小心处理和上下代码的关系
294 /*
295 if (null != oScrollParameter && null != oScrollParameter.node
296 && null != oScrollParameter.getStep() && null != oScrollParameter.getHasRelation()) { //满足此条件才考虑界面滚动
297 let sizeVisible = cc.Director.getVisibleSize();
298 let fDestScrollElementLeft = oScrollParameter.node.x + fXScrollStep;
299 let fDestScrollElementTop = sizeVisible.height - oScrollParameter.node.y + fYScrollStep;
300
301 //这里还缺少动画 必须一起开始动
302 oScrollParameter.node.x=fDestScrollElementLeft;
303 oScrollParameter.node.y=oScrollParameter.node.y - fYScrollStep;
304 }*/
305
306 //准备好了所有数据 这里开始一起行动
307 //if (g_fnOnBeforeFocusChange) {
308 // g_fnOnBeforeFocusChange(elFocusNow, elFocusTarget, strDirection);
309 //}
310
311 //按比例将焦点目标的区域进行缩放 得注意浮点数的问题
312
313 let ftaScaleCurrentFocus = cc.scaleTo(iDuration, 1.0, 1.0);
314 let ftaScaleFocusTarget = cc.scaleTo(iDuration, fScaleFactor, fScaleFactor);
315
316 /*
317 log("ArchorPoint:%f,%f,%f,%f", pfiCurrentFocus->node->getAnchorPoint().x,
318 pfiCurrentFocus->node->getAnchorPoint().y,
319 pfiCurrentFocus->node->getAnchorPointInPoints().x,
320 pfiCurrentFocus->node->getAnchorPointInPoints().y );
321 */
322 /*
323 //红点测试
324 auto sprite1 = cocos2d::Sprite::create("image/red_point.png");
325 sprite1->setPosition(0,0
326 // pfiCurrentFocus->node->getAnchorPointInPoints().x
327 //, pfiCurrentFocus->node->getAnchorPointInPoints().y);
328
329 pfiCurrentFocus->node->addChild(sprite1, 20, "PointFlag");
330 */
331
332 // nodeCurrent.setLocalZOrder(10);
333 // nodeTarget.setLocalZOrder(40);
334 if (this._bChangeZIndex) {
335
336 } else {
337 nodeCurrent.zIndex = 10;
338 nodeTarget.zIndex = 40;
339 }
340
341 ftaScaleCurrentFocus.setTag(Common.FEATURE_NODE_TRANSFER);
342 ftaScaleFocusTarget.setTag(Common.FEATURE_NODE_TRANSFER);
343 //if (null!=nodeCurrent.getActionByTag(Common.FEATURE_NODE_TRANSFER)){
344 // nodeCurrent.stopAction(Common.FEATURE_NODE_TRANSFER);
345 //}
346 //if (null!=nodeTarget.getActionByTag(Common.FEATURE_NODE_TRANSFER)){
347 // nodeTarget.stopAction(Common.FEATURE_NODE_TRANSFER);
348 //}
349 nodeCurrent.stopAction(nodeCurrent.getActionByTag(Common.FEATURE_NODE_TRANSFER));
350 nodeTarget.stopAction(nodeTarget.getActionByTag(Common.FEATURE_NODE_TRANSFER));
351 nodeCurrent.runAction(ftaScaleCurrentFocus);
352 nodeTarget.runAction(ftaScaleFocusTarget);
353 cc.log(fiFocusTarget.getLeft());
354 cc.log(fiFocusTarget.getTop());
355 this.fly(fiFocusTarget.getLeft() + fXScrollStep, fiFocusTarget.getTop() + fYScrollStep,
356 fiFocusTarget.getWidth(), fiFocusTarget.getHeight(),
357 iDuration, fScaleFactor);
358 //if (fiTarget.onFocus && typeof fiTarget.onFocus =='function' ){
359 // fiTarget.onFocus();
360 //}
361 let eventOnFocus = new cc.Event.EventCustom('focus', true);
362 eventOnFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
363 this.node.dispatchEvent(eventOnFocus);
364 //旧的事件通知
365 //this.node.emit('after_focus_change', { from: fiCurrentFocus, to: fiFocusTarget});
366 let eventAfterFocus = new cc.Event.EventCustom('after_focus_change', true);
367 eventAfterFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
368 this.node.dispatchEvent(eventAfterFocus);
369 //新的事件通知方式 是否科学有待检验
370 //let eventFocusLeave=new cc.Event.EventCustom('focus_leave',true);
371 //eventFocusLeave.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
372 //nodeCurrent.dispatchEvent(eventFocusLeave);
373
374 //let eventFocusHover=new cc.Event.EventCustom('focus_hover',true);
375 //eventFocusHover.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
376 //nodeTarget.dispatchEvent(eventFocusHover);
377 this._oScene.setCurrentFocus(fiFocusTarget);
378 //计算完成以下开始完成所有动作
379 //elFocusNow.style.zIndex = 0;
380 //elFocusTarget.style.zIndex = 20;
381 /*
382 var elFocusContainer = document.getElementById("focus_container");
383 //document.getElementById('view_port').style.left = destViewPortLeft;
384 elFocusContainer.style.left = destFocusLeft;
385 elFocusContainer.style.top = destFocusTop;
386 //document.getElementById("focus5").style.width = destFocusWidth;
387 //document.getElementById("focus5").style.height = destFocusHeight;
388 elFocusContainer.style.width = destFocusWidth;
389 elFocusContainer.style.height = destFocusHeight;
390 */
391 //if (g_fnOnAfterFocusChange) {
392 // g_fnOnAfterFocusChange(elFocusNow, elFocusTarget, strDirection);
393 //}
394 //总要先将前面那个复原
395 //scaleElement(g_strFocusElementId, 1, 1);
396 //g_strFocusElementId = elFocusTarget.id;
397 return 1;
398 } else {
399 cc.log("No Target Found to Fly: Unavailable Direction");
400 return 0;
401 }
402 },
403
404 });
1 {
2 "ver": "1.0.5",
3 "uuid": "bb57216f-4ed7-4f39-ac79-58d24574a43b",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Common = require('Common');
2 var Network = require('Network');
3 var TVFocus = require('TVFocus');
4 var CCTVFocus = require('CCTVFocus');
5 var FocusInfo = require('FocusInfo');
6 var TVCanvas = require('TVCanvas');
7 var TestLayout = require('TestLayout');
8 var waterfall_recommend = require('waterfall_recommend');
9 var waterfall_course = require('waterfall_course');
10 var waterfall_parent = require('waterfall_parent');
11 var waterfall_primarySchool = require('waterfall_primarySchool');
12 var waterfall_three2six = require('waterfall_three2six');
13
14 /**
15 * ScrollView有问题,
16 * 多个scrollView切换时,高度短的ScrollView无法向上/向下滚动,且初始化后的scrollView位置会错乱
17 * 目前暂且将所有scrollView设置为固定高度
18 */
19
20 var info = cc.Class({
21 name: 'info',
22 properties: {
23 target: cc.Node,
24 num: 0
25 }
26 });
27
28 cc.Class({
29 extends: TVCanvas,
30
31 properties: {
32
33 _iRightRecommendHeight: 0, //右侧瀑布流宽度
34 _aBgHeight: [], //右侧瀑布流楼层高度
35
36 PFB_LEFT_RECOMMEND: { //左侧导航栏
37 default: null,
38 type: cc.Prefab
39 },
40 PFB_RECOMMEND_RIGHT: {
41 default: null,
42 type: cc.Prefab
43 },
44 targetAry: {
45 default: [],
46 type: [info],
47 },
48 },
49
50 onLoad: function () {
51 this._super();
52 this._scrollview = this.node.getComponent(cc.ScrollView);
53 this._oSceneContext.focusPath = "LeftNaviLayout/NaviCell0";
54 this._oSceneContext._iPageIndex = 1;
55 this._oSceneContext._iCurrentLeftIndex = 0;
56 this._oInit = {};
57
58 this.getLeftBgRequest(); //渲染左侧导航
59 this.getTopBgRequest(); //渲染顶部导航
60 this.getRightBgRequest(); //渲染右侧导航
61 this.getRightRecommendRequest(waterfall_recommend); //渲染右侧推荐框架
62 },
63
64 //请求左侧导航
65 getLeftBgRequest: function () {
66 var arrModules = TestLayout.layout4Page.children; //拿到模拟数据
67 let aLeftRecommend = arrModules[0].data.resultSet; //左侧导航栏数据
68 let count = aLeftRecommend.length;
69 var leftNavLayout = this.targetAry[0].target;
70 this._oInit.aLeftImg = [];
71
72 for (let i = 0; i < aLeftRecommend.length; i++) {
73 let nodeLeftRecommend = cc.instantiate(this.PFB_LEFT_RECOMMEND);
74 this._oInit.aLeftImg.push(Common.TOPDRAW_IMAGE_SERVER_EDU + aLeftRecommend[i].imageURL);
75 nodeLeftRecommend.getComponent('pfbRecommendCell').init(aLeftRecommend[i], function () { //让细胞自己渲染
76 count--;
77 if (!count) { //初始化完成了
78 leftNavLayout.getComponent(cc.Layout).updateLayout();
79 }
80 });
81 leftNavLayout.addChild(nodeLeftRecommend, 10, "NaviCell" + i);
82
83 //准备焦点坐标
84 let fiNodeBlock = nodeLeftRecommend.addComponent(FocusInfo);
85 fiNodeBlock.init(
86 aLeftRecommend[i].tvlink, true, null, null, 1.0 //最后一个参数决定要不要放大显示
87 );
88 this._aFocusTargets[0]["NaviCell" + i] = nodeLeftRecommend;
89 }
90
91 if (arrModules[0].childrenSize[0] && arrModules[0].childrenSize[1]) { //子元素大小
92 leftNavLayout.getComponent(cc.Layout).cellSize = new cc.size(arrModules[0].childrenSize[0], arrModules[0].childrenSize[1]);
93 leftNavLayout.Width = arrModules[0].childrenSize[0]; //计算Layout宽高
94 leftNavLayout.height = arrModules[0].childrenSize[1] * 5 + arrModules[0].childrenMargin[2] * 4;
95 }
96 leftNavLayout.getComponent(cc.Layout).spacingY = arrModules[0].childrenMargin[2]; //子元素间距
97 if (arrModules[0].position[0] && arrModules[0].position[1]) { //确定位置
98 leftNavLayout.getComponent(cc.Widget).top = arrModules[0].position[1];
99 leftNavLayout.getComponent(cc.Widget).left = arrModules[0].position[0];
100 }
101 this.checkDataReadyAndInitFocus();
102 },
103
104 //请求顶部导航
105 getTopBgRequest: function () {
106 var arrModules = TestLayout.layout4Page.children; //拿到模拟数据
107 let aLeftRecommend = arrModules[1].data.resultSet; //顶部导航栏数据
108 let count = aLeftRecommend.length;
109 var topNavLayout = this.targetAry[1].target;
110 topNavLayout.getComponent(cc.Widget).top = 0;
111 topNavLayout.getComponent(cc.Widget).left = 0;
112
113 this._oInit.aTopImg = [];
114 for (let i = 0; i < aLeftRecommend.length; i++) {
115 let nodeLeftRecommend = cc.instantiate(this.PFB_LEFT_RECOMMEND);
116 nodeLeftRecommend.width = aLeftRecommend[i].width;
117 nodeLeftRecommend.height = aLeftRecommend[i].height;
118 this._oInit.aTopImg.push(Common.TOPDRAW_IMAGE_SERVER_EDU + aLeftRecommend[i].imageURL);
119 nodeLeftRecommend.getComponent('pfbRecommendCell').init(aLeftRecommend[i], function () { //让细胞自己渲染
120 count--;
121 if (!count) { //初始化完成了
122
123 }
124 });
125 // cc.log("------------------->"+aLeftRecommend[i].left);
126 nodeLeftRecommend.getComponent(cc.Widget).top = aLeftRecommend[i].top;
127 nodeLeftRecommend.getComponent(cc.Widget).left = aLeftRecommend[i].left;
128 topNavLayout.addChild(nodeLeftRecommend, 10, "TopCell" + i);
129
130 //准备焦点坐标
131 let fiNodeBlock = nodeLeftRecommend.addComponent(FocusInfo);
132 fiNodeBlock.init(
133 aLeftRecommend[i].tvlink, true, null, null, 1.0 //最后一个参数决定要不要放大显示
134 );
135 this._aFocusTargets[0]["TopCell" + i] = nodeLeftRecommend;
136 }
137 },
138
139 //请求右侧导航
140 getRightBgRequest: function () {
141 var arrModules = TestLayout.layout4Page.children; //拿到模拟数据
142 let aLeftRecommend = arrModules[2].data.resultSet; //顶部导航栏数据
143 let count = aLeftRecommend.length;
144 var rightNavLayout = this.targetAry[2].target;
145 rightNavLayout.width = arrModules[2].width;
146 rightNavLayout.height = arrModules[2].height;
147 this._iRightRecommendHeight = arrModules[2].width;
148
149 if (arrModules[2].position[0] && arrModules[2].position[1]) { //确定位置
150 rightNavLayout.getComponent(cc.Widget).top = arrModules[2].position[1] + 20; //加20是内边距
151 rightNavLayout.getComponent(cc.Widget).left = arrModules[2].position[0] + 20;
152 }
153 },
154
155 //渲染推荐框架
156 getRightRecommendRequest: function (waterfall_model) {
157 var rightNodeLayout = this.targetAry[2].target;
158 var arrModules = waterfall_model.waterfall; //拿到模拟数据
159 var bgHeight = 0;
160 this._aBgHeight = [];
161 this._aBgHeight.push(0);
162 for (let i = 0; i < arrModules.resultSet.length; i++) {
163 let nodeLayout = new cc.Node(arrModules.resultSet[i].name); //创建瀑布流的每一层layout
164 nodeLayout.width = this._iRightRecommendHeight;
165 nodeLayout.height = arrModules.resultSet[i].height;
166 var widgetLayout = nodeLayout.addComponent(cc.Widget);
167 widgetLayout.isAlignTop = true;
168 widgetLayout.top = bgHeight;
169 bgHeight += arrModules.resultSet[i].height; //逐层增加高度
170 // cc.log("高度"+bgHeight);
171 if (i == arrModules.resultSet.length - 1) { //最后一个条目不够高,手动加高
172 bgHeight += 300;
173 }
174 this._aBgHeight.push(bgHeight);
175 if (arrModules.resultSet[i].hasChildFrame) { //还有子列表
176 for (let j = 0; j < arrModules.resultSet[i].data.resultSet.length; j++) {
177 let oModule = arrModules.resultSet[i].data.resultSet[j];
178 if (oModule.hasChildFrame) {
179 let autoNode = new cc.Node(); //创建特殊层的第二层自动填充的布局
180 let autoNodeLayout = autoNode.addComponent(cc.Layout);
181 autoNodeLayout.type = cc.Layout.Type.GRID; //网格
182 autoNodeLayout.resizeMode = cc.Layout.ResizeMode.CHILDREN; //对子节点大小进行缩放
183 autoNodeLayout.startAxis = cc.Layout.AxisDirection.HORIZONTAL; //排版起始轴
184 autoNodeLayout.horizontalDirection = cc.Layout.HorizontalDirection.LEFT_TO_RIGHT; //布局方向
185 let widgetAutoNode = autoNode.addComponent(cc.Widget);
186 widgetAutoNode.isAlignLeft = true;
187 widgetAutoNode.isAlignTop = true;
188 autoNode.width = oModule.width; //获取自动布局宽高
189 if (oModule.childrenSize[0] && oModule.childrenSize[1]) {
190 autoNode.height = oModule.childrenSize[1]; //拿子节点的高
191 autoNodeLayout.cellSize = new cc.size(oModule.childrenSize[0], oModule.childrenSize[1]);
192 }
193 if (oModule.childrenMargin[1]) { //细胞间隔小些
194 autoNodeLayout.spacingX = oModule.childrenMargin[1] / 2;
195 }
196 if (oModule.position[0] != "undefined" && oModule.position[1] != "undefined") { //确定位置
197 widgetAutoNode.top = oModule.position[1];
198 widgetAutoNode.left = oModule.position[0];
199 }
200 for (let k = 0; k < oModule.data.resultSet.length; k++) { //渲染子细胞
201 let node = cc.instantiate(this.PFB_RECOMMEND_RIGHT);
202 if (oModule.childrenSize[0] && oModule.childrenSize[1]) {
203 node.height = oModule.childrenSize[1]; //拿子节点的高
204 node.width = oModule.childrenSize[0];
205 node.getChildByName('Pic').height = oModule.childrenSize[1]; //拿子节点的高
206 node.getChildByName('Pic').width = oModule.childrenSize[0];
207 }
208 autoNode.addChild(node, 10, oModule.data.resultSet[k].code);
209
210 //准备焦点坐标
211 let fiNodeBlock = node.addComponent(FocusInfo);
212 // fiNodeBlock.init(
213 // oParameter.promotion_items[i].tvlink, true, null, null, 1.0 //最后一个参数决定要不要放大显示
214 // );
215 this._aFocusTargets[0][oModule.data.resultSet[k].code] = node;
216 }
217 // autoNode.parent=nodeLayout;
218 // cc.log("添加循环子节点"+autoNode.childrenCount);
219 nodeLayout.addChild(autoNode, 10, "hasChildFrame");
220 } else {
221 let node = cc.instantiate(this.PFB_RECOMMEND_RIGHT);
222 node.width = oModule.width;
223 node.height = oModule.height;
224 node.getChildByName('Pic').width = oModule.width;
225 node.getChildByName('Pic').height = oModule.height;
226 node.getComponent(cc.Widget).top = oModule.top;
227 node.getComponent(cc.Widget).left = oModule.left;
228 nodeLayout.addChild(node, 10, oModule.code);
229
230 if (!oModule.disable) { //标题不给他焦点
231 //准备焦点坐标
232 let fiNodeBlock = node.addComponent(FocusInfo);
233 // fiNodeBlock.init(
234 // oParameter.promotion_items[i].tvlink, true, null, null, 1.0 //最后一个参数决定要不要放大显示
235 // );
236 this._aFocusTargets[0][oModule.code] = node;
237 }
238 }
239 }
240 }
241 nodeLayout.parent = rightNodeLayout;
242 // cc.log("子节点:"+nodeLayout.childrenCount);
243 }
244 this.node.getChildByName("ScrollContent").height = 2539; //这里暂且写死,scrollView有bug
245 cc.log("ScrollView高度: " + bgHeight); 2239
246 this._scrollview.scrollToTop();
247 // cc.log("ScrollView相对的偏移量 "+this._scrollview.getMaxScrollOffset());
248
249 // cc.log("子节点个数: "+rightNodeLayout.childrenCount);
250
251 this.getNaviPromotion("page_d14e8acf-db3d-4f74-b535-c98458596eb8");
252 },
253
254 //请求各导航推荐位图片
255 getNaviPromotion: function (pageCode) {
256 var self = this;
257 var oGetPromotionPara = {
258 "view": "json",
259 "pageCode": pageCode,
260 token: Common.TEST_API_TOKEN_EDU,
261 };
262 Network.ajax('GET', Common.TOPDRAW_API_SERVER_EDU + "Promotion/ListItemByPage", null, oGetPromotionPara,
263 function (strResponse) {
264 try {
265 var oJSONResult = JSON.parse(strResponse);
266 var rightNodeLayout = this.targetAry[2].target;
267 let bolockCount = rightNodeLayout.childrenCount; //组个数
268 for (let i = 0; i < oJSONResult.resultSet.length; i++) { //先循环对比最外层
269 for (let j = 0; j < bolockCount; j++) {
270 if (oJSONResult.resultSet[i].name == rightNodeLayout.children[j].name) {
271 for (let m = 0; m < oJSONResult.resultSet[i].promotions[0].promotion_items.length; m++) { //对比内层
272 for (let n = 0; n < rightNodeLayout.children[j].childrenCount; n++) {
273 let currentRemote = oJSONResult.resultSet[i].promotions[0].promotion_items[m];//匹配的远程条目
274 let currentNode = rightNodeLayout.children[j].children[n]; //匹配的已经渲染过的节点
275 if (currentRemote.code == currentNode.name) {
276 Network.loadImageInNativeRuntime(
277 Common.TOPDRAW_IMAGE_SERVER_EDU_RIGHT + currentRemote.image[0].fileUrl,
278 function (texture) {
279 currentNode.getChildByName('Pic').getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);
280 }, null, this
281 );
282 } else if (currentNode.name == "hasChildFrame" && currentNode.childrenCount > 0) { //渲染自动布局的节点
283 for (let k = 0; k < currentNode.childrenCount; k++) {
284 let sonCurrentNode = currentNode.children[k];
285 if (currentRemote.code == sonCurrentNode.name) {
286 Network.loadImageInNativeRuntime(
287 Common.TOPDRAW_IMAGE_SERVER_EDU_RIGHT + currentRemote.image[0].fileUrl,
288 function (texture) {
289 sonCurrentNode.getChildByName('Pic').getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);
290 }, null, this
291 );
292 }
293 }
294 }
295 }
296 }
297 }
298 }
299 }
300 } catch (error) {
301 cc.log("Exception When FloorPromotion..." + error);
302 }
303 },
304 function (strResponse) {
305 cc.log("Error When FloorPromotion..." + strResponse);
306 }, this, "uuid");
307 },
308
309 checkDataReadyAndInitFocus: function () {
310 if (!this._bIsFocusInit) {
311 this.scheduleOnce(() => { //指定0让回调函数在下一帧立即执行
312 this.initFocus();
313 }, 0);
314 this._bIsFocusInit = true;
315 }
316 },
317
318 //初始化焦点框
319 initFocus: function () {
320 var nodeInitFocus = cc.find(this._oSceneContext.focusPath, this.node);
321 // cc.log("初始化 "+nodeInitFocus.name);
322 var nodeFocus = new cc.Node('nodeFocus');
323 this.node.addChild(nodeFocus, 10);
324 this._cFocus = this.node.getChildByName('nodeFocus').addComponent(CCTVFocus);
325 this._cFocus.init('focusContainer', this,
326 nodeInitFocus.getComponent(FocusInfo),
327 Common.SCREEN_WIDTH, Common.SCREEN_HEIGHT, 2, 6, 1.0, true);
328 if (0 == nodeInitFocus.name.indexOf('NaviCell')) {
329 // nodeInitFocus.getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, nodeInitFocus.height, nodeInitFocus.width, nodeInitFocus.height));
330 Network.loadImageInNativeRuntime(
331 this._oInit.aLeftImg[0],
332 function (texture) {
333 nodeInitFocus.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture, cc.rect(0, nodeInitFocus.height, nodeInitFocus.width, nodeInitFocus.height));
334 }, null, this
335 );
336 }
337 },
338
339 onBeforeFocusChange: function (event) {
340 this._super(event);
341 let fiFrom = event.detail.from;
342 let fiTo = event.detail.to;
343
344 if (0 == this._fiCurrentFocus.node.getName().indexOf('NaviCell') && 0 == fiTo.node.getName().indexOf('NaviCell')) {
345 // fiFrom.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
346 let iIndex = fiFrom.node.name.replace("NaviCell", '');
347 if (this._oInit.aLeftImg[iIndex]) {
348 Network.loadImageInNativeRuntime(
349 this._oInit.aLeftImg[iIndex],
350 function (texture) {
351 fiFrom.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture, cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
352 }, null, this
353 );
354 }
355 }
356
357 if (0 == this._fiCurrentFocus.node.getName().indexOf('TopCell')) {
358 // fiFrom.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
359 let iIndex = fiFrom.node.name.replace("TopCell", '');
360 if (this._oInit.aTopImg[iIndex]) {
361 Network.loadImageInNativeRuntime(
362 this._oInit.aTopImg[iIndex],
363 function (texture) {
364 fiFrom.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture, cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
365 }, null, this
366 );
367 }
368 }
369 },
370
371 onAfterFocusChange: function (event) {
372 this._super(event);
373 let fiTo = event.detail.to;
374 let fiFrom = event.detail.from;
375
376 if (0 == fiTo.node.getName().indexOf('NaviCell')) {
377 let iIndex = fiTo.node.name.replace("NaviCell", '');
378 // fiTo.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
379 if (this._oInit.aLeftImg[iIndex]) {
380 Network.loadImageInNativeRuntime(
381 this._oInit.aLeftImg[iIndex],
382 function (texture) {
383 fiTo.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture, cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
384 }, null, this
385 );
386 }
387
388 this._oSceneContext._iCurrentLeftIndex = iIndex;
389 }
390
391 if (0 == fiTo.node.getName().indexOf('TopCell')) {
392 let iIndex = fiTo.node.name.replace("TopCell", '');
393 // fiTo.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
394 if (this._oInit.aTopImg[iIndex]) {
395 Network.loadImageInNativeRuntime(
396 this._oInit.aTopImg[iIndex],
397 function (texture) {
398 fiTo.node.getChildByName("Pic").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture, cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
399 }, null, this
400 );
401 }
402 }
403 },
404
405 keyDownDirection: function (Direct) {
406 var fiFocusTarget = null;
407 var fiCurrentFocus = this._fiCurrentFocus;
408 var oScrollParameter = null;
409 let aCheckResult;
410 fiFocusTarget = this._cFocus.findTarget(fiCurrentFocus, this._aFocusTargets, 0, Direct);
411 if (!fiFocusTarget) { return; }
412 aCheckResult = this.checkFocusTarget(fiFocusTarget);
413 fiFocusTarget = aCheckResult[0];
414 oScrollParameter = aCheckResult[1];
415 this._cFocus.flyFocus(this._fiCurrentFocus, fiFocusTarget, Direct, null, oScrollParameter);
416 },
417
418 checkFocusTarget: function (fiFocusTarget, oScrollParameter) {
419 var leftNavLayout = this.targetAry[0].target;
420 if (fiFocusTarget && 0 == fiFocusTarget.node.name.indexOf("NaviCell")) {
421 if (0 != this._fiCurrentFocus.node.name.indexOf("NaviCell")) {//如果不是TypeList之间跳转,则哪里来回哪里去
422 fiFocusTarget = cc.find("NaviCell" + this._oSceneContext._iCurrentLeftIndex, leftNavLayout).getComponent(FocusInfo);
423 }
424 }
425
426 return [fiFocusTarget, oScrollParameter];
427 },
428
429 onKeyDown: function (event) {
430 this._super(event);
431 var fiFocusTarget = null;
432 var fiCurrentFocus = this._fiCurrentFocus;
433 switch (event.keyCode) {
434 case cc.macro.KEY.up:
435 case Common.ANDROID_KEY.up:
436 fiFocusTarget = this._cFocus.findTarget(fiCurrentFocus, this._aFocusTargets, this._iSceneStatus, Common.MOVE_DIRECTION_UP);
437 if (!fiFocusTarget) { return; }
438 let iTargetTopUp = 0;
439 if (0 == fiFocusTarget.node.getParent().getParent().name.indexOf("block")) { //嵌套了两层的布局
440 iTargetTopUp = fiFocusTarget.node.getParent().getParent().getComponent(cc.Widget).top;
441 } else {
442 iTargetTopUp = fiFocusTarget.node.getParent().getComponent(cc.Widget).top;
443 }
444 // cc.log("目标节点: "+fiCurrentFocus.node.name);
445 let iCurrentFloorBottomUp = this._aBgHeight[this._oSceneContext._iPageIndex - 1] || 0;//当前楼层底部高度
446 // cc.log(iCurrentFloorBottomUp + "目标节点的高度:" + iTargetTopUp);
447 if (iTargetTopUp < iCurrentFloorBottomUp && fiCurrentFocus.node.name.indexOf("NaviCell") == -1) {
448 if (this._oSceneContext._iPageIndex > 1) {
449 //---------------隐藏焦点0.6秒,就看不到焦点框长时间的跳转------------------
450 this._cFocus.hide();
451 setTimeout(function () {
452 this._cFocus.show();
453 }.bind(this), 600);
454 //----------------------------------------------------------------------
455 this._oSceneContext._iPageIndex--;
456 let height = this._aBgHeight[this._oSceneContext._iPageIndex - 1] || 0; //520,750,1177,1463,1737,2119,2239
457 this._scrollview.scrollToOffset(cc.v2(0, height), 0.5);
458 // cc.log("滚动到:" + height);
459 setTimeout(function () {
460 this.keyDownDirection(Common.MOVE_DIRECTION_UP);
461 }.bind(this), 300);
462 return;
463 }
464 }
465 this.keyDownDirection(Common.MOVE_DIRECTION_UP);
466 break;
467 case cc.macro.KEY.right:
468 case Common.ANDROID_KEY.right:
469 this.keyDownDirection(Common.MOVE_DIRECTION_RIGHT);
470 break;
471 case cc.macro.KEY.down:
472 case Common.ANDROID_KEY.down:
473 fiFocusTarget = this._cFocus.findTarget(fiCurrentFocus, this._aFocusTargets, this._iSceneStatus, Common.MOVE_DIRECTION_DOWN);
474 if (!fiFocusTarget) { return; }
475 let iTargetTop = 0;
476 if (0 == fiFocusTarget.node.getParent().getParent().name.indexOf("block")) { //嵌套了两层的布局
477 iTargetTop = fiFocusTarget.node.getParent().getParent().getComponent(cc.Widget).top;
478 } else {
479 iTargetTop = fiFocusTarget.node.getParent().getComponent(cc.Widget).top;
480 }
481 let iCurrentFloorBottom = this._aBgHeight[this._oSceneContext._iPageIndex - 1] || 0;//当前楼层底部高度
482 // cc.log(iCurrentFloorBottom+"目标节点的高度:"+iTargetTop);
483 if (iTargetTop > iCurrentFloorBottom && fiCurrentFocus.node.name.indexOf("NaviCell") == -1) {
484 if (this._oSceneContext._iPageIndex < this._aBgHeight.length - 1) {
485 //---------------隐藏焦点0.6秒,就看不到焦点框长时间的跳转------------------
486 this._cFocus.hide();
487 setTimeout(function () {
488 this._cFocus.show();
489 }.bind(this), 600);
490 //----------------------------------------------------------------------
491 let height = this._aBgHeight[this._oSceneContext._iPageIndex] || 0; //520,750,1177,1463,1737,2119,2239
492 this._scrollview.scrollToOffset(cc.v2(0, height), 0.5);
493 // cc.log("滚动到:"+height);
494 this._oSceneContext._iPageIndex++;
495 setTimeout(function () {
496 this.keyDownDirection(Common.MOVE_DIRECTION_DOWN);
497 }.bind(this), 300);
498 return;
499 }
500 }
501 this.keyDownDirection(Common.MOVE_DIRECTION_DOWN);
502 break;
503 case cc.macro.KEY.left:
504 case Common.ANDROID_KEY.left:
505 this.keyDownDirection(Common.MOVE_DIRECTION_LEFT);
506 break;
507 case cc.macro.KEY.enter:
508 case cc.macro.KEY.space:
509 case Common.ANDROID_KEY.enter:
510 this.doCurrentFocusTVLinkAction(Common.TV_LINK_ACTION_CLICK);
511 break;
512 case cc.macro.KEY.backspace:
513 case Common.ANDROID_KEY.back:
514 this.backAScene();
515 break;
516 }
517 },
518
519 doCurrentFocusTVLinkAction: function (strAction) {
520 let strTVLink = this._fiCurrentFocus.getTVLink();
521 cc.log("tvlink===============" + strTVLink);
522 try {
523 let oTVLink = JSON.parse(strTVLink);
524 let aOperationList = oTVLink.click;
525 var rightNavLayout = this.targetAry[2].target;
526 rightNavLayout.destroyAllChildren(); //销毁完以前所有的子模块
527 this._oSceneContext._iPageIndex = 1;
528 for (let i = 0; i < aOperationList.length; i++) {
529 switch (aOperationList[i].action) {
530 case "changeLayout":
531 let model = aOperationList[i].parameters.layoutPath; //获取要加载的框架
532 if (-1 != model.indexOf("waterfall_recommend")) {
533 this.getRightRecommendRequest(waterfall_recommend); //渲染右侧推荐框架
534 } else if (-1 != model.indexOf("waterfall_parent")) {
535 this.getRightRecommendRequest(waterfall_parent); //渲染右侧推荐框架
536 } else if (-1 != model.indexOf("waterfall_course")) {
537 this.getRightRecommendRequest(waterfall_course); //渲染右侧推荐框架
538 } else if (-1 != model.indexOf("waterfall_primarySchool")) {
539 this.getRightRecommendRequest(waterfall_primarySchool); //渲染右侧推荐框架
540 } else if (-1 != model.indexOf("waterfall_three2six")) {
541 this.getRightRecommendRequest(waterfall_three2six); //渲染右侧推荐框架
542 }
543 break;
544 default:
545 // this.doTVLinkAction(aOperationList[i]);
546 break;
547 }
548 }
549 } catch (error) {
550 cc.log("runTVLinkAction Exception..." + error);
551 }
552 },
553
554 });
1 {
2 "ver": "1.0.5",
3 "uuid": "280c3aec-6492-4a9d-9f51-a9b00b570b4a",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //模拟动态数据
2
3 cc.Class({
4 extends: cc.Component,
5
6 statics: {
7 layout4Page: {
8 id: 121,//每个页面对应一个pageId,后台创建下发生成
9 name: "首页",//page layout名称
10 code: "eb954b1e-712e-415c-ba27-ddcf60f64adf",//每个页面对应一个pageCode,后台创建生成
11 layout: "absolute",//页面整理布局,非必填字段
12 children: [
13 {
14 "name": "Navigator",/* 左侧导航 */
15 "layout": "vertical",//浮动式垂直布局
16 "position": [44, 98],//框架的起始坐标
17 "childrenSize": [166, 94],//子元素尺寸
18 "childrenMargin": [0, 0, 3, 0],//子元素边距
19 "dataContainer": "promotion_list",//列表名称
20 "data": {/* 对于数据比较少的采取这种方式或者本地数据 */
21 "name": "Navigator",
22 "resultSet": [
23 {
24 "name": "recommend",//项名称 填写比较规范
25 "tvlink": '{"click": [{"action": "changeLayout","parameters": {"layoutPath": "layout/waterfall_recommend.json"}}]}',//项动作
26 "type": "promotion_item",//项类型 非必填
27 "imageURL": "image/navigator/recommend.png",//项图片路径
28 "top": 120,
29 "left": 100,
30 },
31 {
32 "name": "three2six",
33 "tvlink": '{"click": [{"action": "changeLayout","parameters": {"layoutPath": "layout/waterfall_three2six.json"}}]}',
34 "type": "promotion_item",
35 "imageURL": "image/navigator/three2six.png",
36 "top": 240,
37 "left": 100,
38 },
39 {
40 "name": "primarySchool",
41 "tvlink": '{"click": [{"action": "changeLayout","parameters": {"layoutPath": "layout/waterfall_primarySchool.json"}}]}',
42 "type": "promotion_item",
43 "imageURL": "image/navigator/primary.png",
44 "top": 360,
45 "left": 100,
46 },
47 {
48 "name": "course",
49 "tvlink": '{"click": [{"action": "changeLayout","parameters": {"layoutPath": "layout/waterfall_course.json"}}]}',
50 "type": "promotion_item",
51 "imageURL": "image/navigator/course.png",
52 "top": 480,
53 "left": 100,
54 },
55 {
56 "name": "parent",
57 "tvlink": '{"click": [{"action": "changeLayout","parameters": {"layoutPath": "layout/waterfall_parent.json"}}]}',
58 "type": "promotion_item",
59 "imageURL": "image/navigator/parent.png",
60 "top": 600,
61 "left": 100,
62 }
63 ]
64 },
65 // "dataSrc" : "layout/navigator.json",
66 "dataTmpl": "tmplNavigator",//数据渲染jsrender模板
67 "cellName": "navigator_list_cell"//渲染元素class和id前缀
68 },
69 {
70 "name": "Additional",/* 我的、搜索、历史 - 在右上角 */
71 "layout": "absolute",//绝对布局
72 "position": [0, 0],//框架的起点坐标
73 "focusstatus": 2,//列表元素焦点状态位,默认是0
74 "dataContainer": "addition_list",//列表容器id
75 "data": {//数据列表
76 "name": "Addition",//模块名称
77 "resultSet": [
78 {
79 "name": "我的",
80 "left": 822,
81 "top": 19,
82 "width": 137,
83 "height": 65,
84 "tvlink": "{click: [{action: 'changeUI',parameters: {uiName: 'collection'}}]}",
85 "type" : "promotion_item",
86 "imageURL": "image/addition/my.png"
87 },
88 {
89 "name": "历史",
90 "left": 965,
91 "top": 19,
92 "width": 137,
93 "height": 65,
94 "tvlink": "{click: [{action: 'changeUI',parameters: {uiName: 'history'}}]}",
95 "type" : "promotion_item",
96 "imageURL": "image/addition/history.png"
97 },
98 {
99 "name": "搜索",
100 "left": 1108,
101 "top": 19,
102 "width": 137,
103 "height": 65,
104 "tvlink": "{click: [{action: 'changeUI',parameters: {uiName: 'search'}}]}",
105 "type" : "promotion_item",
106 "imageURL": "image/addition/search.png"
107 }
108 ]
109 },
110 //"dataSrc" : "layout/addition.json",
111 "dataTmpl": "tmplAddition",
112 "cellName": "addition_list_cell"
113 },
114 {
115 "name": "WaterFall",/* 右侧瀑布流 */
116 "layout": "abosolute",
117 "position": [207, 78],
118 "width": 1100,//框架宽度
119 "height": 642,//框架高度
120 "extraClass": "move_transition",
121 "dataContainer": "waterfall_list_wrapper",
122 "data": {
123 "name": "WaterFallList",
124 "resultSet": [
125 {
126 "name": "WaterFallList",
127 "layout": "absolute",
128 "position": [20, 20],//这里是根据上下文拿
129 "disable": true,//是否是焦点控件
130 "containerId": "waterfall_list",//个性化元素id
131 "dataContainer": "waterfall_list",
132 "hasChildFrame": true,//是否有子框架
133 "frozen": true,//是否冻结获得的框架数据,在后续适当时机再解除冻结,继续渲染框架和数据 true 冻结 false 不冻结
134 "data": [],
135 "dataSrc": "layout/waterfall_recommend.json",//在没有data的情况下,dataSrc生效,并且成为请求数据路径的参考,是否要在远程服务器地址,视页面情况而定
136 "dataTmpl": "tmplPromotionGroup",//渲染jsrender模板
137 "cellName": "group_list",//同上
138 "childLayout": "absolute",//子元素布局,子元素框架可继承父元素框架
139 "childDataTmpl": "tmplPromotionGroupCell",//子元素渲染的jsrender模板
140 "childFramePath": "layout/recommend/"//子元素渲染框架路径
141 }
142 ]
143 },
144 "dataTmpl": "tmplPromotionGroupCell2",//jsrender渲染模板
145 "cellName": "waterfall_list"//同上
146
147 }
148 ]
149 },
150
151 }
152 });
1 {
2 "ver": "1.0.5",
3 "uuid": "ad5a92b2-a39c-4f97-bc28-be933f018df5",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "61ec49b6-05b5-4ed9-a3d4-e5a49ec26335",
4 "isSubpackage": false,
5 "subpackageName": "",
6 "subMetas": {}
7 }
...\ No newline at end of file ...\ No newline at end of file
1 cc.Class({
2 extends: cc.Component,
3
4 properties: {
5
6 //键值由具体场景决定
7 _aSceneContext:{default:[]},
8
9 /*
10 {
11 categoryId:123,
12 history:[]
13 }
14 /*/
15 _aSceneParameter:{default:[]},
16 _bBackStatus:false,
17 _iDefaultCollectionId:-1,
18
19 _iTotalFrames:0,
20 },
21
22 // use this for initialization
23 onLoad: function () {
24 this._aSceneContext=[];
25 this._aSceneParameter=[];
26 },
27
28 getSceneContext:function(){
29 return this._aSceneContext;
30 },
31 popSceneContext:function(){
32 return this._aSceneContext.pop();
33 },
34 getTopSceneContext:function(){
35 return this._aSceneContext[this._aSceneContext.length-1];
36 },
37 setSceneContext:function(aSceneContext){
38 this._aSceneContext=aSceneContext;
39 },
40 getSceneParameter:function(){
41 return this._aSceneParameter;
42 },
43 popSceneParameter:function(){
44 return this._aSceneParameter.pop();
45 },
46 getTopSceneParameter:function(){
47 return this._aSceneParameter[this._aSceneParameter.length-1];
48 },
49 setSceneParameter:function(aSceneParameter){
50 this._aSceneParameter=aSceneParameter;
51 },
52 getBackStatus:function(){
53 return this._bBackStatus;
54 },
55
56 setBackStatus:function(bBackStatus){
57 this._bBackStatus=bBackStatus;
58 },
59
60 getDefaultCollectionId:function(){
61 return this._iDefaultCollectionId;
62 },
63
64 setDefaultCollectionId:function(iCollectionId){
65 this._iDefaultCollectionId=iCollectionId;
66 },
67
68 setTotalFrames:function(iFrames){
69 this._iTotalFrames=iFrames;
70 },
71
72 getTotalFrames:function(){
73 return this._iTotalFrames;
74 }
75
76 // called every frame, uncomment this function to activate update callback
77 // update: function (dt) {
78
79 // },
80 });
1 {
2 "ver": "1.0.5",
3 "uuid": "9e3446c8-49f7-4eeb-8b1d-eb7f6c0e2fd8",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //公用参数
2
3 cc.Class({
4 extends: cc.Component,
5 statics: {
6 CARTOON_SPECIAL: '0',
7
8 //各应用基础分类
9 SONG_CATEGORY:"20",
10 ENHLISH_CATEGORY:"34",
11 STORY_CATEGORY:"43",
12 SCIENCE_CATEGORY:"46",
13 EDUCATION_CATEGORY:"35",
14 CLASSICAL_CATEGORY:"32",
15 ART_CATEGORY:"65",
16 //各应用appId
17 SONG_APPID:"td9c60ab5ba1f3c44c",
18 ENHLISH_APPID:"tdde7add064d218a84",
19 STORY_APPID:"td16283e54e262f207",
20 SCIENCE_APPID:"td9eeab808e4d1a4b7",
21 EDUCATION_APPID:"td8765403b3f38d1a8",
22 CLASSICAL_APPID:"td7a74235419ac55ee",
23 ART_APPID:"tdd72ee5abf9a38754",
24 CARTOON_APPID:"tda7e47f868313d9f5",
25 //各应用免费分类id
26 SONG_FREE_CID:"143",
27 ENGLISH_FREE_CID:"149",
28 STORY_FREE_CID:"152",
29 SCIENCE_FREE_CID:"158",
30 EDUCATION_FREE_CID:"155",
31 CLASSICAL_FREE_CID:"146",
32 ART_FREE_CID:"161",
33
34 },
35 });
1 {
2 "ver": "1.0.5",
3 "uuid": "764bc77a-675b-4ee3-8a09-865c957071d7",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //修改Network,解决闪屏问题
2 var Network = require('Network');
3 cc.Class({
4 extends: Network,
5
6 properties: {
7
8 },
9
10 // use this for initialization
11 onLoad: function () {
12
13 },
14
15
16 statics: {
17 //_count: 0,
18
19 /*
20 var txt = document.getElementById('txt');
21 //1.创建XMLHttpRequest对象
22 var xhr = null;
23 if(window.XMLHttpRequest) {
24 xhr = new XMLHttpRequest();
25 }else {
26 xhr = new ActiveXObject('Microsoft.XMLHTTP');
27 }
28 //2.打开与服务器的链接
29 xhr.open('get',url,false);
30 //3.发送给服务器
31 xhr.send(null);
32 //4.响应就绪(同步请求)
33 var json = JSON.parse(xhr.responseText);
34 txt.innerHTML = json;
35 cc.log('其他程序');
36 */
37
38
39
40 //ajax请求函数
41 ajax: function (strMethod, strURL, astrContentType, oDataOrPostBody, onSuccess, onError, oScope, oAdditionalData) {
42 var xlr = null;
43 var oResult = {};
44
45
46
47 if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc.
48 xlr = new XMLHttpRequest(); //Log.info('XMLHttpRequest');
49 } else if (window.ActiveXObject) {// code for IE6, IE5
50 xlr = new ActiveXObject("Microsoft.XMLHTTP"); //Log.info('ActiveXObject');
51 }
52
53 if (!xlr) {
54 cc.log("Your browser does not support XMLHTTP, using iframe instead..");
55 //退化到使用iframe 在cocos中无用 //这里两个函数名需要字符串输入
56 //iframeRequest(strMethod, strURL, astrContentType, oDataOrPostBody, onSuccess, onError, oAdditionalData)
57 return;
58 }
59
60 function onStateChange() {
61 if (xlr.readyState == 4) {// 4 = "loaded"
62 if (xlr.status == 200) {// 200 = OK
63 if (null != oScope) {
64 onSuccess.call(oScope, xlr.responseText, oAdditionalData);
65 } else {
66 onSuccess(xlr.responseText, oAdditionalData);
67 }
68 } else {
69 if (null != oScope) {
70 onError.call(oScope, xlr.responseText, oAdditionalData);
71 } else {
72 onError(xlr.responseText, oAdditionalData);
73 }
74 }
75 xlr = null;
76 }
77 }
78
79
80
81 strMethod = strMethod.toUpperCase();
82 var strDataOrPostBody = '';
83 if (strMethod == "GET") {
84
85 //以下这段可使用正则表达式改造
86 if (oDataOrPostBody) {
87 if (strURL.indexOf('?') > 0) { //有问号
88 if (strURL.indexOf('=') > strURL.indexOf('?') //并且有等号在问号右边
89 && strURL.lastIndexOf('&') != strURL.length - 1) //最后一个不是&
90 {
91 strURL = strURL.concat('&');
92 } else { //光有问号没等号
93 cc.log('Unavailable Request URL!');
94 return;
95 }
96 } else {//没问号
97 strURL = strURL.concat('?');
98 }
99
100 if (typeof oDataOrPostBody == "string") {
101 strDataOrPostBody = oDataOrPostBody;
102 } else if (oDataOrPostBody instanceof Object) {
103 for (var key in oDataOrPostBody) {
104 strDataOrPostBody = strDataOrPostBody.concat(key).concat('=').concat(oDataOrPostBody[key]).concat('&');
105 }
106 strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
107 //strDataOrPostBody.TrimEnd('&');
108 } else {
109 cc.log('Unavailable Parameters!');
110 return;
111 }
112 }
113
114 strURL = strURL.concat(strDataOrPostBody);
115 }
116
117 xlr.onreadystatechange = onStateChange;
118
119 xlr.open(strMethod, strURL, true);
120
121 var isWWWFormURLEncoded = false;
122 if (astrContentType) {
123 for (var i = 0; i < astrContentType.length; i++) {
124 xlr.setRequestHeader('Content-type', astrContentType[i]);
125 if (astrContentType[i] == 'application/x-www-form-urlencoded') {
126 isWWWFormURLEncoded = true;
127 break;
128 }
129 }
130 }
131 //xlr.setRequestHeader('Connection', 'close');
132
133 switch (strMethod) {
134 case 'GET':
135 xlr.send(null);
136 break;
137 case 'POST':
138 if (isWWWFormURLEncoded) {
139
140 }
141 if (oDataOrPostBody) {
142 /*
143 if (isWWWFormURLEncoded) {
144 var fd=new FormData();
145 if (typeof oDataOrPostBody == "string") {
146 strDataOrPostBody = oDataOrPostBody;
147
148 var aParameters1=oDataOrPostBody.split('&');
149 for (var i=0;i<aParameters1.length;i++){
150 var aPairs1=aParameters1.split('=');
151 if (aPairs1[0] && aPairs1[1]){
152 fd.append(aPairs1[0],aPairs1[1]);
153 }
154 }
155
156 } else if (oDataOrPostBody instanceof Object) {
157 for (var key in oDataOrPostBody) {
158 fd.append(key,oDataOrPostBody[key]);
159 }
160 //strDataOrPostBody.TrimEnd('&');
161 //strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
162 } else {
163 console.log("Unavailable Parameters!");
164 return
165 }
166 xlr.send(fd);
167 }else{*/
168 if (typeof oDataOrPostBody == "string") {
169 strDataOrPostBody = oDataOrPostBody;
170
171 } else if (oDataOrPostBody instanceof Object) {
172 for (var key in oDataOrPostBody) {
173 strDataOrPostBody = strDataOrPostBody.concat(key).concat('=').concat(oDataOrPostBody[key]).concat('&');
174 }
175 //strDataOrPostBody.TrimEnd('&');
176 strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
177 } else {
178 oResult.businessCode = 'success';
179 oResult.description = 'Unavailable Parameters!';
180 return oResult;
181 }
182 xlr.send(strDataOrPostBody);
183 //}
184 } else {
185 xlr.send(null);
186 }
187
188 break;
189 }
190
191
192 // cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LOADING, function () {
193 // // cc.log("运行新场景之前所触发的事件------------->");
194 // xlr.abort();
195 // });
196
197 },
198 loadImageInJSRuntime: function (strURL, iRequestId, onSuccess, onError, oScope) {
199 cc.loader.load(
200 {
201 url: strURL,
202 isCrossOrigin: false,
203 type: 'jpg' //防止跨域问题
204 },
205 function (err, texture) {
206 if (!err) {
207 if (null != oScope) {
208 onSuccess.call(oScope, texture, iRequestId);
209 } else {
210 onSuccess(texture);
211 }
212 } else {
213 if (null != oScope) {
214 onError.call(oScope, err, iRequestId);
215 } else {
216 onError(err);
217 }
218 }
219 }
220 );
221
222 },
223
224 loadImageInNativeRuntime: function (strURL, iRequestId, onSuccess, onError, oScope) {
225 cc.loader.load(strURL, function (err, texture) {
226 if (null != oScope) {
227 onSuccess.call(oScope, texture, iRequestId);
228 } else {
229 onSuccess(texture);
230 }
231 cc.log('Should load a texture from external url: ' + (texture instanceof cc.Texture2D));
232 });
233 },
234
235 },
236
237
238 // called every frame, uncomment this function to activate update callback
239 // update: function (dt) {
240
241 // },
242 });
1 {
2 "ver": "1.0.5",
3 "uuid": "77b9f0db-8832-41b4-b51f-ca5fd671b093",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 cc.Class({
2 extends: cc.Component,
3
4 properties: {
5
6 },
7
8 // use this for initialization
9 onLoad: function () {
10
11 },
12
13 statics: {
14
15 SCREEN_WIDTH: 1280.0,
16 SCREEN_HEIGHT: 720.0,
17
18 MOVE_DIRECTION_UP: 0,
19 MOVE_DIRECTION_RIGHT: 1,
20 MOVE_DIRECTION_DOWN: 2,
21 MOVE_DIRECTION_LEFT: 3,
22
23 FOCUS_FLY_DURATION: 0.3,
24 FOCUS_BREATH_DURATION: 0.8,
25
26 //Action Tag
27 FEATURE_NODE_TRANSFER: 1,
28 FOCUS_CELL_TRANSFER: 1,
29 FOCUS_CONTAINER_TRANSFER: 1,
30 FOCUS_CONTAINER_BREATH: 2,
31 FOCUS_CONTAINER_JOGGLE: 3,
32
33 OVERLENGTH_MOVING: 4,
34
35 SCROLL_BY_FOCUS_CHANGE: 5,
36
37 API_SORT_ASC: 'asc',
38 API_SORT_DESC: 'desc',
39
40 FEMALE: 0,
41 MALE: 1,
42 BAND: 2,
43
44 ANDROID_KEY: {
45 back: 6,
46 up: 1003,
47 right: 1001,
48 down: 1004,
49 left: 1000,
50 enter: 1005
51 },
52
53 BUSINESS_PARAMETER: {
54 // {:,
55
56 },
57
58 //天津少儿2.0测试接口
59 // TOPDRAW_API_SERVER:'http://202.99.114.74:52118/hyperion.chimera/',
60 // TOPDRAW_API_SERVER2:'http://202.99.114.74:52118/hyperion.archer/',
61 // TOPDRAW_IMAGE_SERVER:'http://202.99.114.74:52118/hyperion.resource/',
62
63 //新部署测试接口
64 TOPDRAW_API_SERVER: 'http://139.196.192.242:8080/hyperion.chimera/',
65 TOPDRAW_API_SERVER2: 'http://139.196.192.242:8080/hyperion.archer/',
66 TOPDRAW_IMAGE_SERVER: 'http://139.196.192.242:8080/hyperion.resource/',
67 // TOPDRAW_API_SERVER : "http://111.11.189.12:8080/hyperion.chimera/", //暂且取用EPG数据
68 // TOPDRAW_IMAGE_SERVER : "http://111.11.189.12:8080/hyperion.resource/",
69 // TOPDRAW_API_SERVER2:'http://111.11.189.12:8080/hyperion.archer/',
70 TEST_API_TOKEN: 'dd4b1968eb5b417e834c2687e23d2471',
71
72 //教育
73 TOPDRAW_API_SERVER_EDU: 'http://139.196.4.234:38080/hyperion.chimera/',
74 TOPDRAW_IMAGE_SERVER_EDU: 'http://139.196.4.234:38080/eduHall/pages/index/',
75 TOPDRAW_IMAGE_SERVER_EDU_RIGHT: 'http://139.196.4.234:38080/hyperion.resource/',
76 TEST_API_TOKEN_EDU: 'b4863228c5ef4593991ad4cc83f0cabf',
77
78 BI_BASE_PATH: 'http://139.196.192.242:82/1.gif',
79
80 TV_LINK_ACTION_CLICK: 100,
81 TV_LINK_ACTION_HOVER: 101,
82
83 // TEST_API_TOKEN:'8a56a215e7be4cf6910990d4d7c95e2c',
84 USER_ID: '1',
85 AUTH_STATUS: 0,
86 DEBUG_MODE: 0,//0非调试模式,1调试模式
87 APP_VERSION_NAME: '1.0.0',
88
89 g_strCurrentSceneName: "",
90
91 loadRes: function (strResourceURL,/*iResourceIndex,*/onSuccess, onError, oScope) {
92 cc.loader.loadRes(strResourceURL,
93 function (error, loadedResource) {
94 if (error) {
95 if (null != oScope) {
96 onError.call(oScope, error);
97 } else {
98 onError(error);
99 }
100 } else {
101 if (null != oScope) {
102 onSuccess.call(oScope, loadedResource/*,iResourceIndex*/);
103 } else {
104 onSuccess(loadedResource/*,iResourceIndex*/);
105 }
106 }
107 }
108 );
109
110 },
111
112 setTimeout: function (onTimeComplete, iDuration, oScope, argements) {
113
114 /*
115 window.setTimeout(onTimeComplete,iDuration,);
116
117
118 cc.loader.loadRes(strResourceURL,
119 function(error,loadedResource){
120 if (error){
121 if(null!=oScope){
122 onError.call(oScope,error);
123 }else{
124 onError(error);
125 }
126 }else{
127 if(null!=oScope){
128 onSuccess.call(oScope,loadedResource);
129 }else{
130 onSuccess(loadedResource);
131 }
132 }
133 }
134 );
135 */
136 },
137 getAbsolutePositionX: function (node) {
138
139 },
140 getAbsolutePositionY: function (node) {
141
142 },
143 promiseAjax: function () {
144
145 },
146
147 getNodePath: function (node) {
148 let strPath = "";
149 while (node.parent && node.parent.parent) {//不算TopCanvas
150 strPath = "/" + node.name + strPath;
151 node = node.parent;
152 }
153 return strPath.substring(1);
154 },
155 getX: function (tempNode) {
156 let fCenterX = 0;
157 while (tempNode.parent.parent) {//不算TopCanvas
158 //cc.log(tempNode.name+" X: "+tempNode.x)
159 fCenterX += tempNode.x;
160 tempNode = tempNode.parent;
161 }
162 return fCenterX;
163 },
164 getY: function (tempNode) {
165 let fCenterY = 0;
166 while (tempNode.parent.parent) {//不算TopCanvas
167 //cc.log(tempNode.name+" Y: "+tempNode.y)
168 fCenterY += tempNode.y;
169 tempNode = tempNode.parent;
170 }
171 return fCenterY;
172 },
173
174
175 /**
176 * 用于合并对象 By Eva
177 * @param target
178 * @param firstSource
179 * @returns {any}
180 */
181 assign: function (target, firstSource) {
182 if (target === undefined || target === null)
183 throw new TypeError("Cannot convert first argument to object");
184 var to = Object(target);
185 for (var i = 1; i < arguments.length; i++) {
186 var nextSource = arguments[i];
187 if (nextSource === undefined || nextSource === null) continue;
188 var keysArray = Object.keys(Object(nextSource));
189 for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
190 var nextKey = keysArray[nextIndex];
191 var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
192 if (desc !== undefined && desc.enumerable) to[nextKey] = nextSource[nextKey];
193 }
194 }
195 return to;
196 },
197
198
199 }
200 // called every frame, uncomment this function to activate update callback
201 // update: function (dt) {
202
203 // },
204 });
1 {
2 "ver": "1.0.5",
3 "uuid": "23d179fb-41db-4a22-9803-860d7e587a34",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Common = require('Common');
2 var FocusInfo = require('FocusInfo');
3
4 cc.Class({
5 extends: cc.Component,
6 properties: {
7 // TODO: to be a real Component?
8 //_fLeft:0,
9 //_fTop:0,
10 //_fWidth:0,
11 //_fHeight:0,
12 //_oFocusNode:null,//deprecated
13 _strTVLink: '',
14 _bEnable: false,
15 _fScaleFactor: 1.06,
16 },
17
18 //ctor: function (fLeft,fTop,fWidth,fHeight,oFocusNode,strTVLink,bEnable,fnOnFocus,fnOnBlur) {
19 ctor: function () {
20 //this._fLeft=arguments[0];
21 //this._fTop=arguments[1];
22 //this._fWidth=arguments[2];
23 //this._fHeight=arguments[3];
24 //this._oFocusNode=arguments[4];
25 this._strTVLink = arguments[0];
26 this._bEnable = arguments[1];
27 this._fnOnFocus = arguments[2];
28 this._fnOnBlur = arguments[3];
29 //this._fLeft=fLeft;
30 //this._fTop=fTop;
31 //this._fWidth=fWidth;
32 //this._fHeight=fHeight;
33 //this._oFocusNode=oFocusNode;
34 },
35
36 init: function (/*fLeft,fTop,fWidth,fHeight,oFocusNode,*/strTVLink, bEnable, fnOnFocus, fnOnBlur, fScaleFactor) {
37 //this._fLeft=arguments[0];
38 //this._fTop=arguments[1];
39 //this._fWidth=arguments[2];
40 //this._fHeight=arguments[3];
41 //this._oFocusNode=arguments[4];
42 this._strTVLink = strTVLink;
43 this._bEnable = bEnable;
44 this._fnOnFocus = fnOnFocus;
45 this._fnOnBlur = fnOnBlur;
46 this._fScaleFactor = fScaleFactor;
47 //this._fLeft=fLeft;
48 //this._fTop=fTop;
49 //this._fWidth=fWidth;
50 //this._fHeight=fHeight;
51 //this._oFocusNode=oFocusNode;
52 },
53
54 // use this for initialization
55 onLoad: function () {
56 //气泡式向上传递 通常收不到
57 //this.node.on('foucs', this._fnOnFocus || function(){},this);
58 //this.node.on('blur', this._fnOnBlur || function(){},this);
59 },
60
61 getLeft: function () {
62 //return this._fLeft;
63 return Common.SCREEN_WIDTH / 2 + (this.getX() - this.node.width / 2);
64 },
65
66 //setLeft:function(fLeft){
67 // this._fLeft=fLeft;
68 //},
69
70 getTop: function () {
71 //return this._fTop;
72 return Common.SCREEN_HEIGHT / 2 - (this.getY() + this.node.height / 2);
73 },
74
75 getX: function () {
76 return Common.getX(this.node);
77 },
78 getY: function () {
79 return Common.getY(this.node);
80 },
81 //setTop:function(fTop){
82 // this._fTop=fTop;
83 //},
84 getWidth: function () {
85 //return this._fWidth;
86 return this.node.width;
87 },
88 setWidth: function (fWidth) {
89 // this._fWidth=fWidth;
90 this.node.width = fWidth;
91 },
92 getHeight: function () {
93 //return this._fHeight;
94 return this.node.height;
95 },
96 //setHeight:function(fHeight){
97 // this._fHeight=fHeight;
98 //},
99 //getFocusNode:function(){
100 // return this._oFocusNode;
101 //},
102 //setFocusNode:function(oFocusNode){
103 // this._oFocusNode=oFocusNode;
104 //},
105 getTVLink: function () {
106 return this._strTVLink;
107 },
108 setTVLink: function (strTVLink) {
109 this._strTVLink = strTVLink;
110 },
111 getEnable: function () {
112 return this._bEnable;
113 },
114 setEnable: function (bEnable) {
115 this._bEnable = bEnable;
116 },
117 onFocus: function (fiFrom) {
118 if (this._fnOnFocus) {
119 this._fnOnFocus(fiFrom);
120 }
121 },
122 onBlur: function (fiTo) {
123 if (this._fnOnBlur) {
124 this._fnOnBlur(fiTo);
125 }
126 },
127 getScaleFactor: function () {
128 return this._fScaleFactor;
129 },
130 setScaleFactor: function (fScaleFactor) {
131 this._fScaleFactor = fScaleFactor;
132 },
133
134 onEnable: function () { //修改节点的active属性为true时会执行挂载组件的onEnable方法
135 //注意:子节点有ListView要慎用!会使所有未初始化数据的子节点也改变焦点状态
136 // cc.log("执行FocusInfo中onEnable方法");
137 if (0 != this.node.name.indexOf('RoleInstallListCell') && 0 != this.node.name.indexOf('AchievementListCell')) {
138 this._bEnable = true;
139 }
140 },
141
142 onDisable: function () { //修改节点的active属性为false时会执行挂载组件的onDisable方法
143 // cc.log("执行FocusInfo中onDisable方法" + this.node.name);
144 this._bEnable = false;
145 },
146
147 onDestroy: function () {
148 // cc.log("节点销毁-------->" + this.node.name);
149 cc.director.emit('stop_render'); //分发事件
150
151 // this.node.removeComponent(FocusInfo);
152 },
153
154 });
1 {
2 "ver": "1.0.5",
3 "uuid": "af6c2393-5eef-4d0c-830e-ddcae637d713",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //全局类
2
3 window.APP_VERSION="";
4 window.FISRST_IN=true;
5
6 window.testJsLog=function(strDesc,isTrue){
7 cc.log(strDesc+"/////////////////////////Globals---->testJsLog"+isTrue);
8 }
1 {
2 "ver": "1.0.5",
3 "uuid": "fd60ed02-fd3e-4f8a-9168-fcbc22d30a65",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Network = require('Network');
2 var Common = require('Common');
3 cc.Class({
4 extends: cc.Component,
5
6 properties: {
7 // foo: {
8 // default: null, // The default value will be used only when the component attaching
9 // to a node for the first time
10 // url: cc.Texture2D, // optional, default is typeof default
11 // serializable: true, // optional, default is true
12 // visible: true, // optional, default is true
13 // displayName: 'Foo', // optional
14 // readonly: false, // optional, default is false
15 // },
16 // ...
17 _iLogCount:0,
18 _oScene:null,
19
20 },
21
22 init: function (oScene) {
23 this._oScene=oScene;
24 },
25 // use this for initialization
26 onLoad: function () {
27 //设置本身节点的宽高透明
28 this.node.x=0;
29 this.node.y=0;
30 this.node.width=Common.SCREEN_WIDTH;
31 this.node.height=Common.SCREEN_HEIGHT;
32
33 let nodeLogMask=new cc.Node('LogMask');
34 nodeLogMask.x=0;
35 nodeLogMask.y=0;
36
37 this.node.addChild(nodeLogMask,10);
38
39 //设置为全屏遮罩
40 // let urlSplash = cc.url.raw('resources/Texture/splash_black.png');
41 // let textureFocus = cc.textureCache.addImage(urlSplash);
42
43 let spriteSplash=nodeLogMask.addComponent(cc.Sprite);
44 // spriteSplash.spriteFrame = new cc.SpriteFrame(textureFocus);
45 //TODO:2.0移除cc.textureCache
46 // cc.loader.loadRes("Texture/ui/splash_black",cc.SpriteFrame,function(error,spriteFrame){
47 // spriteSplash.spriteFrame=spriteFrame;
48 // });
49 //因为纹理2*2所以这里写死了
50 nodeLogMask.setScale(Common.SCREEN_WIDTH/2,Common.SCREEN_HEIGHT/2);
51 nodeLogMask.opacity=100;
52 // nodeLogMask.setLocalZOrder(400);//2.0中所有子节点都会在父节点之后渲染
53
54 let nodeLogList=new cc.Node('LogList');
55 nodeLogList.x = 20 - Common.SCREEN_WIDTH/2;
56 nodeLogList.y = Common.SCREEN_HEIGHT/2 - 20;
57 nodeLogList.setAnchorPoint(0,1);
58 this.node.addChild(nodeLogList,10);
59 // nodeLogList.setLocalZOrder(402);
60 this._nodeLogList = nodeLogList;
61
62 //this.node.color=new cc.Color(0, 0, 0); //黑色
63 //this.node.cascadeOpacity=false;
64
65 //this.node.parent=this._oScene.node;
66
67 //this.node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(Texture2D.);
68
69 //parentNode.cascadeOpacity=false;
70 },
71
72 //statics: {
73
74
75 serverD:function(strInfo){
76
77 },
78 screenD:function(strInfo){
79 this.flushLogToScreen(strInfo,'Debug');
80 },
81 serverI:function(strInfo){
82
83 },
84 screenI:function(strInfo){
85
86 this.flushLogToScreen(strInfo,'Info');
87 },
88 serverW:function(strInfo){
89
90 },
91 screenW:function(strInfo){
92
93 this.flushLogToScreen(strInfo,'Warning');
94 },
95 serverE:function(strInfo){
96
97 },
98 screenE:function(strInfo){
99
100 this.flushLogToScreen(strInfo,'Error');
101 },
102
103 flushLogToScreen:function(strInfo, strLevel){
104 let nodeInfo=new cc.Node('log_info_'+this._iLogCount);
105 let lblInfo=nodeInfo.addComponent(cc.Label);
106 this._iLogCount++;
107 //if _iLogCount>20
108 lblInfo.string=strLevel+':'+strInfo;//+(nodeInfo.width/2-Common.SCREEN_WIDTH/2);
109 lblInfo.fontSize=18;
110 lblInfo.lineHeight=20;
111 //nodeInfo.parent=this.node;
112 nodeInfo.parent=this._nodeLogList;
113 switch(strLevel){
114 case 'Debug':
115 nodeInfo.color=new cc.color(51,255,255,255);
116 break;
117 case 'Info':
118 nodeInfo.color=new cc.color(51,255,51,255);
119 break;
120 case 'Warning':
121 nodeInfo.color=new cc.color(255,255,51,255);
122 break;
123 case 'Error':
124 nodeInfo.color=new cc.color(255,51,51,255);
125 break;
126 default:
127 nodeInfo.color=new cc.color(255,255,255,255);
128
129 }
130
131 //nodeInfo.color=new cc.color(255,255,255,255);
132 nodeInfo.height=20;
133 nodeInfo.setAnchorPoint(0,1);
134 nodeInfo.y = -(this._iLogCount-1)*20;
135 // nodeInfo.setLocalZOrder(401);
136 this._nodeLogList.y = this._nodeLogList.y + ((this._iLogCount - parseInt(Common.SCREEN_HEIGHT/20)+1)>0 ? 20 : 0);
137 },
138 clearLogOnScreen : function () {
139 this._nodeLogList.destroy();
140 this._iLogCount = 0;
141 let nodeLogList=new cc.Node('LogList');
142 nodeLogList.x = 20 - Common.SCREEN_WIDTH/2;
143 nodeLogList.y = Common.SCREEN_HEIGHT/2 - 20;
144 nodeLogList.setAnchorPoint(0,1);
145 this.node.addChild(nodeLogList,10);
146 // nodeLogList.setLocalZOrder(402);
147 this._nodeLogList = nodeLogList;
148 },
149 flushLogToServer:function(){
150
151
152 }
153 //TODO:需要加一个清除(所有条目全删除)和删除日志(一条一条删除)的函数
154 //}
155 // called every frame, uncomment this function to activate update callback
156 // update: function (dt) {
157
158 // },
159 });
1 {
2 "ver": "1.0.5",
3 "uuid": "575ad62c-3a8f-452a-a7cf-8447bf43ac47",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Common = require('Common');
2 cc.Class({
3 extends: cc.Component,
4
5 properties: {
6 },
7
8 // use this for initialization
9 onLoad: function () {
10
11 },
12
13
14 statics: {
15 //_count: 0,
16
17 /*
18 var txt = document.getElementById('txt');
19 //1.创建XMLHttpRequest对象
20 var xhr = null;
21 if(window.XMLHttpRequest) {
22 xhr = new XMLHttpRequest();
23 }else {
24 xhr = new ActiveXObject('Microsoft.XMLHTTP');
25 }
26 //2.打开与服务器的链接
27 xhr.open('get',url,false);
28 //3.发送给服务器
29 xhr.send(null);
30 //4.响应就绪(同步请求)
31 var json = JSON.parse(xhr.responseText);
32 txt.innerHTML = json;
33 cc.log('其他程序');
34 */
35
36
37
38 //ajax请求函数
39 ajax: function (strMethod, strURL, astrContentType, oDataOrPostBody, onSuccess, onError, oScope, oAdditionalData) {
40 var xlr = null;
41 var oResult = {};
42
43 if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc.
44 xlr = new XMLHttpRequest(); //Log.info('XMLHttpRequest');
45 } else if (window.ActiveXObject) {// code for IE6, IE5
46 xlr = new ActiveXObject("Microsoft.XMLHTTP"); //Log.info('ActiveXObject');
47 }
48
49 if (!xlr) {
50 cc.log("Your browser does not support XMLHTTP, using iframe instead..");
51 //退化到使用iframe 在cocos中无用 //这里两个函数名需要字符串输入
52 //iframeRequest(strMethod, strURL, astrContentType, oDataOrPostBody, onSuccess, onError, oAdditionalData)
53 return;
54 }
55
56 function onStateChange() {
57 if (xlr.readyState == 4) {// 4 = "loaded"
58 if (xlr.status == 200) {// 200 = OK
59 if (null != oScope) {
60 onSuccess.call(oScope, xlr.responseText, oAdditionalData);
61 } else {
62 onSuccess(xlr.responseText, oAdditionalData);
63 }
64 } else {
65 if (null != oScope) {
66 onError.call(oScope, xlr.responseText, oAdditionalData);
67 } else {
68 onError(xlr.responseText, oAdditionalData);
69 }
70 }
71 xlr = null;
72 }
73 }
74
75
76
77 strMethod = strMethod.toUpperCase();
78 var strDataOrPostBody = '';
79 if (strMethod == "GET") {
80
81 //以下这段可使用正则表达式改造
82 if (oDataOrPostBody) {
83 if (strURL.indexOf('?') > 0) { //有问号
84 if (strURL.indexOf('=') > strURL.indexOf('?') //并且有等号在问号右边
85 && strURL.lastIndexOf('&') != strURL.length - 1) //最后一个不是&
86 {
87 strURL = strURL.concat('&');
88 } else { //光有问号没等号
89 cc.log('Unavailable Request URL!');
90 return;
91 }
92 } else {//没问号
93 strURL = strURL.concat('?');
94 }
95
96 if (typeof oDataOrPostBody == "string") {
97 strDataOrPostBody = oDataOrPostBody;
98 } else if (oDataOrPostBody instanceof Object) {
99 for (var key in oDataOrPostBody) {
100 strDataOrPostBody = strDataOrPostBody.concat(key).concat('=').concat(oDataOrPostBody[key]).concat('&');
101 }
102 strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
103 //strDataOrPostBody.TrimEnd('&');
104 } else {
105 cc.log('Unavailable Parameters!');
106 return;
107 }
108 }
109
110 strURL = strURL.concat(strDataOrPostBody);
111 }
112
113 xlr.onreadystatechange = onStateChange;
114
115 xlr.open(strMethod, strURL, true);
116
117 var isWWWFormURLEncoded = false;
118 if (astrContentType) {
119 for (var i = 0; i < astrContentType.length; i++) {
120 xlr.setRequestHeader('Content-type', astrContentType[i]);
121 if (astrContentType[i] == 'application/x-www-form-urlencoded') {
122 isWWWFormURLEncoded = true;
123 break;
124 }
125 }
126 }
127 //xlr.setRequestHeader('Connection', 'close');
128
129 switch (strMethod) {
130 case 'GET':
131 xlr.send(null);
132 break;
133 case 'POST':
134 if (isWWWFormURLEncoded) {
135
136 }
137 if (oDataOrPostBody) {
138 /*
139 if (isWWWFormURLEncoded) {
140 var fd=new FormData();
141 if (typeof oDataOrPostBody == "string") {
142 strDataOrPostBody = oDataOrPostBody;
143
144 var aParameters1=oDataOrPostBody.split('&');
145 for (var i=0;i<aParameters1.length;i++){
146 var aPairs1=aParameters1.split('=');
147 if (aPairs1[0] && aPairs1[1]){
148 fd.append(aPairs1[0],aPairs1[1]);
149 }
150 }
151
152 } else if (oDataOrPostBody instanceof Object) {
153 for (var key in oDataOrPostBody) {
154 fd.append(key,oDataOrPostBody[key]);
155 }
156 //strDataOrPostBody.TrimEnd('&');
157 //strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
158 } else {
159 console.log("Unavailable Parameters!");
160 return
161 }
162 xlr.send(fd);
163 }else{*/
164 if (typeof oDataOrPostBody == "string") {
165 strDataOrPostBody = oDataOrPostBody;
166
167 } else if (oDataOrPostBody instanceof Object) {
168 for (var key in oDataOrPostBody) {
169 strDataOrPostBody = strDataOrPostBody.concat(key).concat('=').concat(oDataOrPostBody[key]).concat('&');
170 }
171 //strDataOrPostBody.TrimEnd('&');
172 strDataOrPostBody = strDataOrPostBody.substring(0, strDataOrPostBody.length - 1);
173 } else {
174 oResult.businessCode = 'success';
175 oResult.description = 'Unavailable Parameters!';
176 return oResult;
177 }
178 xlr.send(strDataOrPostBody);
179 //}
180 } else {
181 xlr.send(null);
182 }
183
184 break;
185 }
186
187 },
188 loadImageInJSRuntime: function (strURL, onSuccess, onError, oScope) {
189 cc.loader.load(
190 {
191 url: strURL,
192 isCrossOrigin: false,
193 type: 'jpg' //防止跨域问题
194 },
195 function (err, texture) {
196 if (!err) {
197 if (null != oScope) {
198 onSuccess.call(oScope, texture);
199 } else {
200 onSuccess(texture);
201 }
202 } else {
203 if (null != oScope) {
204 onError.call(oScope, err);
205 } else {
206 onError(err);
207 }
208 }
209 }
210 );
211
212 },
213
214 loadImageInNativeRuntime: function (strURL, onSuccess, onError, oScope, node, strAnimationTag) {//留个钩子以便为图片加载做动画
215 let flag = false;
216 //这里使用cc.director.once而不是cc.director.on避免多次累加注册
217 cc.director.once('stop_render', function (event) { //注册并监听事件
218 cc.log("Network(diapatchEvent)-------------------------->");
219 flag = true;
220 });
221
222 try {
223 cc.loader.load(strURL, function (err, texture) {
224 if (null != oScope) {
225 // let flag = false;
226 // if (Common.g_strCurrentSceneName && cc.director.getScene() && Common.g_strCurrentSceneName == cc.director.getScene().name) {
227 // flag = true;
228 // }
229 if (!flag) {//如果已经切换场景就不做下面这件事情
230 try {
231 onSuccess.call(oScope, texture);
232 } catch (err) {
233 cc.log(err);
234 }
235 }
236 } else {
237 onSuccess(texture);
238 }
239 // cc.log('Should load a texture from external url: ' + (texture instanceof cc.Texture2D));
240 });
241 } catch (err) {
242 cc.log(err);
243 }
244 },
245
246 },
247
248
249 // called every frame, uncomment this function to activate update callback
250 // update: function (dt) {
251
252 // },
253 });
1 {
2 "ver": "1.0.5",
3 "uuid": "e213e4ae-14f8-406c-afba-9ad9aea75e06",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Common = require('Common');
2 var Network = require('Network');
3 var FocusInfo = require('FocusInfo');
4 var Application = require('Application');
5 var Log = require('Log');
6 cc.Topdraw = cc.Topdraw || {};
7 cc.Topdraw.TVCanvas =
8 cc.Class({
9 extends: cc.Component,
10 properties: {
11 //如果成功了要添加
12 //Log 版块
13 _cLog: null,
14 _cApplication: null,
15 _cFocus: null,
16 _aFocusTargets: [], //可被聚焦的块集合 分成状态区
17 _fiCurrentFocus: null,
18 _iSceneStatus: 0, //场景状态 和焦点寻找有关系
19 _fFocusScaleFactor: 1.06, //焦点缩放因数
20 //数据初始化状态
21 _bIsFocusInit: false,
22 _oSceneContext: null, //当前场景的上下文,用于后续恢复
23 //_oCurrentSceneParameter:null, //去下一个场景的参数
24 _oNextSceneParameter: null, //去下一个场景的参数
25 _compPlayer: null,
26 _aTouchContext: [],
27 _defaultBackScene: null,//每个场景Canvas都有的 默认返回场景 每个场景自己构造函数内设置值
28 _oFocusScaleFactorInfo: null,
29
30 holdClick: false, //检测是否长按
31 _bShowExitBox: false,
32 },
33
34 // use this for initialization
35 onLoad: function () {
36 //关掉调试信息
37 cc.debug.setDisplayStats(true);
38 //设置背景为透明
39 //TODO:2.0警告建议cc.Camera.main.backgroundColor = cc.Color.TRANSPARENT;
40 // cc.director.setClearColor(cc.Color.TRANSPARENT);
41 cc.Camera.main.backgroundColor = cc.Color.TRANSPARENT;
42 this._oSceneContext = {};
43 this._oNextSceneParameter = {};
44 //获得应用级别的上下文状态
45 if (cc.find('application')) {
46 this._cApplication = cc.find('application').getComponent(Application);
47 } else {
48 let nodeApplication = new cc.Node('application');
49 cc.game.addPersistRootNode(nodeApplication);
50 this._cApplication = nodeApplication.addComponent(Application);
51 }
52 //创建Log节点
53 let nodeLog = new cc.Node('Log');
54 this._cLog = nodeLog.addComponent(Log);
55 this._cLog.init(this);
56 nodeLog.parent = this.node;
57 nodeLog.opacity = 0;
58 //注册键盘事件
59 cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
60 cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
61 //注册摸来摸去事件
62 this.node.on('touchstart', this.onTouchStart, this);
63 this.node.on('touchmove', this.onTouchMove, this);
64 this.node.on('touchend', this.onTouchEnd, this);
65 this.node.on('before_focus_change', this.onBeforeFocusChange, this);
66 this.node.on('after_focus_change', this.onAfterFocusChange, this);
67 this.node.on('focus', this.onFocus, this);
68 this.node.on('blur', this.onBlur, this);
69 //以后再考虑是否用这种做法
70 //this.node.on('focus_leave', this.onFocusLeave,this);
71 //this.node.on('focus_hover', this.onFocusHover,this);
72 //初始化焦点临接表
73 if (null == this._aFocusTargets[0]) {
74 this._aFocusTargets[0] = [];
75 }
76
77 //添加探针
78 this.sceneBIProbe();
79 },
80 onKeyUp: function (event) {
81 cc.log('OnKeyUp In TVCanvas');
82 //-----------------------禁止长按-------------------------------
83 this.holdClick = false;
84 //------------------------------------------------------
85 },
86 onKeyDown: function (event) {
87 //-------------------------禁止长按------------------------------
88 if (!this.holdClick) {
89 this.holdClick = true;
90 } else {
91 event.keyCode = 0; //更改keyCode值使该键值失效,
92 // return;
93 }
94 //-------------------------------------------------------
95
96 let nodeLog = null;
97 switch (event.keyCode) {
98 case cc.macro.KEY.t:
99 nodeLog = this.node.getChildByName('Log');
100 nodeLog.opacity = ((nodeLog.opacity == 0) ? 255 : 0);
101 this._cLog.screenD('....日志测试Test-' + nodeLog.opacity + '-a');
102 this._cLog.screenI('....日志测试Test-' + nodeLog.opacity + '-b');
103 this._cLog.screenW('....日志测试Test-' + nodeLog.opacity + '-c');
104 this._cLog.screenE('....日志测试Test-' + nodeLog.opacity + '-d');
105 break;
106 case cc.macro.KEY.enter:
107 case cc.macro.KEY.space:
108 case Common.ANDROID_KEY.enter:
109 if (0 == this._fiCurrentFocus.node.getName().indexOf('AppIcon')) {
110 this.doCurrentFocusTVLinkAction(Common.TV_LINK_ACTION_CLICK);
111 }
112 if (0 == this._fiCurrentFocus.node.getName().indexOf('BtnBackTop')) {
113 this.backAScene();
114 }
115 break;
116 }
117 },
118 onTouchStart: function (event) {
119 cc.log('OnTouchStart In TVCanvas');
120 },
121 onTouchMove: function (event) {
122 cc.log('OnTouchMove In TVCanvas');
123 },
124 onTouchEnd: function (event) {
125 cc.log('OnTouchEnd In TVCanvas');
126 },
127 setCurrentFocus: function (fiCurrentFocus) {
128 this._fiCurrentFocus = fiCurrentFocus;
129 },
130
131 /**
132 * 返回上一个场景
133 */
134 backAScene: function () {
135 //上下文
136 let compApplication = cc.find('application').getComponent(Application);
137 let aSceneContext = compApplication.getSceneContext();
138 let aSceneParameter = compApplication.getSceneParameter();
139 cc.log(aSceneContext);
140 if (aSceneParameter.length) {
141 this._bShowExitBox = false;
142 let oSceneParameter = aSceneParameter.pop();
143 cc.director.loadScene(oSceneParameter.backSceneName);
144 compApplication.setBackStatus(true);
145 } else {
146 if (!this._bShowExitBox) { //弹出挽留界面
147 this.showExitBox();
148 } else {
149 cc.log("退出应用!");
150 cc.game.end();
151 }
152 }
153 },
154 doTVLinkAction: function (oOperation) {
155 let nodeApplication = cc.find('application').getComponent(Application);
156 let aSceneContext = nodeApplication.getSceneContext();
157 let aSceneParameter = nodeApplication.getSceneParameter();
158 //---------------
159 nodeApplication.setTotalFrames(cc.director.getTotalFrames());
160 //---------------
161 let strForwardSceneName = "";
162 this._oNextSceneParameter.backSceneName = cc.director.getScene().name;
163 if (this._bShowExitBox && this._focusPath) { //挽留页跳转采用原先的值
164 this._oSceneContext.focusPath = this._focusPath;
165 } else {
166 this._oSceneContext.focusPath = Common.getNodePath(this._fiCurrentFocus.node);
167 }
168 switch (oOperation.action) {
169 case "ChangeScene":
170 strForwardSceneName = oOperation.parameters.sceneName;
171 for (let key in oOperation.parameters) {
172 if (null != oOperation.parameters[key] && '' != oOperation.parameters[key])
173 this._oNextSceneParameter[key] = oOperation.parameters[key];
174 }
175 break;
176 case "promotionBIProbe":
177 this.promotionBIProbe(oOperation.parameters.id);
178 break;
179 case "changeLayout":
180 cc.log("改变模型布局");
181 break;
182 default:
183 /*
184 oSceneContext.categoryId="10";
185 oSceneContext.songListPageIndex="10";
186 oSceneContext.focusPath=""; //光标对象 如何保存 从场景中往下寻找Node
187 aSceneContext.push(oSceneContext);
188 cc.director.loadScene('sceneSearch');
189 */
190 }
191
192 if (null != strForwardSceneName && 0 < strForwardSceneName.length) {
193 aSceneParameter.push(this._oNextSceneParameter);
194 aSceneContext.push(this._oSceneContext);
195 cc.director.loadScene(strForwardSceneName, function () {
196 cc.sys.garbageCollect();
197 });
198 }
199 },
200 addNodeToFocusTarget: function (iStatus, strKey, nodeFocusable) {
201 this._aFocusTargets[iStatus][strKey] = nodeFocusable;
202 },
203 getFocus: function () {
204 return this._cFocus;
205 },
206 getCurrentFocusInfo: function () {
207 return this._fiCurrentFocus;
208 },
209 getFocusTargets: function () {
210 return this._aFocusTargets;
211
212 },
213 onFocus: function (event) {
214 let fiFrom = event.detail.from;
215 let fiTo = event.detail.to;
216 fiTo.onFocus(fiFrom);
217 },
218 onBlur: function (event) {
219 let fiFrom = event.detail.from;
220 let fiTo = event.detail.to;
221 fiFrom.onBlur(fiTo);
222
223 },
224
225 /**
226 * 仅供测试使用
227 * @param strPlayURL 回调后得到的播放地址
228 *
229 */
230 onGetPlayURL: function (strPlayURL) {
231 cc.log('TVCanvas onGetPlayURL..:' + strPlayURL);
232 if (this._compPlayer) {
233 this._compPlayer.remoteURL = strPlayURL;
234 this._compPlayer.play();
235 }
236 },
237
238 getPageBg: function (context, kind, spriteBg) {
239 let oRankingRequestParameters = {
240 "view": "json",
241 "token": Common.TEST_API_TOKEN,
242 };
243 Network.ajax('GET', Common.TOPDRAW_API_SERVER2 + 'ArrangeHut/GetWallPaperFrame', null, oRankingRequestParameters,
244 function (strResponse) {
245 // cc.log("Success When Get Ranking..."+strResponse);
246 try {
247 var oJSONResult = JSON.parse(strResponse);
248 if (oJSONResult.businessCode == 'success') {
249 if (oJSONResult.resultSet.length > 0) {
250 let nodeLeftRecommendPic = cc.find('Bg', context.node);
251 let normal = oJSONResult.resultSet[0].images.map.normal[0];
252 let background = oJSONResult.resultSet[0].images.map.background[0];
253 var strUrl = "";
254 if (kind == 'background') {
255 strUrl = Common.TOPDRAW_IMAGE_SERVER + oJSONResult.resultSet[0].images.list[background].fileUrl;
256 } else if (kind == 'normal') {
257 strUrl = Common.TOPDRAW_IMAGE_SERVER + oJSONResult.resultSet[0].images.list[normal].fileUrl;
258 }
259 if (spriteBg) { //新增骚操作
260 cc.loader.load(strUrl, function (err, texture) {
261 spriteBg.spriteFrame = new cc.SpriteFrame(texture);
262 });
263 return;
264 }
265 if (strUrl) {
266 cc.loader.load(strUrl, function (err, texture) {
267 nodeLeftRecommendPic.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);
268 });
269 }
270 } else {
271 cc.log("Nothing...");
272 }
273 } else {
274 cc.log("Error When Get WallPaper..." + oJSONResult.description);
275 }
276 } catch (error) {
277 cc.log("Exception When Get WallPaper..." + error);
278 }
279 },
280 function (strResponse) {
281 cc.log("Error When Get WallPaper..." + strResponse);
282 }, this, "uuid");
283 },
284
285 //添加场景BI探针
286 sceneBIProbe: function () {
287 try {
288 //场景参数
289 let oSceneParameter = this._cApplication.getTopSceneParameter() || {};
290 let strCurSceneName = cc.director.getScene().name;
291 let strCurURL = strCurSceneName + "?";
292
293 for (let key in oSceneParameter) {
294 if (key != "sceneName") {
295 strCurURL += (key + "=" + oSceneParameter[key] + "&");
296 }
297 }
298 strCurURL = strCurURL.substring(0, strCurURL.length - 1);
299
300 //附加参数
301 oSceneParameter.platformAccount = Common.USER_ID;
302 oSceneParameter.url = encodeURIComponent(strCurURL);
303 oSceneParameter.referURL = oSceneParameter.backSceneName || "";
304
305 Network.ajax('GET', Common.BI_BASE_PATH, null, oSceneParameter,
306 function (strResponse) {
307 try {
308 // var oJSONResult = JSON.parse(strResponse);
309 // if (oJSONResult.businessCode == "success") {
310 // cc.log("Business Success : Page BI Probe Request Success");
311 // } else {
312 // cc.log("Business Error : Page BI Probe Request failed..." + oJSONResult.description);
313 // }
314 } catch (ex) {
315 cc.log("Business Exception : Page BI Probe Request Error.." + ex);
316 }
317 },
318 function (strResponse) {
319 cc.log("Communication Error : Page BI Probe Request Error..." + strResponse + "\r\n");
320 }, this, "uuid"
321 );
322 } catch (err) {
323 cc.log("Page BI Probe Request Error in promotionBIProbe..." + err);
324 }
325 },
326
327 /*推荐位BI探针*/
328 createPromotionBIProbeAction: function (strTVLink, strId) {
329 let joTVLink = JSON.parse(strTVLink);
330 joTVLink.click.push({ "action": "promotionBIProbe", "parameters": { "id": strId } });
331 return JSON.stringify(joTVLink);
332 },
333 promotionBIProbe: function (strPromotionId) {
334 try {
335 //为了BI方便统计,做些变形
336 let strBIURL = './NoPage/TopdrawPromotion?id=' + strPromotionId;//todo:这个地址其实还不确定
337 let oParams = {
338 "platformAccount": Common.USER_ID,
339 "url": strBIURL,
340 };
341 Network.ajax('GET', Common.BI_BASE_PATH, null, oParams,
342 function (strResponse) {
343 try {
344 let oJSONResult = JSON.parse(strResponse);
345 if (oJSONResult.businessCode == "success") {
346 cc.log("Business Success : Promotion BI Probe Request Success");
347 } else {
348 cc.log("Business Error : Promotion BI Probe Request failed..." + oJSONResult.description);
349 }
350 } catch (ex) {
351 cc.log("Business Exception : Promotion BI Probe Request Error.." + ex);
352 }
353 },
354 function (strResponse) {
355 cc.log("Communication Error : Promotion BI Probe Request Error..." + strResponse + "\r\n");
356 }, this, "uuid"
357 );
358 } catch (err) {
359 cc.log("Promotion BI Probe Request Error in promotionBIProbe..." + err);
360 }
361 },
362
363 /**
364 *黄色提示框
365 * @param strTip String
366 * @param iTime Number
367 */
368 commonTip: function (strTip, iTime) {
369 if (!this.commonTipFnCallback) {
370 this.commonTipFnCallback = function () {
371 nodeTip.opacity = 0;
372 }
373 }
374 this.unschedule(this.commonTipFnCallback);
375 if (!strTip) return;
376 iTime = iTime || 5;
377 let labelText = null;
378 let nodeTip = cc.find("CommonTip", this.node);
379 let nodeText = nodeTip && nodeTip.getChildByName("TipText");
380 if (!nodeText) {
381 nodeTip = new cc.Node("CommonTip");
382 let layout = nodeTip.addComponent(cc.Layout);
383 layout.type = 1;
384 layout.resizeMode = 1;
385 layout.paddingLeft = 20;
386 layout.paddingRight = 20;
387 layout.horizontalDirection = 0;
388 let spriteTipBg = nodeTip.addComponent(cc.Sprite);
389 // spriteTipBg.spriteFrame = new cc.SpriteFrame(cc.textureCache.addImage(cc.url.raw('resources/Texture/common_tip_bg.png')));
390 cc.loader.loadRes("Texture/cabin/common_tip_bg", cc.SpriteFrame, function (err, spriteFrame) {
391 spriteTipBg.spriteFrame = spriteFrame;
392 });
393 nodeTip.parent = this.node;
394 // nodeTip.setLocalZOrder(1000);
395 nodeTip.zIndex = 1000;
396 nodeText = new cc.Node("TipText");
397 labelText = nodeText.addComponent(cc.Label);
398 nodeText.color = cc.Color.RED;
399 nodeTip.addChild(nodeText);
400 } else {
401 labelText = nodeText.getComponent(cc.Label);
402 }
403 labelText.string = strTip;
404 nodeTip.opacity = 255;
405 this.scheduleOnce(this.commonTipFnCallback, iTime); //修改tip时间
406 },
407
408 /**
409 * 统一添加订购、推荐等按钮
410 */
411 addHomeIcon: function (context) {
412 // var nodeOrder = new cc.Node('OrderIcon'); //订购
413 // nodeOrder.addComponent(cc.Sprite);
414 // var widgetOrder = nodeOrder.addComponent(cc.Widget);
415 // widgetOrder.isAlignLeft = true;
416 // widgetOrder.isAlignTop = true;
417 // widgetOrder.top = 44;
418 // widgetOrder.left = 1150;
419 // cc.loader.loadRes("Texture/common/order_icon", cc.SpriteFrame, function (err, spriteFrame) {
420 // spriteFrame.setTexture(null, cc.rect(0, 0, 54, 68));
421 // nodeOrder.getComponent(cc.Sprite).spriteFrame = spriteFrame;
422 // spriteFrame._calculateUV();
423 // });
424 // var fiOrderIcon = nodeOrder.addComponent(FocusInfo);
425 // context._aFocusTargets[0]['to_order_icon'] = nodeOrder;
426 // fiOrderIcon.init(
427 // null, true
428 // );
429 // context.node.addChild(nodeOrder, 10);
430
431 // var nodeApp = new cc.Node('AppIcon'); //首页
432 // nodeApp.addComponent(cc.Sprite);
433 // var widgetApp = nodeApp.addComponent(cc.Widget);
434 // widgetApp.isAlignLeft = true;
435 // widgetApp.isAlignTop = true;
436 // widgetApp.top = 44;
437 // widgetApp.left = 1213;
438 // cc.loader.loadRes("Texture/common/level_icon", cc.SpriteFrame, function (err, spriteFrame) {
439 // spriteFrame.setTexture(null, cc.rect(0, 0, 54, 68));
440 // nodeApp.getComponent(cc.Sprite).spriteFrame = spriteFrame;
441 // spriteFrame._calculateUV();
442 // });
443 // var fiAppIcon = nodeApp.addComponent(FocusInfo);
444 // context._aFocusTargets[0]['to_app_icon'] = nodeApp;
445 // fiAppIcon.init(
446 // '{"click": [{"action": "ChangeScene","parameters": {"sceneName":"sceneRecommend"}}]}', true
447 // );
448 // context.node.addChild(nodeApp, 10);
449 },
450
451 //弹出挽留界面
452 showExitBox: function () {
453 this._bShowExitBox = true;
454 if (this._nodeExitBox) {
455 this._focusPath = Common.getNodePath(this._fiCurrentFocus.node); //记录原来值
456 //焦点框跳到第二次后不会干扰第一层级
457 this._cFocus.flyFocus(this._fiCurrentFocus, this._aFocusTargets[1]['back_right_btn'].getComponent(FocusInfo),
458 Common.MOVE_DIRECTION_UP, this._fFocusScaleFactor, null);
459
460 var oIndexBackPromotionPara = {
461 'view': 'json',
462 'limit': 2,
463 'start': 0,
464 'name': 'BabyDontGo',
465 "sortField": "left",
466 "sortDirection": "asc",
467 token: Common.TEST_API_TOKEN,
468 };
469 Network.ajax('GET', Common.TOPDRAW_API_SERVER + "Promotion/ListItemByName", null, oIndexBackPromotionPara,
470 function (strResponse) {
471 try {
472 var oJSONResult = JSON.parse(strResponse);
473 for (let i = 0; i < oJSONResult.resultSet.length; i++) {
474 let nodeBackPromotion = new cc.Node("backPromotion" + i);
475 nodeBackPromotion.width = oJSONResult.resultSet[i].width;
476 nodeBackPromotion.height = oJSONResult.resultSet[i].height;
477 let spritePromotion = nodeBackPromotion.addComponent(cc.Sprite);
478 spritePromotion.type = cc.Sprite.Type.SIMPLE;
479 spritePromotion.sizeMode = cc.Sprite.SizeMode.CUSTOM;
480 var widgetPromotion = nodeBackPromotion.addComponent(cc.Widget);
481 widgetPromotion.isAlignTop = true;
482 widgetPromotion.isAlignLeft = true;
483 if (oJSONResult.resultSet[i].image[0].fileUrl) {
484 nodeBackPromotion.zIndex = 101; //让导航栏背景处于最底层
485 cc.loader.load(Common.TOPDRAW_IMAGE_SERVER + oJSONResult.resultSet[i].image[0].fileUrl, function (err, texture) {
486 spritePromotion.spriteFrame = new cc.SpriteFrame(texture);
487 });
488 }
489 widgetPromotion.top = oJSONResult.resultSet[i].top;
490 widgetPromotion.left = oJSONResult.resultSet[i].left;
491 nodeBackPromotion.parent = this._nodeExitBox;
492 }
493 //绑定立即观看按钮的tvlink
494 cc.find("BtnBackLeft", this._nodeExitBox).getComponent(FocusInfo).init(
495 oJSONResult.resultSet[0].tvlink, true
496 );
497 cc.find("BtnBackRight", this._nodeExitBox).getComponent(FocusInfo).init(
498 oJSONResult.resultSet[1].tvlink, true
499 );
500 } catch (error) {
501 cc.log("Exception When IndexBackPromotion..." + error);
502 }
503 },
504 function (strResponse) {
505 cc.log("Error When IndexBackPromotion..." + strResponse);
506 }, this, "uuid");
507 } else {
508 Common.loadRes("prefab/home/pfbExitBox", //挽留弹窗预制
509 function (loadedResource) {
510 this._nodeExitBox = cc.instantiate(loadedResource);
511 this._nodeExitBox.parent = this.node;
512 this._nodeExitBox.zIndex = 400; //假设400为最高zIndex
513 cc.find("BtnBackLeft", this._nodeExitBox).getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, 294, 102));
514 cc.find("BtnBackRight", this._nodeExitBox).getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, 294, 102));
515 cc.find("BtnBackTop", this._nodeExitBox).getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, 140, 50));
516 cc.find("BtnBackLeft", this._nodeExitBox).addComponent(FocusInfo);
517 cc.find("BtnBackRight", this._nodeExitBox).addComponent(FocusInfo);
518 cc.find("BtnBackTop", this._nodeExitBox).addComponent(FocusInfo);
519 if (null == this._aFocusTargets[1]) { //focus放到第二层级,避免冲突
520 this._aFocusTargets[1] = [];
521 }
522 this._aFocusTargets[1]['back_left_btn'] = cc.find("BtnBackLeft", this._nodeExitBox);
523 this._aFocusTargets[1]['back_right_btn'] = cc.find("BtnBackRight", this._nodeExitBox);
524 this._aFocusTargets[1]['back_top_btn'] = cc.find("BtnBackTop", this._nodeExitBox);
525 this.showExitBox();
526 },
527 function (error) {
528 cc.log("Error When Loading Prefab pfbExitBox ...");
529 }, this)
530 }
531 },
532
533 onBeforeFocusChange: function (event) {
534 let fiFrom = event.detail.from;
535 let fiTo = event.detail.to;
536
537 if (0 == fiFrom.node.getName().indexOf('AppIcon')) {
538 var appIconSprite = cc.find("AppIcon", this.node).getComponent(cc.Sprite); //
539 cc.loader.loadRes("Texture/common/level_icon", cc.Texture2D, function (err, Texture) {
540 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 0, 54, 68));
541 appIconSprite.spriteFrame = spriteFrame;
542 });
543 }
544 if (0 == fiFrom.node.getName().indexOf('OrderIcon')) {
545 var orderIconSprite = cc.find("OrderIcon", this.node).getComponent(cc.Sprite); //
546 cc.loader.loadRes("Texture/common/order_icon", cc.Texture2D, function (err, Texture) {
547 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 0, 54, 68));
548 // spriteFrame.setTexture(null, cc.rect(0, 50, 130, 50));
549 orderIconSprite.spriteFrame = spriteFrame;
550 });
551 }
552
553 if (0 == fiFrom.node.getName().indexOf('BtnBackTop')) { //TODO:
554 // fiFrom.node.getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
555 cc.loader.loadRes("texture/button/back_btn", cc.Texture2D, function (err, Texture) {
556 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
557 fiFrom.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
558 });
559 }
560
561 if (0 == fiFrom.node.getName().indexOf('BtnBackLeft') || 0 == fiFrom.node.getName().indexOf('BtnBackRight')) {
562 cc.loader.loadRes("texture/button/back_promotion_btn", cc.Texture2D, function (err, Texture) {
563 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 0, fiFrom.node.width, fiFrom.node.height));
564 fiFrom.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
565 });
566 }
567
568 },
569
570 onAfterFocusChange: function (event) {
571 let fiFrom = event.detail.from;
572 let fiTo = event.detail.to;
573 if (0 == fiTo.node.getName().indexOf('AppIcon')) {
574 var appIconSprite = cc.find("AppIcon", this.node).getComponent(cc.Sprite); //
575 cc.loader.loadRes("Texture/common/level_icon", cc.Texture2D, function (err, Texture) {
576 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 68, 54, 68));
577 appIconSprite.spriteFrame = spriteFrame;
578 });
579 }
580 if (0 == fiTo.node.getName().indexOf('OrderIcon')) {
581 var orderIconSprite = cc.find("OrderIcon", this.node).getComponent(cc.Sprite); //
582 cc.loader.loadRes("Texture/common/order_icon", cc.Texture2D, function (err, Texture) {
583 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, 68, 54, 68));
584 orderIconSprite.spriteFrame = spriteFrame;
585 });
586 }
587
588 if (0 == fiTo.node.getName().indexOf('BtnBackTop')) { //TODO:
589 // fiTo.node.getComponent(cc.Sprite).spriteFrame.setRect(cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
590 cc.loader.loadRes("texture/button/back_btn", cc.Texture2D, function (err, Texture) {
591 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
592 fiTo.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
593 });
594 }
595
596 if (0 == fiTo.node.getName().indexOf('BtnBackLeft') || 0 == fiTo.node.getName().indexOf('BtnBackRight')) {
597 cc.loader.loadRes("texture/button/back_promotion_btn", cc.Texture2D, function (err, Texture) {
598 var spriteFrame = new cc.SpriteFrame(Texture, cc.rect(0, fiTo.node.height, fiTo.node.width, fiTo.node.height));
599 fiTo.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
600 });
601 }
602
603 },
604 });
1 {
2 "ver": "1.0.5",
3 "uuid": "445864d0-7911-43e7-ab0a-a27ad0ae4705",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 var Common = require('Common');
2 var FocusInfo = require('FocusInfo');
3 //var AbstractTVFocus=require('AbstractTVFocus');
4
5 cc.Class({
6 //name:"TVFocus",
7 extends: cc.Component,
8 //extends: cc.Node, 引擎团队的人不推荐这么做
9
10 properties: {
11 _cornerOuterRadius: 18,
12 _cornerInnerRadius: 12,
13 _screenWidth: Common.SCREEN_WIDTH,
14 _screenHeight: Common.SCREEN_HEIGHT,
15 _oScene: null,
16 //_tvlink:null,
17 //sprites:[],
18 //nodes:[],
19 //isShow:false
20 /*
21 {
22 breath:[],
23 cellTransform:[], //move+scale
24 containerTansfer[]
25 }
26 */
27 },
28 //由于addComponent时会新建Focus调用默认构造函数,其不支持参数输入,所以这个函数基本没用
29 ctor: function (/*strName,oScene,fLeft,fTop,fObjectWidth,fObjectHeight,fScreenWidth,fScreenHeight,fCornerOuterRadius,fCornerInnerRadius*/) {
30 //cc.log(this instanceof Sprite); // true
31 //参数处理
32 let strName = arguments[0];
33 let oScene = arguments[1];
34 let fLeft = arguments[2];
35 let fTop = arguments[3];
36 let fObjectWidth = arguments[4];
37 let fObjectHeight = arguments[5];
38 let fScreenWidth = arguments[6];
39 let fScreenHeight = arguments[7];
40 let fCornerOuterRadius = arguments[8];
41 let fCornerInnerRadius = arguments[9];
42 this.name = (strName ? strName : "focusContainer");
43 this._oScene = oScene;
44 //this.width=fObjectWidth;
45 //this.height=fObjectHeight;
46 fLeft = (fLeft ? fLeft : 10);
47 fTop = (fTop ? fTop : 10);
48 fObjectWidth = (fObjectWidth ? fObjectWidth : 30);
49 fObjectHeight = (fObjectHeight ? fObjectHeight : 30);
50 this._screenWidth = (fScreenWidth ? fScreenWidth : Common.SCREEN_WIDTH);
51 this._screenHeight = (fScreenHeight ? fScreenHeight : Common.SCREEN_HEIGHT);
52 this._cornerOuterRadius = (fCornerOuterRadius ? fCornerOuterRadius : 18);
53 this._cornerInnerRadius = (fCornerInnerRadius ? fCornerInnerRadius : 12);
54 /*
55 var oTransformedPosition=this.transformCoordinatesWeb2Cocos(fLeft,fTop,fObjectWidth,fObjectHeight);
56 this.node.x=oTransformedPosition.x;
57 this.node.y=oTransformedPosition.y;
58
59 var urlFocus=null;
60 var textureFocus = null;
61 //1 2 3
62 //4 6
63 //7 8 9
64 for (var i=1;i<=9;i++){
65 this.node.children[i-1] = new cc.Node('focus_'+i);
66
67 if (5==i){
68 continue;
69 }
70 urlFocus = cc.url.raw('Texture/Focus/'+i+'.png');
71 textureFocus = cc.textureCache.addImage(urlFocus);
72 var spriteTemp = this.node.children[i-1].addComponent(cc.Sprite);
73 spriteTemp.spriteFrame = new cc.SpriteFrame(textureFocus);
74 //this.node.child[i-1].parent=this.node;
75 this.node.children[i-1].x=i*20;
76
77 if (2==i || 8==i){
78 spriteTemp.fillType = cc.Sprite.FillType.HORIZONTAL;
79 }else if (4==i || 6==i){
80 spriteTemp.fillType = cc.Sprite.FillType.VERTICAL;
81 }
82 }
83 //this.fly(fLeft,fTop,fObjectWidth,fObjectHeight,10,1.0);
84 */
85 },
86
87 init: function (strName, oScene, fiCurrentFocus,//Left,fTop,fObjectWidth,fObjectHeight,
88 fScreenWidth, fScreenHeight, fCornerOuterRadius, fCornerInnerRadius, fScaleFactor) {
89 //TODO:这个函数里面是否要做onbeforeFocus和onAfterFocus的操作 --question from eva
90 //cc.log(this instanceof Sprite); // true
91 if (strName) {
92 this.name = strName;
93 } else {
94 cc.log('No Focus Name Specified');
95 return;
96 }
97 if (oScene) {
98 this._oScene = oScene;
99 } else {
100 cc.log('No Scene Specified for Focus');
101 }
102 fScaleFactor = fScaleFactor || fiCurrentFocus.getScaleFactor();
103 //this.width=fObjectWidth;
104 //this.height=fObjectHeight;
105 var fLeft = fiCurrentFocus.getLeft();
106 var fTop = fiCurrentFocus.getTop();
107 var fObjectWidth = fiCurrentFocus.getWidth();
108 var fObjectHeight = fiCurrentFocus.getHeight();
109 if (fScreenWidth) {
110 this._screenWidth = fScreenWidth;
111 }
112 if (fScreenHeight) {
113 this._screenHeight = fScreenHeight;
114 }
115 if (fCornerOuterRadius) {
116 this._cornerOuterRadius = fCornerOuterRadius;
117 }
118 if (fCornerInnerRadius) {
119 this._cornerInnerRadius = fCornerInnerRadius;
120 }
121 var oTransformedPosition = this.transformCoordinatesWeb2Cocos(fLeft, fTop, fObjectWidth, fObjectHeight);
122 this.node.x = oTransformedPosition.x;
123 this.node.y = oTransformedPosition.y;
124 var urlFocus = null;
125 var textureFocus = null;
126 //1 2 3
127 //4 6
128 //7 8 9
129 for (var i = 1; i <= 9; i++) {
130 //this.node.children[i-1] = new cc.Node('focus_'+i);
131 this.node.addChild(new cc.Node('focus_' + i), 10);
132 if (5 == i) {
133 continue;
134 }
135 // urlFocus = cc.url.raw('resources/Texture/Focus/'+i+'.png');
136 // textureFocus = cc.textureCache.addImage(urlFocus);
137 var spriteTemp = this.node.getChildByName('focus_' + i).addComponent(cc.Sprite);
138 // spriteTemp.spriteFrame = new cc.SpriteFrame(textureFocus);
139 var ftaScaleTo = null
140 if (2 == i || 8 == i) {
141 //spriteTemp.sizeMode = cc.Sprite.SizeMode.CUSTOM;
142 //spriteTemp.type= cc.Sprite.Type.FILLED;
143 //spriteTemp.fillType = cc.Sprite.FillType.HORIZONTAL;
144 //spriteTemp.width=fObjectWidth-2*fCornerInnerRadius;
145 //this.node.children[i-1].width=fObjectWidth-2*fCornerInnerRadius;
146 //this.node.children[i-1].height=fCornerOuterRadius;
147 ftaScaleTo = cc.scaleTo(0, fScaleFactor * (fObjectWidth - 2 * fCornerInnerRadius), fScaleFactor * 1.0);
148 } else if (4 == i || 6 == i) {
149 //spriteTemp.sizeMode = cc.Sprite.SizeMode.CUSTOM;
150 //spriteTemp.type= cc.Sprite.Type.FILLED;
151 //spriteTemp.fillType = cc.Sprite.FillType.VERTICAL;
152 //spriteTemp.height=fObjectHeight-2*fCornerInnerRadius;
153 //this.node.children[i-1].setContentSize();
154 //this.node.children[i-1].width=fCornerOuterRadius;
155 //this.node.children[i-1].height=fObjectHeight-2*fCornerInnerRadius;
156 ftaScaleTo = cc.scaleTo(0, fScaleFactor * 1.0, fScaleFactor * (fObjectHeight - 2 * fCornerInnerRadius));
157 } else {
158 ftaScaleTo = cc.scaleTo(0, fScaleFactor, fScaleFactor);
159 }
160 ftaScaleTo.setTag(Common.FOCUS_CELL_TRANSFER);
161 this.node.children[i - 1].stopAllActions();
162 this.node.children[i - 1].runAction(ftaScaleTo);
163 }
164 //TODO:2.0版本采用异步加载本地图片,在焦点初始完成后在批量处理图片
165 //TODO:循环中焦点框不是连续的,而批量加载的图地址是连续的需特殊处理下
166 var self = this;
167 cc.loader.loadResDir("focus", cc.Texture2D, function (err, textures) {
168 for (let i = 1; i < 10; i++) {
169 if (i == 2 || i == 4 || i == 6 || i == 8) continue; //暂时将焦点框一部分隐藏
170 if (i >= 5) {
171 if (i == 5) continue;
172 self.node.getChildByName('focus_' + i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(textures[i - 2]);
173 } else {
174 self.node.getChildByName('focus_' + i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(textures[i - 1]);
175 }
176 }
177 });
178
179 this.node.children[0].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
180 this.node.children[0].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
181 this.node.children[1].x = 0;
182 this.node.children[1].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
183 this.node.children[2].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
184 this.node.children[2].y = fScaleFactor * (fObjectHeight / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
185
186 this.node.children[3].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
187 this.node.children[3].y = 0;
188 //this.node.children[4].x=0;
189 //this.node.children[4].y=0;
190 this.node.children[5].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
191 this.node.children[5].y = 0;
192
193 this.node.children[6].x = fScaleFactor * (-fObjectWidth / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
194 this.node.children[6].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
195 this.node.children[7].x = 0;
196 this.node.children[7].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
197 this.node.children[8].x = fScaleFactor * (fObjectWidth / 2 + (fCornerOuterRadius / 2 - fCornerInnerRadius));
198 this.node.children[8].y = fScaleFactor * (-fObjectHeight / 2 - (fCornerOuterRadius / 2 - fCornerInnerRadius));
199
200 //放大 当前选中的Node
201 var ftaScaleCurrentFocus = cc.scaleTo(0, fScaleFactor, fScaleFactor);
202 ftaScaleCurrentFocus.setTag(Common.FEATURE_NODE_TRANSFER);
203
204 //fiCurrentFocus.node.setLocalZOrder(40);
205
206 //fiCurrentFocus.node.stopAllActions();
207 //fiCurrentFocus.node.runAction(ftaScaleCurrentFocus);
208
209 // fiCurrentFocus.node.setLocalZOrder(40);
210 fiCurrentFocus.node.zIndex = 40;
211
212 fiCurrentFocus.node.stopAllActions();
213 fiCurrentFocus.node.runAction(ftaScaleCurrentFocus);
214
215 //开始呼吸动画
216 var aiFocusBreath = cc.repeatForever(cc.sequence(cc.fadeTo(1, 100), cc.fadeTo(1, 255), cc.fadeTo(2, 255)));
217 aiFocusBreath.setTag(Common.FOCUS_CONTAINER_BREATH);
218 this.node.stopAllActions();
219 this.node.runAction(aiFocusBreath);
220
221 this._oScene.setCurrentFocus(fiCurrentFocus);
222 },
223
224 // use this for initialization
225 onLoad: function () {
226 cc.log("Focus onLoad...");
227 },
228 /*
229 test: function(){
230 var imgUrl1 = cc.url.raw('Texture/Focus/1.png');
231 var texture1 = cc.textureCache.addImage(imgUrl1);
232 this.node.getChildByName('focus_'+i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture1);
233 },*/
234
235 hide: function () {
236 //this.node.opacity=0;
237 this.node.children[0].opacity = 0;
238 this.node.children[1].opacity = 0;
239 this.node.children[2].opacity = 0;
240 this.node.children[3].opacity = 0;
241 this.node.children[4].opacity = 0;
242 this.node.children[5].opacity = 0;
243 this.node.children[6].opacity = 0;
244 this.node.children[7].opacity = 0;
245 this.node.children[8].opacity = 0;
246 },
247 show: function () {
248
249 //this.node.opacity=255;
250 this.node.children[0].opacity = 255;
251 this.node.children[1].opacity = 255;
252 this.node.children[2].opacity = 255;
253 this.node.children[3].opacity = 255;
254 this.node.children[4].opacity = 255;
255 this.node.children[5].opacity = 255;
256 this.node.children[6].opacity = 255;
257 this.node.children[7].opacity = 255;
258 this.node.children[8].opacity = 255;
259 },
260
261 //分别处理9块区域 输入坐标为左上角所需
262 fly: function (fLeft, fTop, fObjectWidth, fObjectHeight, fDuration, fScaleFactor) {
263 //1 2 3
264 //4 6
265 //7 8 9
266 var oTransformedPosition = this.transformCoordinatesWeb2Cocos(fLeft, fTop, fObjectWidth, fObjectHeight);
267 var ftaContainerMoveTo = cc.moveTo(fDuration, oTransformedPosition.x, oTransformedPosition.y);
268
269 ftaContainerMoveTo.setTag(Common.FOCUS_CONTAINER_TRANSFER);
270
271 //var blink=cc.blink(5.0,5);
272 //this.node.runAction(blink);
273 //this.node.x=oTransformedPosition.x;
274 //this.node.y=oTransformedPosition.y;
275
276 var ftaMoveTo = [];
277 var ftaScaleTo = null;
278
279 var ftaCombined = [];
280
281 ftaMoveTo[0] = cc.moveTo(fDuration,
282 fScaleFactor * (-fObjectWidth / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
283 fScaleFactor * (fObjectHeight / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
284 );
285
286 ftaMoveTo[1] = cc.moveTo(fDuration,
287 0,
288 fScaleFactor * (fObjectHeight / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
289 );
290
291 ftaMoveTo[2] = cc.moveTo(fDuration,
292 fScaleFactor * (fObjectWidth / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
293 fScaleFactor * (fObjectHeight / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
294 );
295
296 ftaMoveTo[3] = cc.moveTo(fDuration,
297 fScaleFactor * (-fObjectWidth / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
298 0
299 );
300
301 //Nothing should be done for 4
302
303 ftaMoveTo[5] = cc.moveTo(fDuration,
304 fScaleFactor * (fObjectWidth / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
305 0
306 );
307
308 ftaMoveTo[6] = cc.moveTo(fDuration,
309 fScaleFactor * (-fObjectWidth / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
310 fScaleFactor * (-fObjectHeight / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
311 );
312 ftaMoveTo[7] = cc.moveTo(fDuration,
313 0,
314 fScaleFactor * (-fObjectHeight / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
315 );
316 ftaMoveTo[8] = cc.moveTo(fDuration,
317 fScaleFactor * (fObjectWidth / 2 + (this._cornerOuterRadius / 2 - this._cornerInnerRadius)),
318 fScaleFactor * (-fObjectHeight / 2 - (this._cornerOuterRadius / 2 - this._cornerInnerRadius))
319 );
320
321 //if (null!=this.node.getActionByTag(Common.FOCUS_CONTAINER_TRANSFER)){
322 // this.node.stopAction(Common.FOCUS_CONTAINER_TRANSFER);
323 //}
324 //this.node.stopAllActions();
325
326 this.node.stopAction(this.node.getActionByTag(Common.FOCUS_CONTAINER_TRANSFER));
327 this.node.runAction(ftaContainerMoveTo);
328
329 for (var i = 1; i <= 9; i++) {
330 if (5 == i) {
331 continue;
332 }
333 if (2 == i || 8 == i) {
334 ftaScaleTo = cc.scaleTo(fDuration, fScaleFactor * (fObjectWidth - 2 * this._cornerInnerRadius), fScaleFactor * 1.0);
335 } else if (4 == i || 6 == i) {
336 ftaScaleTo = cc.scaleTo(fDuration, fScaleFactor * 1.0, fScaleFactor * (fObjectHeight - 2 * this._cornerInnerRadius));
337 } else {
338 ftaScaleTo = cc.scaleTo(fDuration, fScaleFactor, fScaleFactor);
339 }
340 ftaCombined[i - 1] = cc.spawn(ftaMoveTo[i - 1], ftaScaleTo);
341 ftaCombined[i - 1].setTag(Common.FOCUS_CELL_TRANSFER);
342 /*
343 if (null!=this.node.children[i-1].getActionByTag(Common.FOCUS_CELL_TRANSFER)){
344 this.node.children[i-1].stopAction(Common.FOCUS_CELL_TRANSFER);
345 }*/
346 //this.node.stopAllActions();
347 this.node.children[i - 1].stopAction(this.node.children[i - 1].getActionByTag(Common.FOCUS_CELL_TRANSFER));
348 this.node.children[i - 1].runAction(ftaCombined[i - 1]);
349 }
350 },
351
352 findTarget: function (oCurrentFocusInfo, aInFocusTargets, iStatus, iDirection) {
353
354 if (null == oCurrentFocusInfo) {
355 oCurrentFocusInfo = this._oScene.getCurrentFocusInfo();
356 }
357 if (null == aInFocusTargets) {
358 aInFocusTargets = this._oScene.getFocusTargets()
359 }
360 var aFocusTargets = aInFocusTargets[iStatus];
361 //var elFocusNow=document.getElementById(g_strFocusElementId);
362 var fCurrentLeft = oCurrentFocusInfo.getLeft();
363 var fCurrentTop = oCurrentFocusInfo.getTop();
364 var fCurrentWidth = oCurrentFocusInfo.getWidth();
365 var fCurrentHeight = oCurrentFocusInfo.getHeight();
366
367 var oFocusTarget = null; //node?
368 var fDirectionWeight = 5.0;
369 var fEvaluationRecord = 99999;
370
371 //决定要搞哪一个
372 var j = 0;
373 if (Common.MOVE_DIRECTION_UP <= iDirection && iDirection <= Common.MOVE_DIRECTION_LEFT) {
374 for (var key in aFocusTargets) { //for (var i=0;i<aFocusTargets.length;i++){
375 // cc.log("循环次数:"+j+++"/////"+key);
376 //if (aFocusTargets[i].id == g_strFocusElementId || !doesElementDisplay(aFocusTargets[i])) continue;
377 // cc.log(key + "=============" + aFocusTargets[key].name);
378
379 if (!cc.isValid(aFocusTargets[key])) continue; //TODO-jinwawa:注意有些节点已经destroy,但是实际销毁操作会延迟到当前帧渲染前执行,从下一帧开始,该对象将不再可用
380 // 故使用cc.isValid(obj)来检查对象是否已被销毁
381
382 let fiByKey = aFocusTargets[key].getComponent(FocusInfo);
383
384 if (!fiByKey.getEnable()) {//不显示的不参与寻找
385 continue;
386 }
387
388 var fTargetLeft = fiByKey.getLeft();
389 var fTargetTop = fiByKey.getTop();
390 var fTargetWidth = fiByKey.getWidth();
391 var fTargetHeight = fiByKey.getHeight();
392 // cc.log("循环中目标左边距:"+fTargetLeft);
393 // cc.log("循环中目标上边距:"+fTargetTop);
394
395 //权重计算 移动方向上距离*3+和移动方向垂直的方向中心距离差 的和最小为最近控件
396 var fDistanceOfEdge = 0.0; //移动方向边缘的距离
397 var fOffsetOfCenter = 0.0; //垂直移动方向两块区域中心的距离
398 var fOverlapWidth = 0.0; //在移动方向上重叠的距离 复数为不重叠
399 var fSmallEdgeWidth = 0.0; //短的那个边缘的宽度
400
401 if (true) { //如果目标在限制区域内
402 switch (iDirection) {
403 case Common.MOVE_DIRECTION_UP:
404 // cc.log("参数:"+fCurrentTop+"///"+fTargetTop+"///"+fTargetHeight);
405 fDistanceOfEdge = fCurrentTop - fTargetTop - fTargetHeight;
406 fOffsetOfCenter = Math.abs(fTargetLeft + fTargetWidth / 2 - fCurrentLeft - fCurrentWidth / 2);
407 fOverlapWidth = ((fCurrentLeft + fCurrentWidth - fTargetLeft - fTargetWidth >= 0) ? fTargetLeft + fTargetWidth : fCurrentLeft + fCurrentWidth)
408 - ((fCurrentLeft - fTargetLeft >= 0) ? fCurrentLeft : fTargetLeft);
409 fSmallEdgeWidth = (fCurrentWidth < fTargetWidth) ? fCurrentWidth : fTargetWidth;
410 break;
411 case Common.MOVE_DIRECTION_DOWN:
412 fDistanceOfEdge = fTargetTop - fCurrentTop - fCurrentHeight;
413 fOffsetOfCenter = Math.abs(fTargetLeft + fTargetWidth / 2 - fCurrentLeft - fCurrentWidth / 2);
414 fOverlapWidth = ((fCurrentLeft + fCurrentWidth - fTargetLeft - fTargetWidth >= 0) ? fTargetLeft + fTargetWidth : fCurrentLeft + fCurrentWidth)
415 - ((fCurrentLeft - fTargetLeft >= 0) ? fCurrentLeft : fTargetLeft);
416 fSmallEdgeWidth = (fCurrentWidth < fTargetWidth) ? fCurrentWidth : fTargetWidth;
417 break;
418 case Common.MOVE_DIRECTION_LEFT:
419 fDistanceOfEdge = fCurrentLeft - fTargetLeft - fTargetWidth;
420 fOffsetOfCenter = Math.abs(fTargetTop + fTargetHeight / 2 - fCurrentTop - fCurrentHeight / 2);
421 fOverlapWidth = ((fCurrentTop + fCurrentHeight - fTargetTop - fTargetHeight >= 0) ? fTargetTop + fTargetHeight : fCurrentTop + fCurrentHeight)
422 - ((fCurrentTop - fTargetTop >= 0) ? fCurrentTop : fTargetTop);
423 fSmallEdgeWidth = (fCurrentHeight < fTargetHeight) ? fCurrentHeight : fTargetHeight;
424 break;
425 case Common.MOVE_DIRECTION_RIGHT:
426 fDistanceOfEdge = fTargetLeft - fCurrentLeft - fCurrentWidth;
427 fOffsetOfCenter = Math.abs(fTargetTop + fTargetHeight / 2 - fCurrentTop - fCurrentHeight / 2);
428 fOverlapWidth = ((fCurrentTop + fCurrentHeight - fTargetTop - fTargetHeight >= 0) ? fTargetTop + fTargetHeight : fCurrentTop + fCurrentHeight)
429 - ((fCurrentTop - fTargetTop >= 0) ? fCurrentTop : fTargetTop);
430 fSmallEdgeWidth = (fCurrentHeight < fTargetHeight) ? fCurrentHeight : fTargetHeight;
431 break;
432 }
433
434 // cc.log(fiByKey.node.name + "///////////////////估值" + fTargetLeft + "::" + fCurrentLeft + "::" + fCurrentWidth);
435 if (fDistanceOfEdge >= 0 /*&& fOffsetOfCenter<g_iBlockWidth*/) { //目标位置要在我前进的一侧(移动方向不能重叠),并且不能太偏离中心
436 // cc.log("fDistanceOfEdge>=0");
437 //估值=距离目标的邻边垂直距离*方向权重+重心所在轴偏移量
438 var fEvaluation = -100 * (fOverlapWidth / fSmallEdgeWidth) + fDistanceOfEdge;
439 //cc.log(aFocusTargets[i].id+"==> "+fEvaluation+" =-20*("+fSmallEdgeWidth+"/"+fOverlapWidth+")"+"+"+fDistanceOfEdge);
440 //+fOffsetOfCenter*fDirectionWeight;
441 if (fEvaluationRecord > fEvaluation) {
442 // cc.log(fEvaluationRecord+"/////"+fEvaluation);
443 fEvaluationRecord = fEvaluation;
444 //elFormerTarget=elFocusTarget;
445 //oFocusTarget=aFocusTargets[key];
446 oFocusTarget = fiByKey;
447 }
448 }
449 }
450 //elFocusTarget=FindNearestFocusTarget(strDirection,fFocusLeft,fFocusTop,fFocusWidth,fFocusHeight,fLeft,fTop,fWidth,fHeight);
451 }
452
453 //Log.warning("["+(elFormerTarget?elFormerTarget.id:"null")+","+(elFocusTarget?elFocusTarget.id:"null")+"]");
454
455 if (null == oFocusTarget) { //找不到目标 不移动,一般到了边界
456 cc.log("No Target Found: oFocusTarget = null...");
457 return null;
458 }
459 } else {
460 cc.log("No Target Found: unavailable direction");
461 return null
462 }
463 return oFocusTarget;
464
465 },
466
467 transformCoordinatesWeb2Cocos: function (fLeft, fTop, fObjectWidth, fObjectHeight) {
468 var oCocosCoordinates = {};
469
470 oCocosCoordinates.x = fLeft + fObjectWidth / 2 - this._screenWidth / 2;
471 oCocosCoordinates.y = this._screenHeight / 2 - fObjectHeight / 2 - fTop;
472 return oCocosCoordinates;
473 },
474
475 flyFocus: function (fiCurrentFocus, fiFocusTarget, iDirection, fScaleFactor, oScrollParameter, iDuration) {
476 if (null == fiFocusTarget) {//todo:先判断这个是否更划得来
477 //找不到目标的动画小交互
478 //var blink1=cc.blink(0.6,20);
479 //this.node.runAction(blink1);
480
481 let aiJoggle = cc.repeat(
482 cc.sequence(
483 cc.rotateTo(0.02, -2),
484 cc.rotateTo(0.02, 0),
485 cc.rotateTo(0.02, 2),
486 cc.rotateTo(0.02, 0)
487 ),
488 4
489 );
490 aiJoggle.setTag(Common.FOCUS_CONTAINER_JOGGLE);
491 //if (null!=this.node.getActionByTag(Common.FOCUS_CONTAINER_JOGGLE)){
492 // this.node.stopAction(Common.FOCUS_CONTAINER_JOGGLE);
493 //}
494 this.node.stopAction(this.node.getActionByTag(Common.FOCUS_CONTAINER_JOGGLE));
495 this.node.runAction(aiJoggle);
496 return 0;
497 }
498
499 if (null == fiCurrentFocus) {
500 fiCurrentFocus = this._oScene.getCurrentFocusInfo();
501 }
502
503 fScaleFactor = fScaleFactor || fiFocusTarget.getScaleFactor();
504 if (null == fScaleFactor) {
505 fScaleFactor = 1.0;
506 }
507
508 if (null == iDuration) {
509 iDuration = Common.FOCUS_FLY_DURATION;
510 }
511
512 //是否是有效方向
513 if (Common.MOVE_DIRECTION_UP <= iDirection && iDirection <= Common.MOVE_DIRECTION_LEFT) {
514 //滚屏相关参数 elScroll,iScrollStep 如果都有效开始处理滚屏
515 //oScrollParameter.element 需要滚动的元素 Object[Element]
516 //oScrollParameter.step 滚动的距离 Integer
517 //oScrollParameter.relation 滚动是否和焦点元素有关? Integer [0|1]
518 //oScrollParameter.direction 滚动方向 ['left'|'right'|'up'|'down']
519
520 //旧的时间通知
521 //this.node.dispachEvent('before_focus_change', { from: fiCurrentFocus, to: fiFocusTarget});
522 let eventBeforeFocus = new cc.Event.EventCustom('before_focus_change', true);
523 eventBeforeFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
524 this.node.dispatchEvent(eventBeforeFocus);
525
526 let eventOnBlur = new cc.Event.EventCustom('blur', true);
527 eventOnBlur.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
528 this.node.dispatchEvent(eventOnBlur);
529 //let eventOnFocus=new cc.Event.
530 let nodeCurrent = fiCurrentFocus.node;//node;
531 let nodeTarget = fiFocusTarget.node;//node;
532 //if (fiCurrentFocus && fiCurrentFocus.onBlur && typeof fiCurrentFocus.onBlur =='function' ){
533 // fiCurrentFocus.onBlur();
534 //}
535 //处理因焦点移动导致的部分界面滑动
536 let fXScrollStep = 0;
537 let fYScrollStep = 0;
538 let fXScrollTarget = 0; //新方法
539 let fYScrollTarget = 0; //新方法
540 if (null != oScrollParameter && null != oScrollParameter.node
541 && null != oScrollParameter.getStep() && null != oScrollParameter.getHasRelation()) { //满足此条件才考虑界面滚动
542 //MOVE_DIRECTION_UP:0,
543 //MOVE_DIRECTION_RIGHT:1,
544 //MOVE_DIRECTION_DOWN:2,
545 //MOVE_DIRECTION_LEFT:3,
546 //默认反向
547 if (null == oScrollParameter.getDirection()) {
548 switch (iDirection) {
549 case Common.MOVE_DIRECTION_UP: oScrollParameter.setDirection(Common.MOVE_DIRECTION_DOWN); break;
550 case Common.MOVE_DIRECTION_RIGHT: oScrollParameter.setDirection(Common.MOVE_DIRECTION_LEFT); break;
551 case Common.MOVE_DIRECTION_DOWN: oScrollParameter.setDirection(Common.MOVE_DIRECTION_UP); break;
552 case Common.MOVE_DIRECTION_LEFT: oScrollParameter.setDirection(Common.MOVE_DIRECTION_RIGHT); break;
553 }
554 }
555 //Deprecated Start
556 switch (oScrollParameter.getDirection()) {
557 case Common.MOVE_DIRECTION_UP:
558 fYScrollStep = oScrollParameter.getStep();
559 break;
560 case Common.MOVE_DIRECTION_DOWN:
561 fYScrollStep = -oScrollParameter.getStep();
562 break;
563 case Common.MOVE_DIRECTION_LEFT:
564 fXScrollStep = -oScrollParameter.getStep();
565 break;
566 case Common.MOVE_DIRECTION_RIGHT:
567 fXScrollStep = oScrollParameter.getStep();
568 break;
569
570 }
571 //let ftaMoveToScrollParameter = cc.moveTo(iDuration,
572 // oScrollParameter.node.x+fXScrollStep,
573 // oScrollParameter.node.y-fYScrollStep
574 // );
575 //Deprecated End
576 switch (oScrollParameter.getDirection()) { //正负在外面算好了
577 case Common.MOVE_DIRECTION_UP:
578 fYScrollTarget = oScrollParameter.getTargetPosition();
579 break;
580 case Common.MOVE_DIRECTION_DOWN:
581 fYScrollTarget = oScrollParameter.getTargetPosition();
582 break;
583 case Common.MOVE_DIRECTION_LEFT:
584 fXScrollTarget = oScrollParameter.getTargetPosition();
585 break;
586 case Common.MOVE_DIRECTION_RIGHT:
587 fXScrollTarget = oScrollParameter.getTargetPosition();
588 break;
589
590 }
591 let finished = cc.callFunc((oScrollParameter.callback ? oScrollParameter.callback : function () {
592 cc.log("do something");
593 }), this, oScrollParameter.scope);//todo:这里是否考虑要个回调
594 let ftaMoveToScrollParameter = cc.sequence(cc.moveTo(iDuration, fXScrollTarget, fYScrollTarget), finished);
595
596 ftaMoveToScrollParameter.setTag(Common.SCROLL_BY_FOCUS_CHANGE);
597 oScrollParameter.node.stopAction(oScrollParameter.node.getActionByTag(Common.SCROLL_BY_FOCUS_CHANGE));
598 //oScrollParameter.node.stopAllActions();
599 oScrollParameter.node.runAction(ftaMoveToScrollParameter);
600 oScrollParameter.setDirection(null);
601 //oScrollParameter.node.x+=fXScrollStep;
602 //oScrollParameter.node.y-=fYScrollStep;
603 }
604
605 //由于浮点数变成坐标必须取整所以不可避免会形成误差,其中的+1 -1为了保证边框不留空隙
606 //Target会比边框稍大
607
608 //let fDestFocusLeft = iScaledTargetLeft - g_iFocusFrameWidth + iXScrollStep + "px";
609 //let fDestFocusTop = iScaledTargetTop - g_iFocusFrameHeight + iYScrollStep + "px";
610 //let fDestFocusWidth = iScaledTargetWidth + 2 * g_iFocusFrameWidth + "px";
611 //let fDestFocusHeight = iScaledTargetHeight + 2 * g_iFocusFrameHeight + "px";
612
613 //只要改掉相对Left Top 就可
614 //此处需很小心处理和上下代码的关系
615 /*
616 if (null != oScrollParameter && null != oScrollParameter.node
617 && null != oScrollParameter.getStep() && null != oScrollParameter.getHasRelation()) { //满足此条件才考虑界面滚动
618 let sizeVisible = cc.Director.getVisibleSize();
619 let fDestScrollElementLeft = oScrollParameter.node.x + fXScrollStep;
620 let fDestScrollElementTop = sizeVisible.height - oScrollParameter.node.y + fYScrollStep;
621
622 //这里还缺少动画 必须一起开始动
623 oScrollParameter.node.x=fDestScrollElementLeft;
624 oScrollParameter.node.y=oScrollParameter.node.y - fYScrollStep;
625 }*/
626
627 //准备好了所有数据 这里开始一起行动
628 //if (g_fnOnBeforeFocusChange) {
629 // g_fnOnBeforeFocusChange(elFocusNow, elFocusTarget, strDirection);
630 //}
631
632 //按比例将焦点目标的区域进行缩放 得注意浮点数的问题
633
634 let ftaScaleCurrentFocus = cc.scaleTo(iDuration, 1.0, 1.0);
635 let ftaScaleFocusTarget = cc.scaleTo(iDuration, fScaleFactor, fScaleFactor);
636
637 /*
638 log("ArchorPoint:%f,%f,%f,%f", pfiCurrentFocus->node->getAnchorPoint().x,
639 pfiCurrentFocus->node->getAnchorPoint().y,
640 pfiCurrentFocus->node->getAnchorPointInPoints().x,
641 pfiCurrentFocus->node->getAnchorPointInPoints().y );
642 */
643 /*
644 //红点测试
645 auto sprite1 = cocos2d::Sprite::create("image/red_point.png");
646 sprite1->setPosition(0,0
647 // pfiCurrentFocus->node->getAnchorPointInPoints().x
648 //, pfiCurrentFocus->node->getAnchorPointInPoints().y);
649
650 pfiCurrentFocus->node->addChild(sprite1, 20, "PointFlag");
651 */
652
653 // nodeCurrent.setLocalZOrder(10);
654 // nodeTarget.setLocalZOrder(40);
655 nodeCurrent.zIndex = 10;
656 nodeTarget.zIndex = 40;
657
658 ftaScaleCurrentFocus.setTag(Common.FEATURE_NODE_TRANSFER);
659 ftaScaleFocusTarget.setTag(Common.FEATURE_NODE_TRANSFER);
660 //if (null!=nodeCurrent.getActionByTag(Common.FEATURE_NODE_TRANSFER)){
661 // nodeCurrent.stopAction(Common.FEATURE_NODE_TRANSFER);
662 //}
663 //if (null!=nodeTarget.getActionByTag(Common.FEATURE_NODE_TRANSFER)){
664 // nodeTarget.stopAction(Common.FEATURE_NODE_TRANSFER);
665 //}
666 nodeCurrent.stopAction(nodeCurrent.getActionByTag(Common.FEATURE_NODE_TRANSFER));
667 nodeTarget.stopAction(nodeTarget.getActionByTag(Common.FEATURE_NODE_TRANSFER));
668 nodeCurrent.runAction(ftaScaleCurrentFocus);
669 nodeTarget.runAction(ftaScaleFocusTarget);
670 cc.log(fiFocusTarget.getLeft());
671 cc.log(fiFocusTarget.getTop());
672 this.fly(fiFocusTarget.getLeft() + fXScrollStep, fiFocusTarget.getTop() + fYScrollStep,
673 fiFocusTarget.getWidth(), fiFocusTarget.getHeight(),
674 iDuration, fScaleFactor);
675 //if (fiTarget.onFocus && typeof fiTarget.onFocus =='function' ){
676 // fiTarget.onFocus();
677 //}
678 let eventOnFocus = new cc.Event.EventCustom('focus', true);
679 eventOnFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
680 this.node.dispatchEvent(eventOnFocus);
681 //旧的事件通知
682 //this.node.emit('after_focus_change', { from: fiCurrentFocus, to: fiFocusTarget});
683 let eventAfterFocus = new cc.Event.EventCustom('after_focus_change', true);
684 eventAfterFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
685 this.node.dispatchEvent(eventAfterFocus);
686 //新的事件通知方式 是否科学有待检验
687 //let eventFocusLeave=new cc.Event.EventCustom('focus_leave',true);
688 //eventFocusLeave.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
689 //nodeCurrent.dispatchEvent(eventFocusLeave);
690
691 //let eventFocusHover=new cc.Event.EventCustom('focus_hover',true);
692 //eventFocusHover.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
693 //nodeTarget.dispatchEvent(eventFocusHover);
694 this._oScene.setCurrentFocus(fiFocusTarget);
695 //计算完成以下开始完成所有动作
696 //elFocusNow.style.zIndex = 0;
697 //elFocusTarget.style.zIndex = 20;
698 /*
699 var elFocusContainer = document.getElementById("focus_container");
700 //document.getElementById('view_port').style.left = destViewPortLeft;
701 elFocusContainer.style.left = destFocusLeft;
702 elFocusContainer.style.top = destFocusTop;
703 //document.getElementById("focus5").style.width = destFocusWidth;
704 //document.getElementById("focus5").style.height = destFocusHeight;
705 elFocusContainer.style.width = destFocusWidth;
706 elFocusContainer.style.height = destFocusHeight;
707 */
708 //if (g_fnOnAfterFocusChange) {
709 // g_fnOnAfterFocusChange(elFocusNow, elFocusTarget, strDirection);
710 //}
711 //总要先将前面那个复原
712 //scaleElement(g_strFocusElementId, 1, 1);
713 //g_strFocusElementId = elFocusTarget.id;
714 return 1;
715 } else {
716 cc.log("No Target Found to Fly: Unavailable Direction");
717 return 0;
718 }
719 },
720
721
722 jumpFocus: function (fiCurrentFocus, fiFocusTarget, iDirection, fScaleFactor, oScrollParameter) {
723 if (null == fiFocusTarget) {
724 //找不到目标的动画小交互
725 //var blink1=cc.blink(0.6,20);
726 //this.node.runAction(blink1);
727 let aiJoggle = cc.repeat(
728 cc.sequence(
729 cc.rotateTo(0.02, -2),
730 cc.rotateTo(0.02, 0),
731 cc.rotateTo(0.02, 2),
732 cc.rotateTo(0.02, 0)
733 ),
734 4
735 );
736 aiJoggle.setTag(Common.FOCUS_CONTAINER_JOGGLE);
737 this.node.stopAction(this.node.getActionByTag(Common.FOCUS_CONTAINER_JOGGLE));
738 this.node.runAction(aiJoggle);
739 return 0;
740 }
741 fScaleFactor = fScaleFactor || fiFocusTarget.getScaleFactor();
742 //是否是有效方向
743 if (Common.MOVE_DIRECTION_UP <= iDirection && iDirection <= Common.MOVE_DIRECTION_LEFT) {
744 //let eventBeforeFocus=new cc.Event.EventCustom('before_focus_change', true);
745 //eventBeforeFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget});
746 //this.node.dispatchEvent(eventBeforeFocus);
747 //处理因焦点移动导致的部分界面滑动
748 let fXScrollStep = 0;
749 let fYScrollStep = 0;
750
751 var ftaScaleCurrentFocus = cc.scaleTo(Common.FOCUS_FLY_DURATION, 1.0, 1.0);
752 var ftaScaleFocusTarget = cc.scaleTo(Common.FOCUS_FLY_DURATION, fScaleFactor, fScaleFactor);
753
754 var nodeCurrent = fiCurrentFocus.node;//node;
755 var nodeTarget = fiFocusTarget.node;//node;
756
757 nodeCurrent.setLocalZOrder(10);
758 nodeTarget.setLocalZOrder(40);
759
760 ftaScaleCurrentFocus.setTag(Common.FEATURE_NODE_TRANSFER);
761 ftaScaleFocusTarget.setTag(Common.FEATURE_NODE_TRANSFER);
762
763 nodeCurrent.stopAction(nodeCurrent.getActionByTag(Common.FEATURE_NODE_TRANSFER));
764 nodeTarget.stopAction(nodeTarget.getActionByTag(Common.FEATURE_NODE_TRANSFER));
765
766 nodeCurrent.runAction(ftaScaleCurrentFocus);
767 nodeTarget.runAction(ftaScaleFocusTarget);
768
769 this.fly(fiFocusTarget.getLeft(), fiFocusTarget.getTop(),
770 fiFocusTarget.getWidth(), fiFocusTarget.getHeight(),
771 0, fScaleFactor
772 );
773 //旧的事件通知
774 //this.node.emit('after_focus_change', { from: fiCurrentFocus, to: fiFocusTarget});
775 let eventAfterFocus = new cc.Event.EventCustom('after_focus_change', true);
776 eventAfterFocus.setUserData({ from: fiCurrentFocus, to: fiFocusTarget });
777 this.node.dispatchEvent(eventAfterFocus);
778
779 //新的事件通知方式 是否科学有待检验
780 //let eventFocusLeave=new cc.Event.EventCustom('focus_leave',true);
781 //eventFocusLeave.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
782 //nodeCurrent.dispatchEvent(eventFocusLeave);
783
784 //let eventFocusHover=new cc.Event.EventCustom('focus_hover',true);
785 //eventFocusHover.setUserData({from:fiCurrentFocus,to:fiFocusTarget});
786 //nodeTarget.dispatchEvent(eventFocusHover);
787
788 this._oScene.setCurrentFocus(fiFocusTarget);
789
790 return 1;
791
792 } else {
793 cc.log("No Target Found to Fly: Unavailable Direction");
794 return 0;
795 }
796 },
797
798 //跳向一个未来某一刻才会出现的Focus
799 flyFocus2Fantasy: function (fiCurrentFocus, fiFocusTarget, iDirection, fScaleFactor, oScrollParameter) {
800
801 },
802
803 getCornerOuterRadius: function () {
804 return this._cornerOuterRadius;
805 },
806 setCornerOuterRadius: function (cornerOuterRadius) {
807 this._cornerOuterRadius = cornerOuterRadius;
808 },
809 getCornerInnerRadius: function () {
810 return this._cornerInnerRadius;
811 },
812 setCornerInnerRadius: function (cornerInnerRadius) {
813 this._cornerInnerRadius = cornerInnerRadius;
814 },
815
816 // called every frame, uncomment this function to activate update callback
817 // update: function (dt) {
818
819 // },
820 });
1 {
2 "ver": "1.0.5",
3 "uuid": "a4e1b66d-6337-472f-bbf7-6d1a4a4c4b98",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 cc.Class({
2 extends: cc.Component,
3
4 properties: {
5 _fStep:1,
6 _bHasRelation:true,
7 _oNode:null, //deprecated
8 _iDirection:0,
9 _fTargetPosition:0,
10 },
11
12 //ctor: function (fStep,bHasRelation,iDirection) {
13 ctor: function () {
14 this._fStep=arguments[0];
15 this._bHasRelation=arguments[1];
16 //this._oNode=arguments[2];
17 this._iDirection=arguments[2];
18
19 //this._fStep=fStep;
20 //this._bHasRelation=bHasRelation;
21 //this._oNode=oNode;
22 //this._iDirection=iDirection;
23 },
24 init: function (fStep,bHasRelation,iDirection) {
25 this._fStep=fStep;
26 this._bHasRelation=bHasRelation;
27 //this._oNode=oNode;
28 this._iDirection=iDirection;
29
30 },
31 getStep:function(){
32 return this._fStep;
33 },
34 setStep:function(fStep){
35 this._fStep=fStep;
36 },
37 getHasRelation:function(){
38 return this._bHasRelation;
39 },
40 setHasRelation:function(bHasRelation){
41 this._bHasRelation=bHasRelation;
42 },
43 /*
44 getNode:function(){
45 return this._oNode;
46 },
47 setNode:function(oNode){
48 this._oNode=oNode;
49 },*/
50 getDirection:function(){
51 return this._iDirection;
52 },
53 setDirection:function(iDirection){
54 this._iDirection=iDirection;
55 },
56 getTargetNode:function(){
57 return this._oTargetNode;
58 },
59 setTargetNode:function(oTargetNode){
60 this._oTargetNode=oTargetNode;
61 },
62 //明确目标位置 比设置Step更为有效
63 getTargetPosition:function(){
64 return this._fTargetPosition;
65 },
66 setTargetPosition:function(fTargetPosition){
67 this._fTargetPosition=fTargetPosition;
68 }
69 });
1 {
2 "ver": "1.0.5",
3 "uuid": "2970f50b-b098-424a-8197-5208a926b646",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //测试界面
2 var TVCanvas = require('TVCanvas');
3 cc.Class({
4 extends: cc.Component,
5
6 properties: {
7 testSprite:cc.Sprite,
8 test:cc.Label,
9 },
10
11 onLoad: function () {
12 //获取页面背景
13 // this.getPageBg(this, "background");
14 },
15
16 // TestLog:function(){
17 // cc.log("测试js中Test->TestLog发送方法。。。。");
18 // },
19 });
1 {
2 "ver": "1.0.5",
3 "uuid": "ac4e29c4-f16f-41cb-9dbc-8432082945c4",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //工具
2
3 //导出变量给PersoanlListView使用
4 // module.exports.foo = function (strResponse) { //require 实际上获取的是目标脚本内的 module.exports 变量
5 //注意:一旦使用exports导出则static内函数全部获取不到
6 // var utils = new Utils();
7 // utils.setTest(strResponse);
8 // };
9
10 cc.Class({
11 extends: cc.Component,
12
13 properties: {
14
15 },
16
17 onLoad: function () {
18 // this._aCategoryMediaId.join(","); //将数组转化为','相隔的字符串
19 // if (typeof (oResult[i].images) != 'undefined' && oResult[i].images.map.normal != null) {//typeOf获取一个变量是否存在,即使oResult[i].images不存在(未声明)也不会出错
20 // var index = oResult[i].images.map.normal[0];
21 // fileURL = oResult[i].images.list[index].fileUrl;
22 // }
23 // cc.log("时间测试:" + this.formatDate(1522031521000));
24 // this._graphicsLine = cc.find('ScrollContent/GraphicsLine', this.node).getComponent(cc.Graphics);
25 // this._graphicsLine.roundRect(borderX, borderY, oResult[i].width, oResult[i].height, 20);//圆角矩形路径
26 // this._graphicsLine.stroke(); //绘制路径
27 // if (oJSONResult.resultSet[0].score) {
28 // cc.find("LeftGroup/Score", this.node).getComponent(cc.Label).string = parseInt(oJSONResult.resultSet[0].score * 10) / 10 + "分";
29 // }
30
31 //Label下一帧才刷新大小
32 //目前用户可以自行在设置 label 所有属性后在执行一次 label._updateRenderData(true); 就能带当帧获取大小
33 },
34
35 statics: {
36 /**
37 * 移除元素
38 */
39 indexOfArr: function (arr, val) {
40 for (var i = 0; i < arr.length; i++) {
41 if (arr[i] == val) { return i; }
42 }
43 return -1;
44 },
45
46 remove: function (arr, val) {
47 var index = this.indexOfArr(arr, val);
48 // cc.log("index:"+index);
49 if (index > -1) { arr.splice(index, 1); }
50 },
51
52 /**
53 * 将时间字符串转成年月日
54 * @param {*} date
55 */
56 formatDate: function (date) {
57 date = new Date(date);
58 var y = date.getFullYear();
59 var m = date.getMonth() + 1;
60 var d = date.getDate();
61 var h = date.getHours();
62 var m1 = date.getMinutes();
63 var s = date.getSeconds();
64 m = m < 10 ? ("0" + m) : m;
65 d = d < 10 ? ("0" + d) : d;
66 // return y+"-"+m+"-"+d+" "+h+":"+m1+":"+s;
67 return y + "-" + m + "-" + d;
68 },
69
70 // 提取url中的解析字符串
71 //使用 var params = UrlParamHash(url);
72 // var fr= params['fr']; //fr = iks
73 UrlParamHash: function (url) {
74 if(typeof(url)=='undefined') return;
75 var params = [], h;
76 var hash = url.slice(url.indexOf("?") + 1).split(/[&,']/); //以'或&分割,将变量放在数组里面,形如[fr=iks,word=slice,ie=gbk]
77 for (var i = 0; i < hash.length; i++) {
78 h = hash[i].split("="); //形如[fr,iks]
79 params[h[0]] = h[1];
80 }
81 return params;
82 },
83
84 //秒数转分钟 200.617083--03:21
85 formatSecond2Minute: function (second) {
86 var mm = Math.floor(second / 60);
87 if (mm < 10) mm = "0" + mm;
88 var ss = (second % 60).toFixed(0);
89 if (ss < 10) ss = "0" + ss;
90 return mm + ":" + ss;
91 },
92
93 //加载资源并且设置资源可以自动释放
94 loadRes: function (url, type, completeCallback) {
95 return cc.loader.loadRes(url, type, function (err, res) {
96 if (completeCallback) {
97 completeCallback(err, res);
98 }
99 if (!err) {
100 cc.loader.setAutoReleaseRecursively(res, true);
101 }
102
103 });
104 },
105
106 //判断是不是移动端
107 isMobile:function(){
108 if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { //Web端不支持JSB
109 return true;
110 } else {
111 return false;
112 }
113 },
114
115 //筛选得到图片
116 getImageByTag: function (oData, strTag, index) {
117 var val = oData.images;
118 strTag = strTag || "normal";
119 index = index || 0;
120 var strUrl = null;
121 if (val && val != '' && val != 'null') {
122 if (val.list && val.list instanceof Array && val.list.length > 0
123 && val.map[strTag] && val.map[strTag] instanceof Array && val.map[strTag].length > 0
124 ) {
125 if (val.list[val.map[strTag][index]].fileUrl) {
126 strUrl = Common.TOPDRAW_IMAGE_SERVER + val.list[val.map[strTag][index]].fileUrl;
127 }
128 }
129 }
130 return strUrl;
131 },
132
133 },
134
135 });
1 {
2 "ver": "1.0.5",
3 "uuid": "118fab66-2ecc-4316-9d2b-0455ee265dba",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //推荐页
2 var Common = require('Common');
3 var Network = require('Network');
4
5 cc.Class({
6 extends: cc.Component,
7
8 properties: {
9 id: 0,
10 pic: cc.Sprite,
11 activeName1: cc.Label,
12 activeName2: cc.Label,
13 normalName: cc.Label,
14 },
15
16 // data: {id,iconSF,itemName,itemPrice}
17 init: function (data, funCallback) {
18 // cc.log("pfbRecommend->init: "+data.tvlink);
19 // this.id = data.id;
20 // this.node.width = data.width;
21 // this.node.height = data.height;
22 // this.node.getChildByName('Pic').width = data.width;
23 // this.node.getChildByName('Pic').height = data.height;
24 if (data.imageURL) {
25 var self = this;
26 Network.loadImageInNativeRuntime(
27 Common.TOPDRAW_IMAGE_SERVER_EDU + data.imageURL,
28 function (texture) {
29 self.pic.spriteFrame = new cc.SpriteFrame(texture,cc.rect(0,0,self.node.width,self.node.height));
30
31 if (null != funCallback && typeof funCallback == 'function') {
32 funCallback.call();
33 }
34 }, null, this
35 );
36 }
37 // this.node.getComponent(cc.Widget).top = data.top;
38 // this.node.getComponent(cc.Widget).left = data.left;
39
40 if (data.title_visible == 1) { //前三个不需要显示文字
41 cc.find('Name', this.node).active = true;
42 cc.find('Name', this.node).width = data.width - 10;
43 cc.find('Name/TextBg', this.node).width = data.width;
44 cc.find('Name/NormalName', this.node).width = data.width - 10;
45 cc.find('Name/ActiveName', this.node).width = data.width - 10;
46 cc.find('Name/ActiveName/NameContainer', this.node).width = data.width - 10;
47 cc.find('Name/ActiveName/NameContainer/NameText', this.node).width = data.width - 10;
48 this.normalName.node.width = data.width - 10;
49 this.activeName1.string = data.title;
50 this.activeName2.string = data.title;
51 this.normalName.string = data.title;
52 this.activeName1._updateRenderData(true);
53 this.activeName2._updateRenderData(true);
54 this.normalName._updateRenderData(true);
55
56 //调整文字位置
57 let nodeCellName = this.node.getChildByName('Name');
58 let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
59 let nodeScreenTitleText1 = nodeScreenTitleText.getChildByName('NameText1');
60 if (nodeScreenTitleText1.width > nodeScreenTitleText.width) {
61 this.normalName.overflow = cc.Label.Overflow.CLAMP;
62 this.normalName.enableWrapText = false;
63 this.normalName.horizontalAlign = cc.Label.HorizontalAlign.LEFT;
64 }
65 }
66 },
67
68 setUIWithFocus: function () {
69 let nodeCellName = this.node.getChildByName('Name');
70 cc.find("NormalName", nodeCellName).opacity = 255;
71 //超出滚动
72 let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
73
74 let fOriginalX = nodeScreenTitleText.x;
75 let fOriginalY = nodeScreenTitleText.y;
76
77 let nodeScreenTitleText1 = nodeScreenTitleText.getChildByName('NameText1');
78 let nodeScreenTitleText2 = nodeScreenTitleText.getChildByName('NameText2');
79 nodeScreenTitleText2.x = nodeScreenTitleText1.x + nodeScreenTitleText1.width + 10;//TODO:补丁,解决滚动重叠
80 cc.log(nodeScreenTitleText1.width + "------------" + nodeScreenTitleText.width);
81 if (nodeScreenTitleText1.width > nodeScreenTitleText.width) {
82 cc.find("ActiveName/NameContainer", nodeCellName).opacity = 255;
83 cc.find("NormalName", nodeCellName).opacity = 0;
84 let fEndPositionDelta = (nodeScreenTitleText1.width + 30);
85 //下方时长和字有关系,才能速度一样
86 var ftaScreenTitleMoveToTarget = cc.moveTo(10 * (nodeScreenTitleText1.width / nodeScreenTitleText.width), fOriginalX - fEndPositionDelta, fOriginalY);
87 var ftaScreenTitleMoveToBack = cc.moveTo(0, fOriginalX, fOriginalY);
88 var sequenceMediaTitle = cc.sequence(ftaScreenTitleMoveToTarget, ftaScreenTitleMoveToBack);
89 var repeatScreenTitle = cc.repeat(sequenceMediaTitle, 10);
90 repeatScreenTitle.setTag(Common.OVERLENGTH_MOVING);
91 nodeScreenTitleText.runAction(repeatScreenTitle);
92 nodeScreenTitleText2.active = true;
93 }
94 },
95
96 setUIWithoutFocus: function () {
97 let nodeCellName = this.node.getChildByName('Name');
98 cc.find("NormalName", nodeCellName).opacity = 255;
99 //如有滚动停止滚动
100 let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
101 if (null != nodeScreenTitleText.getActionByTag(Common.OVERLENGTH_MOVING)) {
102 nodeScreenTitleText.stopActionByTag(Common.OVERLENGTH_MOVING);
103 nodeScreenTitleText.getChildByName('NameText2').active = false;
104 cc.find("ActiveName/NameContainer", nodeCellName).opacity = 0;
105 }
106 nodeScreenTitleText.x = 0;
107 },
108 });
1 {
2 "ver": "1.0.5",
3 "uuid": "43a14b47-14de-42be-b1fc-5b7cfcc31cf8",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //推荐页
2 var Common = require('Common');
3 var Network = require('Network');
4
5 cc.Class({
6 extends: cc.Component,
7
8 properties: {
9 id: 0,
10 pic: cc.Sprite,
11 activeName1: cc.Label,
12 activeName2: cc.Label,
13 normalName: cc.Label,
14 },
15
16 // data: {id,iconSF,itemName,itemPrice}
17 init: function (data, funCallback) {
18 // cc.log("pfbRecommend->init: "+data.tvlink);
19 // this.id = data.id;
20 // this.node.width = data.width;
21 // this.node.height = data.height;
22 // this.node.getChildByName('Pic').width = data.width;
23 // this.node.getChildByName('Pic').height = data.height;
24 if (data.image[0].fileUrl) {
25 var self = this;
26 Network.loadImageInNativeRuntime(
27 Common.TOPDRAW_IMAGE_SERVER_EDU_RIGHT + data.image[0].fileUrl,
28 function (texture) {
29 self.pic.spriteFrame = new cc.SpriteFrame(texture);
30
31 if (null != funCallback && typeof funCallback == 'function') {
32 funCallback.call();
33 }
34 }, null, this
35 );
36 }
37 // this.node.getComponent(cc.Widget).top = data.top;
38 // this.node.getComponent(cc.Widget).left = data.left;
39
40 // if (data.title_visible == 1) { //前三个不需要显示文字
41 // cc.find('Name', this.node).active = true;
42 // cc.find('Name', this.node).width = data.width - 10;
43 // cc.find('Name/TextBg', this.node).width = data.width;
44 // cc.find('Name/NormalName', this.node).width = data.width - 10;
45 // cc.find('Name/ActiveName', this.node).width = data.width - 10;
46 // cc.find('Name/ActiveName/NameContainer', this.node).width = data.width - 10;
47 // cc.find('Name/ActiveName/NameContainer/NameText', this.node).width = data.width - 10;
48 // this.normalName.node.width = data.width - 10;
49 // this.activeName1.string = data.title;
50 // this.activeName2.string = data.title;
51 // this.normalName.string = data.title;
52 // this.activeName1._updateRenderData(true);
53 // this.activeName2._updateRenderData(true);
54 // this.normalName._updateRenderData(true);
55
56 // //调整文字位置
57 // let nodeCellName = this.node.getChildByName('Name');
58 // let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
59 // let nodeScreenTitleText1 = nodeScreenTitleText.getChildByName('NameText1');
60 // if (nodeScreenTitleText1.width > nodeScreenTitleText.width) {
61 // this.normalName.overflow = cc.Label.Overflow.CLAMP;
62 // this.normalName.enableWrapText = false;
63 // this.normalName.horizontalAlign = cc.Label.HorizontalAlign.LEFT;
64 // }
65 // }
66 },
67
68 setUIWithFocus: function () {
69 let nodeCellName = this.node.getChildByName('Name');
70 cc.find("NormalName", nodeCellName).opacity = 255;
71 //超出滚动
72 let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
73
74 let fOriginalX = nodeScreenTitleText.x;
75 let fOriginalY = nodeScreenTitleText.y;
76
77 let nodeScreenTitleText1 = nodeScreenTitleText.getChildByName('NameText1');
78 let nodeScreenTitleText2 = nodeScreenTitleText.getChildByName('NameText2');
79 nodeScreenTitleText2.x = nodeScreenTitleText1.x + nodeScreenTitleText1.width + 10;//TODO:补丁,解决滚动重叠
80 cc.log(nodeScreenTitleText1.width + "------------" + nodeScreenTitleText.width);
81 if (nodeScreenTitleText1.width > nodeScreenTitleText.width) {
82 cc.find("ActiveName/NameContainer", nodeCellName).opacity = 255;
83 cc.find("NormalName", nodeCellName).opacity = 0;
84 let fEndPositionDelta = (nodeScreenTitleText1.width + 30);
85 //下方时长和字有关系,才能速度一样
86 var ftaScreenTitleMoveToTarget = cc.moveTo(10 * (nodeScreenTitleText1.width / nodeScreenTitleText.width), fOriginalX - fEndPositionDelta, fOriginalY);
87 var ftaScreenTitleMoveToBack = cc.moveTo(0, fOriginalX, fOriginalY);
88 var sequenceMediaTitle = cc.sequence(ftaScreenTitleMoveToTarget, ftaScreenTitleMoveToBack);
89 var repeatScreenTitle = cc.repeat(sequenceMediaTitle, 10);
90 repeatScreenTitle.setTag(Common.OVERLENGTH_MOVING);
91 nodeScreenTitleText.runAction(repeatScreenTitle);
92 nodeScreenTitleText2.active = true;
93 }
94 },
95
96 setUIWithoutFocus: function () {
97 let nodeCellName = this.node.getChildByName('Name');
98 cc.find("NormalName", nodeCellName).opacity = 255;
99 //如有滚动停止滚动
100 let nodeScreenTitleText = cc.find('ActiveName/NameContainer/NameText', nodeCellName);
101 if (null != nodeScreenTitleText.getActionByTag(Common.OVERLENGTH_MOVING)) {
102 nodeScreenTitleText.stopActionByTag(Common.OVERLENGTH_MOVING);
103 nodeScreenTitleText.getChildByName('NameText2').active = false;
104 cc.find("ActiveName/NameContainer", nodeCellName).opacity = 0;
105 }
106 nodeScreenTitleText.x = 0;
107 },
108 });
1 {
2 "ver": "1.0.5",
3 "uuid": "4e3e0b43-0b64-4a48-b6fb-9cd3d734de73",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1
2 cc.Class({
3 extends: cc.Component,
4
5 statics: {
6 waterfall: {
7 "name": "Recommend",
8 "resultSet": [
9
10 {
11 "name": "block3",
12 "height": 427,
13 "hasChildFrame": true,
14 "data": {
15 "name": "frame3",
16 "resultSet": [
17 {
18 "name": "Title",
19 "code": "promotionItem_ca662698-17fe-436b-8bee-9b5e0a255bdb",
20 "left": 0,
21 "top": 0,
22 "width": 220,
23 "height": 36,
24 "disable": true
25 },
26 {
27 "name": "SingerList",
28 "code": "promotionItem_0a911d4c-9223-4d49-bf63-6e4ed2a49668",
29 "left": 0,
30 "top": 60,
31 "width": 493,
32 "height": 316
33
34 },
35 {
36 "name": "SingerList",
37 "code": "promotionItem_c388af5a-0351-43c4-89f5-8c8bfbf5a443",
38 "left": 517,
39 "top": 60,
40 "width": 493,
41 "height": 316
42
43 }
44 ]
45 }
46 },
47 {
48 "name": "block1",
49 "height": 526,
50 "hasChildFrame": true,
51 "data": {
52 "name": "frame1",
53 "resultSet": [
54 {
55 "name": "Carousel0",
56 "code": "promotionItem_fd456495-2e32-44e1-9d92-450227d4afa3",
57 "left": 0,
58 "top": 0,
59 "width": 235,
60 "height": 287
61 },
62 {
63 "name": "dailyRecommend",
64 "code": "promotionItem_4ca66642-33d0-41c9-9913-df131a79a375",
65 "left": 252,
66 "top": 0,
67 "width": 504,
68 "height": 287
69 },
70 {
71 "name": "dailyRecommend",
72 "code": "promotionItem_c5f58c16-48a5-4796-ab52-41679fc88a6d",
73 "left": 773,
74 "top": 0,
75 "width": 235,
76 "height": 287
77 },
78 {
79 "name": "dailyRecommend",
80 "code": "promotionItem_9fd6d854-2a72-42d5-a2c0-1ce824cf406c",
81 "left": 0,
82 "top": 308,
83 "width": 427,
84 "height": 169
85 },
86 {
87 "name": "dailyRecommend",
88 "code": "promotionItem_5b998526-fb2a-48f9-8977-1fc20ac91ae6",
89 "left": 445,
90 "top": 308,
91 "width": 274,
92 "height": 168
93 },
94 {
95 "name": "dailyRecommend",
96 "code": "promotionItem_2ff129e8-12aa-4384-a0b8-736b8ff029f1",
97 "left": 736,
98 "top": 308,
99 "width": 274,
100 "height": 168
101 }
102 ]
103 }
104 },
105 {
106 "name": "block2",
107 "height": 224,
108 "hasChildFrame": true,
109 "data": {
110 "name": "frame2",
111 "resultSet": [
112 {
113 "name": "Title",
114 "code": "promotionItem_8a4a1762-22e8-4a1e-8ce3-1fe81412855a",
115 "left": 0,
116 "top": 0,
117 "width": 220,
118 "height": 33,
119 "disable": true
120 },
121 {
122 "name": "SubjectList",
123 "layout": "horizontal",
124 "position": [0, 59],
125 "width": 1100,
126 "disable": true,
127 "childrenSize": [105, 123],
128 "childrenMargin": [0, 24, 0, 0],
129 "hasChildFrame": true,
130 "data": {
131 "name": "subjectList",
132 "resultSet": [
133 {
134 "name": "Subject1",
135 "code": "promotionItem_e432ac2d-c1f3-4d44-a42b-7000971affa1"
136 },
137 {
138 "name": "Subject2",
139 "code": "promotionItem_f90b7ff3-1f36-4019-9e77-cef871902343"
140 },
141 {
142 "name": "Subject3",
143 "code": "promotionItem_e29b33e4-8954-4ef9-a6fc-0d844c909c67"
144 },
145 {
146 "name": "Subject4",
147 "code": "promotionItem_57aea4b3-7716-4224-bc77-43272c35ee32"
148 },
149 {
150 "name": "Subject4",
151 "code": "promotionItem_55c68c1c-451a-4197-84a1-6a39a1668a90"
152 },
153 {
154 "name": "Subject4",
155 "code": "promotionItem_2ac9afea-aa83-4fc1-a651-4f465b3cb1c3"
156 },
157 {
158 "name": "Subject4",
159 "code": "promotionItem_8ab81a46-b81e-4acf-bbcd-13315747eab3"
160 },
161 {
162 "name": "Subject4",
163 "code": "promotionItem_3e6642ab-517c-49ea-8788-cdc9130716d7"
164 }
165 ]
166 },
167 "dataTmpl": "tmplPromotionGroupCell2",
168 "childClass": "subject_list_cell"
169
170 }
171 ]
172 }
173 },
174 {
175 "name": "block4",
176 "height": 286,
177 "hasChildFrame": true,
178 "data": {
179 "name": "frame4",
180 "resultSet": [
181 {
182 "name": "Title",
183 "code": "promotionItem_f4c1169d-1778-48af-a449-3d195f8ca146",
184 "left": 0,
185 "top": 0,
186 "width": 220,
187 "height": 33,
188 "disable": true
189 },
190 {
191 "name": "SubjectList",
192 "layout": "horizontal",
193 "position": [0, 57],
194 "width": 1100,
195 "disable": true,
196 "childrenSize": [159, 175],
197 "childrenMargin": [0, 11, 0, 0],
198 "hasChildFrame": true,
199 "data": {
200 "name": "subjectList",
201 "resultSet": [
202 {
203 "name": "Subject1",
204 "code": "promotionItem_df4a26f1-bfd9-4781-9495-ba74f53bf285"
205 },
206 {
207 "name": "Subject2",
208 "code": "promotionItem_4727bb73-6d27-455d-b573-d2bb18074b07"
209 },
210 {
211 "name": "Subject3",
212 "code": "promotionItem_d2be83c4-78da-466b-b16d-e433bbaa4cac"
213 },
214 {
215 "name": "Subject4",
216 "code": "promotionItem_d8bfc7e3-0df3-488a-8655-795ad48e9b74"
217 },
218 {
219 "name": "Subject4",
220 "code": "promotionItem_9c4e1710-e9cb-4698-83eb-91cd2e85ba2e"
221 },
222 {
223 "name": "Subject4",
224 "code": "promotionItem_edfd1449-ea73-4a19-b605-e09af698e615"
225 }
226 ]
227 },
228 "dataTmpl": "tmplPromotionGroupCell2",
229 "childClass": "subject_list_cell"
230
231 }
232 ]
233 }
234 },
235 {
236 "name": "block5",
237 "height": 274,
238 "hasChildFrame": true,
239 "data": {
240 "name": "frame5",
241 "resultSet": [
242 {
243 "name": "Title",
244 "code": "promotionItem_e6bf3f27-97a7-4990-85bb-b07f75d90ef6",
245 "left": 0,
246 "top": 0,
247 "width": 220,
248 "height": 33,
249 "disable": true
250 },
251 {
252 "name": "Title",
253 "code": "promotionItem_c39cdbc6-aa7b-4bf0-a700-0d396bc7bd47",
254 "left": 0,
255 "top": 58,
256 "width": 369,
257 "height": 155
258
259 },
260 {
261 "name": "Title",
262 "code": "promotionItem_0b3263db-d600-4ad3-b2ba-4787315ca51c",
263 "left": 379,
264 "top": 58,
265 "width": 254,
266 "height": 155
267
268 },
269 {
270 "name": "Title",
271 "code": "promotionItem_cf020301-6346-4b61-9bd8-325a976ce4b4",
272 "left": 641,
273 "top": 58,
274 "width": 369,
275 "height": 155
276
277 }
278 ]
279 }
280 },
281 {
282 "name": "block6",
283 "height": 382,
284 "hasChildFrame": true,
285 "data": {
286 "name": "frame6",
287 "resultSet": [
288 {
289 "name": "Title",
290 "code": "promotionItem_f26f6b36-de3f-4f2d-8f9a-4509764b7289",
291 "left": 0,
292 "top": 0,
293 "width": 220,
294 "height": 34,
295 "disable": true
296 },
297 {
298 "name": "Title",
299 "code": "promotionItem_502e5100-223b-4088-85e6-bcbf637e2ea3",
300 "left": 0,
301 "top": 58,
302 "width": 221,
303 "height": 135
304
305 },
306 {
307 "name": "Title",
308 "code": "promotionItem_05dd1dca-53e6-4fc6-b621-6c32b5ffe2f7",
309 "left": 237,
310 "top": 11,
311 "width": 521,
312 "height": 333
313
314 },
315 {
316 "name": "Title",
317 "code": "promotionItem_f2445926-7065-48e2-aefd-a766512be5a6",
318 "left": 774,
319 "top": 58,
320 "width": 236,
321 "height": 286
322
323 },
324 {
325 "name": "Title",
326 "code": "promotionItem_ffbf27dd-0c0a-4332-a39e-3234f83de867",
327 "left": 0,
328 "top": 209,
329 "width": 221,
330 "height": 135
331
332 }
333 ]
334 }
335 },
336 {
337 "name": "block7",
338 "height": 120,
339 "hasChildFrame": true,
340 "data": {
341 "name": "frame7",
342 "resultSet": [
343 {
344 "name": "back2Top",
345 "code": "promotionItem_f3975526-213a-4292-95ea-ab39897e1560",
346 "left": 337,
347 "top": 0,
348 "width": 322,
349 "height": 86,
350 "containerId": "back2Top"
351 }
352 ]
353 }
354 }
355 ]
356 }
357 }
358 });
1 {
2 "ver": "1.0.5",
3 "uuid": "aa753a4e-3b13-4828-ad1b-a7d1af1e6272",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1
2 cc.Class({
3 extends: cc.Component,
4
5 statics: {
6 waterfall: {
7 "name": "Recommend",
8 "resultSet": [
9 {
10 "name": "block6",
11 "height": 382,
12 "hasChildFrame": true,
13 "data": {
14 "name": "frame6",
15 "resultSet": [
16 {
17 "name": "Title",
18 "code": "promotionItem_f26f6b36-de3f-4f2d-8f9a-4509764b7289",
19 "left": 0,
20 "top": 0,
21 "width": 220,
22 "height": 34,
23 "disable": true
24 },
25 {
26 "name": "Title",
27 "code": "promotionItem_502e5100-223b-4088-85e6-bcbf637e2ea3",
28 "left": 0,
29 "top": 58,
30 "width": 221,
31 "height": 135
32
33 },
34 {
35 "name": "Title",
36 "code": "promotionItem_05dd1dca-53e6-4fc6-b621-6c32b5ffe2f7",
37 "left": 237,
38 "top": 11,
39 "width": 521,
40 "height": 333
41
42 },
43 {
44 "name": "Title",
45 "code": "promotionItem_f2445926-7065-48e2-aefd-a766512be5a6",
46 "left": 774,
47 "top": 58,
48 "width": 236,
49 "height": 286
50
51 },
52 {
53 "name": "Title",
54 "code": "promotionItem_ffbf27dd-0c0a-4332-a39e-3234f83de867",
55 "left": 0,
56 "top": 209,
57 "width": 221,
58 "height": 135
59
60 }
61 ]
62 }
63 },
64 {
65 "name": "block1",
66 "height": 526,
67 "hasChildFrame": true,
68 "data": {
69 "name": "frame1",
70 "resultSet": [
71
72 {
73 "name": "Carousel0",
74 "code": "promotionItem_fd456495-2e32-44e1-9d92-450227d4afa3",
75 "left": 0,
76 "top": 0,
77 "width": 235,
78 "height": 287
79 },
80 {
81 "name": "dailyRecommend",
82 "code": "promotionItem_4ca66642-33d0-41c9-9913-df131a79a375",
83 "left": 252,
84 "top": 0,
85 "width": 504,
86 "height": 287
87 },
88 {
89 "name": "dailyRecommend",
90 "code": "promotionItem_c5f58c16-48a5-4796-ab52-41679fc88a6d",
91 "left": 773,
92 "top": 0,
93 "width": 235,
94 "height": 287
95 },
96 {
97 "name": "dailyRecommend",
98 "code": "promotionItem_9fd6d854-2a72-42d5-a2c0-1ce824cf406c",
99 "left": 0,
100 "top": 308,
101 "width": 427,
102 "height": 169
103 },
104 {
105 "name": "dailyRecommend",
106 "code": "promotionItem_5b998526-fb2a-48f9-8977-1fc20ac91ae6",
107 "left": 445,
108 "top": 308,
109 "width": 274,
110 "height": 168
111 },
112 {
113 "name": "dailyRecommend",
114 "code": "promotionItem_2ff129e8-12aa-4384-a0b8-736b8ff029f1",
115 "left": 736,
116 "top": 308,
117 "width": 274,
118 "height": 168
119 }
120 ]
121 }
122 },
123 {
124 "name": "block2",
125 "height": 224,
126 "hasChildFrame": true,
127 "data": {
128 "name": "frame2",
129 "resultSet": [
130 {
131 "name": "Title",
132 "code": "promotionItem_8a4a1762-22e8-4a1e-8ce3-1fe81412855a",
133 "left": 0,
134 "top": 0,
135 "width": 220,
136 "height": 33,
137 "disable": true
138 },
139 {
140 "name": "SubjectList",
141 "layout": "horizontal",
142 "position": [0, 59],
143 "width": 1100,
144 "disable": true,
145 "childrenSize": [105, 123],
146 "childrenMargin": [0, 24, 0, 0],
147 "hasChildFrame": true,
148 "data": {
149 "name": "subjectList",
150 "resultSet": [
151 {
152 "name": "Subject1",
153 "code": "promotionItem_e432ac2d-c1f3-4d44-a42b-7000971affa1"
154 },
155 {
156 "name": "Subject2",
157 "code": "promotionItem_f90b7ff3-1f36-4019-9e77-cef871902343"
158 },
159 {
160 "name": "Subject3",
161 "code": "promotionItem_e29b33e4-8954-4ef9-a6fc-0d844c909c67"
162 },
163 {
164 "name": "Subject4",
165 "code": "promotionItem_57aea4b3-7716-4224-bc77-43272c35ee32"
166 },
167 {
168 "name": "Subject4",
169 "code": "promotionItem_55c68c1c-451a-4197-84a1-6a39a1668a90"
170 },
171 {
172 "name": "Subject4",
173 "code": "promotionItem_2ac9afea-aa83-4fc1-a651-4f465b3cb1c3"
174 },
175 {
176 "name": "Subject4",
177 "code": "promotionItem_8ab81a46-b81e-4acf-bbcd-13315747eab3"
178 },
179 {
180 "name": "Subject4",
181 "code": "promotionItem_3e6642ab-517c-49ea-8788-cdc9130716d7"
182 }
183 ]
184 },
185 "dataTmpl": "tmplPromotionGroupCell2",
186 "childClass": "subject_list_cell"
187
188 }
189 ]
190 }
191 },
192 {
193 "name": "block3",
194 "height": 427,
195 "hasChildFrame": true,
196 "data": {
197 "name": "frame3",
198 "resultSet": [
199 {
200 "name": "Title",
201 "code": "promotionItem_ca662698-17fe-436b-8bee-9b5e0a255bdb",
202 "left": 0,
203 "top": 0,
204 "width": 220,
205 "height": 36,
206 "disable": true
207 },
208 {
209 "name": "SingerList",
210 "code": "promotionItem_0a911d4c-9223-4d49-bf63-6e4ed2a49668",
211 "left": 0,
212 "top": 60,
213 "width": 493,
214 "height": 316
215
216 },
217 {
218 "name": "SingerList",
219 "code": "promotionItem_c388af5a-0351-43c4-89f5-8c8bfbf5a443",
220 "left": 517,
221 "top": 60,
222 "width": 493,
223 "height": 316
224
225 }
226 ]
227 }
228 },
229 {
230 "name": "block4",
231 "height": 286,
232 "hasChildFrame": true,
233 "data": {
234 "name": "frame4",
235 "resultSet": [
236 {
237 "name": "Title",
238 "code": "promotionItem_f4c1169d-1778-48af-a449-3d195f8ca146",
239 "left": 0,
240 "top": 0,
241 "width": 220,
242 "height": 33,
243 "disable": true
244 },
245 {
246 "name": "SubjectList",
247 "layout": "horizontal",
248 "position": [0, 57],
249 "width": 1100,
250 "disable": true,
251 "childrenSize": [159, 175],
252 "childrenMargin": [0, 11, 0, 0],
253 "hasChildFrame": true,
254 "data": {
255 "name": "subjectList",
256 "resultSet": [
257 {
258 "name": "Subject1",
259 "code": "promotionItem_df4a26f1-bfd9-4781-9495-ba74f53bf285"
260 },
261 {
262 "name": "Subject2",
263 "code": "promotionItem_4727bb73-6d27-455d-b573-d2bb18074b07"
264 },
265 {
266 "name": "Subject3",
267 "code": "promotionItem_d2be83c4-78da-466b-b16d-e433bbaa4cac"
268 },
269 {
270 "name": "Subject4",
271 "code": "promotionItem_d8bfc7e3-0df3-488a-8655-795ad48e9b74"
272 },
273 {
274 "name": "Subject4",
275 "code": "promotionItem_9c4e1710-e9cb-4698-83eb-91cd2e85ba2e"
276 },
277 {
278 "name": "Subject4",
279 "code": "promotionItem_edfd1449-ea73-4a19-b605-e09af698e615"
280 }
281 ]
282 },
283 "dataTmpl": "tmplPromotionGroupCell2",
284 "childClass": "subject_list_cell"
285
286 }
287 ]
288 }
289 },
290 {
291 "name": "block5",
292 "height": 274,
293 "hasChildFrame": true,
294 "data": {
295 "name": "frame5",
296 "resultSet": [
297 {
298 "name": "Title",
299 "code": "promotionItem_e6bf3f27-97a7-4990-85bb-b07f75d90ef6",
300 "left": 0,
301 "top": 0,
302 "width": 220,
303 "height": 33,
304 "disable": true
305 },
306 {
307 "name": "Title",
308 "code": "promotionItem_c39cdbc6-aa7b-4bf0-a700-0d396bc7bd47",
309 "left": 0,
310 "top": 58,
311 "width": 369,
312 "height": 155
313
314 },
315 {
316 "name": "Title",
317 "code": "promotionItem_0b3263db-d600-4ad3-b2ba-4787315ca51c",
318 "left": 379,
319 "top": 58,
320 "width": 254,
321 "height": 155
322
323 },
324 {
325 "name": "Title",
326 "code": "promotionItem_cf020301-6346-4b61-9bd8-325a976ce4b4",
327 "left": 641,
328 "top": 58,
329 "width": 369,
330 "height": 155
331
332 }
333 ]
334 }
335 },
336
337 {
338 "name": "block7",
339 "height": 120,
340 "hasChildFrame": true,
341 "data": {
342 "name": "frame7",
343 "resultSet": [
344 {
345 "name": "back2Top",
346 "code": "promotionItem_f3975526-213a-4292-95ea-ab39897e1560",
347 "left": 337,
348 "top": 0,
349 "width": 322,
350 "height": 86,
351 "containerId": "back2Top"
352 }
353 ]
354 }
355 }
356 ]
357 }
358 }
359 });
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.5",
3 "uuid": "97fdacf1-0a54-46e5-960d-8017fba2261f",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1
2 cc.Class({
3 extends: cc.Component,
4
5 statics: {
6 waterfall: {
7 "name": "Recommend",
8 "resultSet": [
9 {
10 "name": "block5",
11 "height": 274,
12 "hasChildFrame": true,
13 "data": {
14 "name": "frame5",
15 "resultSet": [
16 {
17 "name": "Title",
18 "code": "promotionItem_e6bf3f27-97a7-4990-85bb-b07f75d90ef6",
19 "left": 0,
20 "top": 0,
21 "width": 220,
22 "height": 33,
23 "disable": true
24 },
25 {
26 "name": "Title",
27 "code": "promotionItem_c39cdbc6-aa7b-4bf0-a700-0d396bc7bd47",
28 "left": 0,
29 "top": 58,
30 "width": 369,
31 "height": 155
32
33 },
34 {
35 "name": "Title",
36 "code": "promotionItem_0b3263db-d600-4ad3-b2ba-4787315ca51c",
37 "left": 379,
38 "top": 58,
39 "width": 254,
40 "height": 155
41
42 },
43 {
44 "name": "Title",
45 "code": "promotionItem_cf020301-6346-4b61-9bd8-325a976ce4b4",
46 "left": 641,
47 "top": 58,
48 "width": 369,
49 "height": 155
50
51 }
52 ]
53 }
54 },
55 {
56 "name": "block1",
57 "height": 526,
58 "hasChildFrame": true,
59 "data": {
60 "name": "frame1",
61 "resultSet": [
62 {
63 "name": "Carousel0",
64 "code": "promotionItem_fd456495-2e32-44e1-9d92-450227d4afa3",
65 "left": 0,
66 "top": 0,
67 "width": 235,
68 "height": 287
69 },
70 {
71 "name": "dailyRecommend",
72 "code": "promotionItem_4ca66642-33d0-41c9-9913-df131a79a375",
73 "left": 252,
74 "top": 0,
75 "width": 504,
76 "height": 287
77 },
78 {
79 "name": "dailyRecommend",
80 "code": "promotionItem_c5f58c16-48a5-4796-ab52-41679fc88a6d",
81 "left": 773,
82 "top": 0,
83 "width": 235,
84 "height": 287
85 },
86 {
87 "name": "dailyRecommend",
88 "code": "promotionItem_9fd6d854-2a72-42d5-a2c0-1ce824cf406c",
89 "left": 0,
90 "top": 308,
91 "width": 427,
92 "height": 169
93 },
94 {
95 "name": "dailyRecommend",
96 "code": "promotionItem_5b998526-fb2a-48f9-8977-1fc20ac91ae6",
97 "left": 445,
98 "top": 308,
99 "width": 274,
100 "height": 168
101 },
102 {
103 "name": "dailyRecommend",
104 "code": "promotionItem_2ff129e8-12aa-4384-a0b8-736b8ff029f1",
105 "left": 736,
106 "top": 308,
107 "width": 274,
108 "height": 168
109 }
110 ]
111 }
112 },
113 {
114 "name": "block2",
115 "height": 224,
116 "hasChildFrame": true,
117 "data": {
118 "name": "frame2",
119 "resultSet": [
120 {
121 "name": "Title",
122 "code": "promotionItem_8a4a1762-22e8-4a1e-8ce3-1fe81412855a",
123 "left": 0,
124 "top": 0,
125 "width": 220,
126 "height": 33,
127 "disable": true
128 },
129 {
130 "name": "SubjectList",
131 "layout": "horizontal",
132 "position": [0, 59],
133 "width": 1100,
134 "disable": true,
135 "childrenSize": [105, 123],
136 "childrenMargin": [0, 24, 0, 0],
137 "hasChildFrame": true,
138 "data": {
139 "name": "subjectList",
140 "resultSet": [
141 {
142 "name": "Subject1",
143 "code": "promotionItem_e432ac2d-c1f3-4d44-a42b-7000971affa1"
144 },
145 {
146 "name": "Subject2",
147 "code": "promotionItem_f90b7ff3-1f36-4019-9e77-cef871902343"
148 },
149 {
150 "name": "Subject3",
151 "code": "promotionItem_e29b33e4-8954-4ef9-a6fc-0d844c909c67"
152 },
153 {
154 "name": "Subject4",
155 "code": "promotionItem_57aea4b3-7716-4224-bc77-43272c35ee32"
156 },
157 {
158 "name": "Subject4",
159 "code": "promotionItem_55c68c1c-451a-4197-84a1-6a39a1668a90"
160 },
161 {
162 "name": "Subject4",
163 "code": "promotionItem_2ac9afea-aa83-4fc1-a651-4f465b3cb1c3"
164 },
165 {
166 "name": "Subject4",
167 "code": "promotionItem_8ab81a46-b81e-4acf-bbcd-13315747eab3"
168 },
169 {
170 "name": "Subject4",
171 "code": "promotionItem_3e6642ab-517c-49ea-8788-cdc9130716d7"
172 }
173 ]
174 },
175 "dataTmpl": "tmplPromotionGroupCell2",
176 "childClass": "subject_list_cell"
177
178 }
179 ]
180 }
181 },
182 {
183 "name": "block3",
184 "height": 427,
185 "hasChildFrame": true,
186 "data": {
187 "name": "frame3",
188 "resultSet": [
189 {
190 "name": "Title",
191 "code": "promotionItem_ca662698-17fe-436b-8bee-9b5e0a255bdb",
192 "left": 0,
193 "top": 0,
194 "width": 220,
195 "height": 36,
196 "disable": true
197 },
198 {
199 "name": "SingerList",
200 "code": "promotionItem_0a911d4c-9223-4d49-bf63-6e4ed2a49668",
201 "left": 0,
202 "top": 60,
203 "width": 493,
204 "height": 316
205
206 },
207 {
208 "name": "SingerList",
209 "code": "promotionItem_c388af5a-0351-43c4-89f5-8c8bfbf5a443",
210 "left": 517,
211 "top": 60,
212 "width": 493,
213 "height": 316
214
215 }
216 ]
217 }
218 },
219 {
220 "name": "block4",
221 "height": 286,
222 "hasChildFrame": true,
223 "data": {
224 "name": "frame4",
225 "resultSet": [
226 {
227 "name": "Title",
228 "code": "promotionItem_f4c1169d-1778-48af-a449-3d195f8ca146",
229 "left": 0,
230 "top": 0,
231 "width": 220,
232 "height": 33,
233 "disable": true
234 },
235 {
236 "name": "SubjectList",
237 "layout": "horizontal",
238 "position": [0, 57],
239 "width": 1100,
240 "disable": true,
241 "childrenSize": [159, 175],
242 "childrenMargin": [0, 11, 0, 0],
243 "hasChildFrame": true,
244 "data": {
245 "name": "subjectList",
246 "resultSet": [
247 {
248 "name": "Subject1",
249 "code": "promotionItem_df4a26f1-bfd9-4781-9495-ba74f53bf285"
250 },
251 {
252 "name": "Subject2",
253 "code": "promotionItem_4727bb73-6d27-455d-b573-d2bb18074b07"
254 },
255 {
256 "name": "Subject3",
257 "code": "promotionItem_d2be83c4-78da-466b-b16d-e433bbaa4cac"
258 },
259 {
260 "name": "Subject4",
261 "code": "promotionItem_d8bfc7e3-0df3-488a-8655-795ad48e9b74"
262 },
263 {
264 "name": "Subject4",
265 "code": "promotionItem_9c4e1710-e9cb-4698-83eb-91cd2e85ba2e"
266 },
267 {
268 "name": "Subject4",
269 "code": "promotionItem_edfd1449-ea73-4a19-b605-e09af698e615"
270 }
271 ]
272 },
273 "dataTmpl": "tmplPromotionGroupCell2",
274 "childClass": "subject_list_cell"
275
276 }
277 ]
278 }
279 },
280
281 {
282 "name": "block6",
283 "height": 382,
284 "hasChildFrame": true,
285 "data": {
286 "name": "frame6",
287 "resultSet": [
288 {
289 "name": "Title",
290 "code": "promotionItem_f26f6b36-de3f-4f2d-8f9a-4509764b7289",
291 "left": 0,
292 "top": 0,
293 "width": 220,
294 "height": 34,
295 "disable": true
296 },
297 {
298 "name": "Title",
299 "code": "promotionItem_502e5100-223b-4088-85e6-bcbf637e2ea3",
300 "left": 0,
301 "top": 58,
302 "width": 221,
303 "height": 135
304
305 },
306 {
307 "name": "Title",
308 "code": "promotionItem_05dd1dca-53e6-4fc6-b621-6c32b5ffe2f7",
309 "left": 237,
310 "top": 11,
311 "width": 521,
312 "height": 333
313
314 },
315 {
316 "name": "Title",
317 "code": "promotionItem_f2445926-7065-48e2-aefd-a766512be5a6",
318 "left": 774,
319 "top": 58,
320 "width": 236,
321 "height": 286
322
323 },
324 {
325 "name": "Title",
326 "code": "promotionItem_ffbf27dd-0c0a-4332-a39e-3234f83de867",
327 "left": 0,
328 "top": 209,
329 "width": 221,
330 "height": 135
331
332 }
333 ]
334 }
335 },
336 {
337 "name": "block7",
338 "height": 120,
339 "hasChildFrame": true,
340 "data": {
341 "name": "frame7",
342 "resultSet": [
343 {
344 "name": "back2Top",
345 "code": "promotionItem_f3975526-213a-4292-95ea-ab39897e1560",
346 "left": 337,
347 "top": 0,
348 "width": 322,
349 "height": 86,
350 "containerId": "back2Top"
351 }
352 ]
353 }
354 }
355 ]
356 }
357 }
358 });
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.5",
3 "uuid": "499fb139-3263-492e-94a2-495a8db820e9",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 //推荐瀑布流
2
3 cc.Class({
4 extends: cc.Component,
5
6 statics: {
7 waterfall:
8 {
9 "name": "Recommend",
10 "resultSet": [
11 {
12 "name": "block1",
13 "height": 526,
14 "hasChildFrame": true,
15 "data": {
16 "name": "frame1",
17 "resultSet": [
18 {
19 "name": "Carousel0",
20 "code": "promotionItem_fd456495-2e32-44e1-9d92-450227d4afa3",
21 "left": 0,
22 "top": 0,
23 "width": 235,
24 "height": 287
25 },
26 {
27 "name": "dailyRecommend",
28 "code": "promotionItem_4ca66642-33d0-41c9-9913-df131a79a375",
29 "left": 252,
30 "top": 0,
31 "width": 504,
32 "height": 287
33 },
34 {
35 "name": "dailyRecommend",
36 "code": "promotionItem_c5f58c16-48a5-4796-ab52-41679fc88a6d",
37 "left": 773,
38 "top": 0,
39 "width": 235,
40 "height": 287
41 },
42 {
43 "name": "dailyRecommend",
44 "code": "promotionItem_9fd6d854-2a72-42d5-a2c0-1ce824cf406c",
45 "left": 0,
46 "top": 308,
47 "width": 427,
48 "height": 169
49 },
50 {
51 "name": "dailyRecommend",
52 "code": "promotionItem_5b998526-fb2a-48f9-8977-1fc20ac91ae6",
53 "left": 445,
54 "top": 308,
55 "width": 274,
56 "height": 168
57 },
58 {
59 "name": "dailyRecommend",
60 "code": "promotionItem_2ff129e8-12aa-4384-a0b8-736b8ff029f1",
61 "left": 736,
62 "top": 308,
63 "width": 274,
64 "height": 168
65 }
66 ]
67 }
68 },
69 {
70 "name": "block2",
71 "height": 224,
72 "hasChildFrame": true,
73 "data": {
74 "name": "frame2",
75 "resultSet": [
76 {
77 "name": "Title",
78 "code": "promotionItem_8a4a1762-22e8-4a1e-8ce3-1fe81412855a",
79 "left": 0,
80 "top": 0,
81 "width": 220,
82 "height": 33,
83 "disable": true
84 },
85 {
86 "name": "SubjectList",
87 "layout": "horizontal",
88 "position": [0, 59],
89 "width": 1100,
90 "disable": true,
91 "childrenSize": [105, 123],
92 "childrenMargin": [0, 24, 0, 0],
93 "hasChildFrame": true,
94 "data": {
95 "name": "subjectList",
96 "resultSet": [
97 {
98 "name": "Subject1",
99 "code": "promotionItem_e432ac2d-c1f3-4d44-a42b-7000971affa1"
100 },
101 {
102 "name": "Subject2",
103 "code": "promotionItem_f90b7ff3-1f36-4019-9e77-cef871902343"
104 },
105 {
106 "name": "Subject3",
107 "code": "promotionItem_e29b33e4-8954-4ef9-a6fc-0d844c909c67"
108 },
109 {
110 "name": "Subject4",
111 "code": "promotionItem_57aea4b3-7716-4224-bc77-43272c35ee32"
112 },
113 {
114 "name": "Subject4",
115 "code": "promotionItem_55c68c1c-451a-4197-84a1-6a39a1668a90"
116 },
117 {
118 "name": "Subject4",
119 "code": "promotionItem_2ac9afea-aa83-4fc1-a651-4f465b3cb1c3"
120 },
121 {
122 "name": "Subject4",
123 "code": "promotionItem_8ab81a46-b81e-4acf-bbcd-13315747eab3"
124 },
125 {
126 "name": "Subject4",
127 "code": "promotionItem_3e6642ab-517c-49ea-8788-cdc9130716d7"
128 }
129 ]
130 },
131 "dataTmpl": "tmplPromotionGroupCell2",
132 "childClass": "subject_list_cell"
133
134 }
135 ]
136 }
137 },
138 {
139 "name": "block3",
140 "height": 427,
141 "hasChildFrame": true,
142 "data": {
143 "name": "frame3",
144 "resultSet": [
145 {
146 "name": "Title",
147 "code": "promotionItem_ca662698-17fe-436b-8bee-9b5e0a255bdb",
148 "left": 0,
149 "top": 0,
150 "width": 220,
151 "height": 36,
152 "disable": true
153 },
154 {
155 "name": "SingerList",
156 "code": "promotionItem_0a911d4c-9223-4d49-bf63-6e4ed2a49668",
157 "left": 0,
158 "top": 60,
159 "width": 493,
160 "height": 316
161
162 },
163 {
164 "name": "SingerList",
165 "code": "promotionItem_c388af5a-0351-43c4-89f5-8c8bfbf5a443",
166 "left": 517,
167 "top": 60,
168 "width": 493,
169 "height": 316
170
171 }
172 ]
173 }
174 },
175 {
176 "name": "block4",
177 "height": 286,
178 "hasChildFrame": true,
179 "data": {
180 "name": "frame4",
181 "resultSet": [
182 {
183 "name": "Title",
184 "code": "promotionItem_f4c1169d-1778-48af-a449-3d195f8ca146",
185 "left": 0,
186 "top": 0,
187 "width": 220,
188 "height": 33,
189 "disable": true
190 },
191 {
192 "name": "SubjectList",
193 "layout": "horizontal",
194 "position": [0, 57],
195 "width": 1100,
196 "disable": true,
197 "childrenSize": [159, 175],
198 "childrenMargin": [0, 11, 0, 0],
199 "hasChildFrame": true,
200 "data": {
201 "name": "subjectList",
202 "resultSet": [
203 {
204 "name": "Subject1",
205 "code": "promotionItem_df4a26f1-bfd9-4781-9495-ba74f53bf285"
206 },
207 {
208 "name": "Subject2",
209 "code": "promotionItem_4727bb73-6d27-455d-b573-d2bb18074b07"
210 },
211 {
212 "name": "Subject3",
213 "code": "promotionItem_d2be83c4-78da-466b-b16d-e433bbaa4cac"
214 },
215 {
216 "name": "Subject4",
217 "code": "promotionItem_d8bfc7e3-0df3-488a-8655-795ad48e9b74"
218 },
219 {
220 "name": "Subject4",
221 "code": "promotionItem_9c4e1710-e9cb-4698-83eb-91cd2e85ba2e"
222 },
223 {
224 "name": "Subject4",
225 "code": "promotionItem_edfd1449-ea73-4a19-b605-e09af698e615"
226 }
227 ]
228 },
229 "dataTmpl": "tmplPromotionGroupCell2",
230 "childClass": "subject_list_cell"
231
232 }
233 ]
234 }
235 },
236 {
237 "name": "block5",
238 "height": 274,
239 "hasChildFrame": true,
240 "data": {
241 "name": "frame5",
242 "resultSet": [
243 {
244 "name": "Title",
245 "code": "promotionItem_e6bf3f27-97a7-4990-85bb-b07f75d90ef6",
246 "left": 0,
247 "top": 0,
248 "width": 220,
249 "height": 33,
250 "disable": true
251 },
252 {
253 "name": "Title",
254 "code": "promotionItem_c39cdbc6-aa7b-4bf0-a700-0d396bc7bd47",
255 "left": 0,
256 "top": 58,
257 "width": 369,
258 "height": 155
259
260 },
261 {
262 "name": "Title",
263 "code": "promotionItem_0b3263db-d600-4ad3-b2ba-4787315ca51c",
264 "left": 379,
265 "top": 58,
266 "width": 254,
267 "height": 155
268
269 },
270 {
271 "name": "Title",
272 "code": "promotionItem_cf020301-6346-4b61-9bd8-325a976ce4b4",
273 "left": 641,
274 "top": 58,
275 "width": 369,
276 "height": 155
277
278 }
279 ]
280 }
281 },
282 {
283 "name": "block6",
284 "height": 382,
285 "hasChildFrame": true,
286 "data": {
287 "name": "frame6",
288 "resultSet": [
289 {
290 "name": "Title",
291 "code": "promotionItem_f26f6b36-de3f-4f2d-8f9a-4509764b7289",
292 "left": 0,
293 "top": 0,
294 "width": 220,
295 "height": 34,
296 "disable": true
297 },
298 {
299 "name": "Title",
300 "code": "promotionItem_502e5100-223b-4088-85e6-bcbf637e2ea3",
301 "left": 0,
302 "top": 58,
303 "width": 221,
304 "height": 135
305
306 },
307 {
308 "name": "Title",
309 "code": "promotionItem_05dd1dca-53e6-4fc6-b621-6c32b5ffe2f7",
310 "left": 237,
311 "top": 11,
312 "width": 521,
313 "height": 333
314
315 },
316 {
317 "name": "Title",
318 "code": "promotionItem_f2445926-7065-48e2-aefd-a766512be5a6",
319 "left": 774,
320 "top": 58,
321 "width": 236,
322 "height": 286
323
324 },
325 {
326 "name": "Title",
327 "code": "promotionItem_ffbf27dd-0c0a-4332-a39e-3234f83de867",
328 "left": 0,
329 "top": 209,
330 "width": 221,
331 "height": 135
332
333 }
334 ]
335 }
336 },
337 {
338 "name": "block7",
339 "height": 120,
340 "hasChildFrame": true,
341 "data": {
342 "name": "frame7",
343 "resultSet": [
344 {
345 "name": "back2Top",
346 "code": "promotionItem_f3975526-213a-4292-95ea-ab39897e1560",
347 "left": 337,
348 "top": 0,
349 "width": 322,
350 "height": 86,
351 "containerId": "back2Top"
352 }
353 ]
354 }
355 }
356 ]
357 }
358 }
359 });
1 {
2 "ver": "1.0.5",
3 "uuid": "8d5835ea-26bc-4227-abd5-be997edcff8d",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1
2 cc.Class({
3 extends: cc.Component,
4
5 statics: {
6 waterfall: {
7 "name": "Recommend",
8 "resultSet": [
9
10 {
11 "name": "block2",
12 "height": 224,
13 "hasChildFrame": true,
14 "data": {
15 "name": "frame2",
16 "resultSet": [
17 {
18 "name": "Title",
19 "code": "promotionItem_8a4a1762-22e8-4a1e-8ce3-1fe81412855a",
20 "left": 0,
21 "top": 0,
22 "width": 220,
23 "height": 33,
24 "disable": true
25 },
26 {
27 "name": "SubjectList",
28 "layout": "horizontal",
29 "position": [0, 59],
30 "width": 1100,
31 "disable": true,
32 "childrenSize": [105, 123],
33 "childrenMargin": [0, 24, 0, 0],
34 "hasChildFrame": true,
35 "data": {
36 "name": "subjectList",
37 "resultSet": [
38 {
39 "name": "Subject1",
40 "code": "promotionItem_e432ac2d-c1f3-4d44-a42b-7000971affa1"
41 },
42 {
43 "name": "Subject2",
44 "code": "promotionItem_f90b7ff3-1f36-4019-9e77-cef871902343"
45 },
46 {
47 "name": "Subject3",
48 "code": "promotionItem_e29b33e4-8954-4ef9-a6fc-0d844c909c67"
49 },
50 {
51 "name": "Subject4",
52 "code": "promotionItem_57aea4b3-7716-4224-bc77-43272c35ee32"
53 },
54 {
55 "name": "Subject4",
56 "code": "promotionItem_55c68c1c-451a-4197-84a1-6a39a1668a90"
57 },
58 {
59 "name": "Subject4",
60 "code": "promotionItem_2ac9afea-aa83-4fc1-a651-4f465b3cb1c3"
61 },
62 {
63 "name": "Subject4",
64 "code": "promotionItem_8ab81a46-b81e-4acf-bbcd-13315747eab3"
65 },
66 {
67 "name": "Subject4",
68 "code": "promotionItem_3e6642ab-517c-49ea-8788-cdc9130716d7"
69 }
70 ]
71 },
72 "dataTmpl": "tmplPromotionGroupCell2",
73 "childClass": "subject_list_cell"
74
75 }
76 ]
77 }
78 },
79 {
80 "name": "block1",
81 "height": 526,
82 "hasChildFrame": true,
83 "data": {
84 "name": "frame1",
85 "resultSet": [
86 {
87 "name": "Carousel0",
88 "code": "promotionItem_fd456495-2e32-44e1-9d92-450227d4afa3",
89 "left": 0,
90 "top": 0,
91 "width": 235,
92 "height": 287
93 },
94 {
95 "name": "dailyRecommend",
96 "code": "promotionItem_4ca66642-33d0-41c9-9913-df131a79a375",
97 "left": 252,
98 "top": 0,
99 "width": 504,
100 "height": 287
101 },
102 {
103 "name": "dailyRecommend",
104 "code": "promotionItem_c5f58c16-48a5-4796-ab52-41679fc88a6d",
105 "left": 773,
106 "top": 0,
107 "width": 235,
108 "height": 287
109 },
110 {
111 "name": "dailyRecommend",
112 "code": "promotionItem_9fd6d854-2a72-42d5-a2c0-1ce824cf406c",
113 "left": 0,
114 "top": 308,
115 "width": 427,
116 "height": 169
117 },
118 {
119 "name": "dailyRecommend",
120 "code": "promotionItem_5b998526-fb2a-48f9-8977-1fc20ac91ae6",
121 "left": 445,
122 "top": 308,
123 "width": 274,
124 "height": 168
125 },
126 {
127 "name": "dailyRecommend",
128 "code": "promotionItem_2ff129e8-12aa-4384-a0b8-736b8ff029f1",
129 "left": 736,
130 "top": 308,
131 "width": 274,
132 "height": 168
133 }
134 ]
135 }
136 },
137 {
138 "name": "block3",
139 "height": 427,
140 "hasChildFrame": true,
141 "data": {
142 "name": "frame3",
143 "resultSet": [
144 {
145 "name": "Title",
146 "code": "promotionItem_ca662698-17fe-436b-8bee-9b5e0a255bdb",
147 "left": 0,
148 "top": 0,
149 "width": 220,
150 "height": 36,
151 "disable": true
152 },
153 {
154 "name": "SingerList",
155 "code": "promotionItem_0a911d4c-9223-4d49-bf63-6e4ed2a49668",
156 "left": 0,
157 "top": 60,
158 "width": 493,
159 "height": 316
160
161 },
162 {
163 "name": "SingerList",
164 "code": "promotionItem_c388af5a-0351-43c4-89f5-8c8bfbf5a443",
165 "left": 517,
166 "top": 60,
167 "width": 493,
168 "height": 316
169
170 }
171 ]
172 }
173 },
174 {
175 "name": "block4",
176 "height": 286,
177 "hasChildFrame": true,
178 "data": {
179 "name": "frame4",
180 "resultSet": [
181 {
182 "name": "Title",
183 "code": "promotionItem_f4c1169d-1778-48af-a449-3d195f8ca146",
184 "left": 0,
185 "top": 0,
186 "width": 220,
187 "height": 33,
188 "disable": true
189 },
190 {
191 "name": "SubjectList",
192 "layout": "horizontal",
193 "position": [0, 57],
194 "width": 1100,
195 "disable": true,
196 "childrenSize": [159, 175],
197 "childrenMargin": [0, 11, 0, 0],
198 "hasChildFrame": true,
199 "data": {
200 "name": "subjectList",
201 "resultSet": [
202 {
203 "name": "Subject1",
204 "code": "promotionItem_df4a26f1-bfd9-4781-9495-ba74f53bf285"
205 },
206 {
207 "name": "Subject2",
208 "code": "promotionItem_4727bb73-6d27-455d-b573-d2bb18074b07"
209 },
210 {
211 "name": "Subject3",
212 "code": "promotionItem_d2be83c4-78da-466b-b16d-e433bbaa4cac"
213 },
214 {
215 "name": "Subject4",
216 "code": "promotionItem_d8bfc7e3-0df3-488a-8655-795ad48e9b74"
217 },
218 {
219 "name": "Subject4",
220 "code": "promotionItem_9c4e1710-e9cb-4698-83eb-91cd2e85ba2e"
221 },
222 {
223 "name": "Subject4",
224 "code": "promotionItem_edfd1449-ea73-4a19-b605-e09af698e615"
225 }
226 ]
227 },
228 "dataTmpl": "tmplPromotionGroupCell2",
229 "childClass": "subject_list_cell"
230
231 }
232 ]
233 }
234 },
235 {
236 "name": "block5",
237 "height": 274,
238 "hasChildFrame": true,
239 "data": {
240 "name": "frame5",
241 "resultSet": [
242 {
243 "name": "Title",
244 "code": "promotionItem_e6bf3f27-97a7-4990-85bb-b07f75d90ef6",
245 "left": 0,
246 "top": 0,
247 "width": 220,
248 "height": 33,
249 "disable": true
250 },
251 {
252 "name": "Title",
253 "code": "promotionItem_c39cdbc6-aa7b-4bf0-a700-0d396bc7bd47",
254 "left": 0,
255 "top": 58,
256 "width": 369,
257 "height": 155
258
259 },
260 {
261 "name": "Title",
262 "code": "promotionItem_0b3263db-d600-4ad3-b2ba-4787315ca51c",
263 "left": 379,
264 "top": 58,
265 "width": 254,
266 "height": 155
267
268 },
269 {
270 "name": "Title",
271 "code": "promotionItem_cf020301-6346-4b61-9bd8-325a976ce4b4",
272 "left": 641,
273 "top": 58,
274 "width": 369,
275 "height": 155
276
277 }
278 ]
279 }
280 },
281 {
282 "name": "block6",
283 "height": 382,
284 "hasChildFrame": true,
285 "data": {
286 "name": "frame6",
287 "resultSet": [
288 {
289 "name": "Title",
290 "code": "promotionItem_f26f6b36-de3f-4f2d-8f9a-4509764b7289",
291 "left": 0,
292 "top": 0,
293 "width": 220,
294 "height": 34,
295 "disable": true
296 },
297 {
298 "name": "Title",
299 "code": "promotionItem_502e5100-223b-4088-85e6-bcbf637e2ea3",
300 "left": 0,
301 "top": 58,
302 "width": 221,
303 "height": 135
304
305 },
306 {
307 "name": "Title",
308 "code": "promotionItem_05dd1dca-53e6-4fc6-b621-6c32b5ffe2f7",
309 "left": 237,
310 "top": 11,
311 "width": 521,
312 "height": 333
313
314 },
315 {
316 "name": "Title",
317 "code": "promotionItem_f2445926-7065-48e2-aefd-a766512be5a6",
318 "left": 774,
319 "top": 58,
320 "width": 236,
321 "height": 286
322
323 },
324 {
325 "name": "Title",
326 "code": "promotionItem_ffbf27dd-0c0a-4332-a39e-3234f83de867",
327 "left": 0,
328 "top": 209,
329 "width": 221,
330 "height": 135
331
332 }
333 ]
334 }
335 },
336 {
337 "name": "block7",
338 "height": 120,
339 "hasChildFrame": true,
340 "data": {
341 "name": "frame7",
342 "resultSet": [
343 {
344 "name": "back2Top",
345 "code": "promotionItem_f3975526-213a-4292-95ea-ab39897e1560",
346 "left": 337,
347 "top": 0,
348 "width": 322,
349 "height": 86,
350 "containerId": "back2Top"
351 }
352 ]
353 }
354 }
355 ]
356 }
357 }
358 });
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.5",
3 "uuid": "bb5c5a5e-89a9-4ed1-8918-b65df56166ad",
4 "isPlugin": false,
5 "loadPluginInWeb": true,
6 "loadPluginInNative": true,
7 "loadPluginInEditor": false,
8 "subMetas": {}
9 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "7b81d4e8-ec84-4716-968d-500ac1d78a54",
4 "isGroup": false,
5 "subMetas": {}
6 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "6aa0aa6a-ebee-4155-a088-a687a6aadec4",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "HelloWorld": {
11 "ver": "1.0.4",
12 "uuid": "31bc895a-c003-4566-a9f3-2e54ae1c17dc",
13 "rawTextureUuid": "6aa0aa6a-ebee-4155-a088-a687a6aadec4",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 195,
22 "height": 270,
23 "rawWidth": 195,
24 "rawHeight": 270,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "7b058b45-1d99-4a6f-af75-477dcbaa56dd",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "bg": {
11 "ver": "1.0.4",
12 "uuid": "eab92123-65ec-44fd-b9af-7b80346d5e64",
13 "rawTextureUuid": "7b058b45-1d99-4a6f-af75-477dcbaa56dd",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 1280,
22 "height": 2885,
23 "rawWidth": 1280,
24 "rawHeight": 2885,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "90871d77-34d5-4fa5-8b14-0fc3d0acdf3d",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "history": {
11 "ver": "1.0.4",
12 "uuid": "8c0c790b-4b85-43a1-8b6c-a8686b700df6",
13 "rawTextureUuid": "90871d77-34d5-4fa5-8b14-0fc3d0acdf3d",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 108,
22 "height": 48,
23 "rawWidth": 108,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "bd1dfb5f-c75a-4fac-b539-585b0b231a4b",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "logo": {
11 "ver": "1.0.4",
12 "uuid": "1af31773-8501-40fe-96e5-ec700c03162c",
13 "rawTextureUuid": "bd1dfb5f-c75a-4fac-b539-585b0b231a4b",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": -17,
19 "trimX": 2,
20 "trimY": 38,
21 "width": 649,
22 "height": 466,
23 "rawWidth": 653,
24 "rawHeight": 508,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "723c70d3-74ee-4a9e-9eb0-12e04f587bc7",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "my": {
11 "ver": "1.0.4",
12 "uuid": "e74a5b86-b958-43cf-a583-6ebdeb00e071",
13 "rawTextureUuid": "723c70d3-74ee-4a9e-9eb0-12e04f587bc7",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 127,
22 "height": 48,
23 "rawWidth": 127,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 [
2 {
3 "__type__": "cc.Prefab",
4 "_name": "",
5 "_objFlags": 0,
6 "_native": "",
7 "data": {
8 "__id__": 1
9 },
10 "optimizationPolicy": 0,
11 "asyncLoadAssets": false,
12 "readonly": false
13 },
14 {
15 "__type__": "cc.Node",
16 "_name": "pfbShowCategory",
17 "_objFlags": 0,
18 "_parent": null,
19 "_children": [
20 {
21 "__id__": 2
22 }
23 ],
24 "_active": true,
25 "_level": 1,
26 "_components": [
27 {
28 "__id__": 5
29 },
30 {
31 "__id__": 6
32 }
33 ],
34 "_prefab": {
35 "__id__": 7
36 },
37 "_opacity": 255,
38 "_color": {
39 "__type__": "cc.Color",
40 "r": 255,
41 "g": 255,
42 "b": 255,
43 "a": 255
44 },
45 "_contentSize": {
46 "__type__": "cc.Size",
47 "width": 40,
48 "height": 36
49 },
50 "_anchorPoint": {
51 "__type__": "cc.Vec2",
52 "x": 0.5,
53 "y": 0.5
54 },
55 "_position": {
56 "__type__": "cc.Vec3",
57 "x": 0,
58 "y": 0,
59 "z": 0
60 },
61 "_scale": {
62 "__type__": "cc.Vec3",
63 "x": 1,
64 "y": 1,
65 "z": 1
66 },
67 "_eulerAngles": {
68 "__type__": "cc.Vec3",
69 "x": 0,
70 "y": 0,
71 "z": 0
72 },
73 "_skewX": 0,
74 "_skewY": 0,
75 "_is3DNode": false,
76 "groupIndex": 0,
77 "_rotationX": 0,
78 "_rotationY": 0,
79 "_id": ""
80 },
81 {
82 "__type__": "cc.Node",
83 "_name": "Pic",
84 "_objFlags": 0,
85 "_parent": {
86 "__id__": 1
87 },
88 "_children": [],
89 "_active": true,
90 "_level": 2,
91 "_components": [
92 {
93 "__id__": 3
94 }
95 ],
96 "_prefab": {
97 "__id__": 4
98 },
99 "_opacity": 255,
100 "_color": {
101 "__type__": "cc.Color",
102 "r": 255,
103 "g": 255,
104 "b": 255,
105 "a": 255
106 },
107 "_contentSize": {
108 "__type__": "cc.Size",
109 "width": 40,
110 "height": 36
111 },
112 "_anchorPoint": {
113 "__type__": "cc.Vec2",
114 "x": 0.5,
115 "y": 0.5
116 },
117 "_position": {
118 "__type__": "cc.Vec3",
119 "x": 0,
120 "y": 0,
121 "z": 0
122 },
123 "_scale": {
124 "__type__": "cc.Vec3",
125 "x": 1,
126 "y": 1,
127 "z": 1
128 },
129 "_eulerAngles": {
130 "__type__": "cc.Vec3",
131 "x": 0,
132 "y": 0,
133 "z": 0
134 },
135 "_skewX": 0,
136 "_skewY": 0,
137 "_is3DNode": false,
138 "groupIndex": 0,
139 "_rotationX": 0,
140 "_rotationY": 0,
141 "_id": ""
142 },
143 {
144 "__type__": "cc.Sprite",
145 "_name": "",
146 "_objFlags": 0,
147 "node": {
148 "__id__": 2
149 },
150 "_enabled": true,
151 "_materials": [
152 {
153 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
154 }
155 ],
156 "_srcBlendFactor": 770,
157 "_dstBlendFactor": 771,
158 "_spriteFrame": null,
159 "_type": 0,
160 "_sizeMode": 1,
161 "_fillType": 0,
162 "_fillCenter": {
163 "__type__": "cc.Vec2",
164 "x": 0,
165 "y": 0
166 },
167 "_fillStart": 0,
168 "_fillRange": 0,
169 "_isTrimmedMode": true,
170 "_atlas": null,
171 "_id": ""
172 },
173 {
174 "__type__": "cc.PrefabInfo",
175 "root": {
176 "__id__": 1
177 },
178 "asset": {
179 "__uuid__": "0a9ac85b-6d8a-498b-92ce-d1b35b092920"
180 },
181 "fileId": "cahAospA9KiZ8bJwfuwSSJ",
182 "sync": false
183 },
184 {
185 "__type__": "cc.Widget",
186 "_name": "",
187 "_objFlags": 0,
188 "node": {
189 "__id__": 1
190 },
191 "_enabled": true,
192 "alignMode": 1,
193 "_target": null,
194 "_alignFlags": 9,
195 "_left": -20,
196 "_right": 0,
197 "_top": 702,
198 "_bottom": 0,
199 "_verticalCenter": 0,
200 "_horizontalCenter": 0,
201 "_isAbsLeft": true,
202 "_isAbsRight": true,
203 "_isAbsTop": true,
204 "_isAbsBottom": true,
205 "_isAbsHorizontalCenter": true,
206 "_isAbsVerticalCenter": true,
207 "_originalWidth": 0,
208 "_originalHeight": 0,
209 "_id": ""
210 },
211 {
212 "__type__": "43a14tHFN5CvrH8W3z8wxz4",
213 "_name": "",
214 "_objFlags": 0,
215 "node": {
216 "__id__": 1
217 },
218 "_enabled": true,
219 "id": 0,
220 "pic": {
221 "__id__": 3
222 },
223 "activeName1": null,
224 "activeName2": null,
225 "normalName": null,
226 "_id": ""
227 },
228 {
229 "__type__": "cc.PrefabInfo",
230 "root": {
231 "__id__": 1
232 },
233 "asset": {
234 "__uuid__": "0a9ac85b-6d8a-498b-92ce-d1b35b092920"
235 },
236 "fileId": "f3FKYd7SJEvrs4s48MPI1G",
237 "sync": false
238 }
239 ]
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.2.0",
3 "uuid": "0a9ac85b-6d8a-498b-92ce-d1b35b092920",
4 "optimizationPolicy": "AUTO",
5 "asyncLoadAssets": false,
6 "readonly": false,
7 "subMetas": {}
8 }
...\ No newline at end of file ...\ No newline at end of file
1 [
2 {
3 "__type__": "cc.Prefab",
4 "_name": "",
5 "_objFlags": 0,
6 "_native": "",
7 "data": {
8 "__id__": 1
9 },
10 "optimizationPolicy": 0,
11 "asyncLoadAssets": false,
12 "readonly": false
13 },
14 {
15 "__type__": "cc.Node",
16 "_name": "pfbShowCategory",
17 "_objFlags": 0,
18 "_parent": null,
19 "_children": [
20 {
21 "__id__": 2
22 }
23 ],
24 "_active": true,
25 "_level": 1,
26 "_components": [
27 {
28 "__id__": 5
29 },
30 {
31 "__id__": 6
32 }
33 ],
34 "_prefab": {
35 "__id__": 7
36 },
37 "_opacity": 255,
38 "_color": {
39 "__type__": "cc.Color",
40 "r": 255,
41 "g": 255,
42 "b": 255,
43 "a": 255
44 },
45 "_contentSize": {
46 "__type__": "cc.Size",
47 "width": 40,
48 "height": 36
49 },
50 "_anchorPoint": {
51 "__type__": "cc.Vec2",
52 "x": 0.5,
53 "y": 0.5
54 },
55 "_position": {
56 "__type__": "cc.Vec3",
57 "x": 0,
58 "y": 0,
59 "z": 0
60 },
61 "_scale": {
62 "__type__": "cc.Vec3",
63 "x": 1,
64 "y": 1,
65 "z": 1
66 },
67 "_eulerAngles": {
68 "__type__": "cc.Vec3",
69 "x": 0,
70 "y": 0,
71 "z": 0
72 },
73 "_skewX": 0,
74 "_skewY": 0,
75 "_is3DNode": false,
76 "groupIndex": 0,
77 "_rotationX": 0,
78 "_rotationY": 0,
79 "_id": ""
80 },
81 {
82 "__type__": "cc.Node",
83 "_name": "Pic",
84 "_objFlags": 0,
85 "_parent": {
86 "__id__": 1
87 },
88 "_children": [],
89 "_active": true,
90 "_level": 2,
91 "_components": [
92 {
93 "__id__": 3
94 }
95 ],
96 "_prefab": {
97 "__id__": 4
98 },
99 "_opacity": 255,
100 "_color": {
101 "__type__": "cc.Color",
102 "r": 255,
103 "g": 255,
104 "b": 255,
105 "a": 255
106 },
107 "_contentSize": {
108 "__type__": "cc.Size",
109 "width": 40,
110 "height": 40
111 },
112 "_anchorPoint": {
113 "__type__": "cc.Vec2",
114 "x": 0.5,
115 "y": 0.5
116 },
117 "_position": {
118 "__type__": "cc.Vec3",
119 "x": 0,
120 "y": 0,
121 "z": 0
122 },
123 "_scale": {
124 "__type__": "cc.Vec3",
125 "x": 1,
126 "y": 1,
127 "z": 1
128 },
129 "_eulerAngles": {
130 "__type__": "cc.Vec3",
131 "x": 0,
132 "y": 0,
133 "z": 0
134 },
135 "_skewX": 0,
136 "_skewY": 0,
137 "_is3DNode": false,
138 "groupIndex": 0,
139 "_rotationX": 0,
140 "_rotationY": 0,
141 "_id": ""
142 },
143 {
144 "__type__": "cc.Sprite",
145 "_name": "",
146 "_objFlags": 0,
147 "node": {
148 "__id__": 2
149 },
150 "_enabled": true,
151 "_materials": [
152 {
153 "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
154 }
155 ],
156 "_srcBlendFactor": 770,
157 "_dstBlendFactor": 771,
158 "_spriteFrame": {
159 "__uuid__": "410fb916-8721-4663-bab8-34397391ace7"
160 },
161 "_type": 0,
162 "_sizeMode": 0,
163 "_fillType": 0,
164 "_fillCenter": {
165 "__type__": "cc.Vec2",
166 "x": 0,
167 "y": 0
168 },
169 "_fillStart": 0,
170 "_fillRange": 0,
171 "_isTrimmedMode": true,
172 "_atlas": null,
173 "_id": ""
174 },
175 {
176 "__type__": "cc.PrefabInfo",
177 "root": {
178 "__id__": 1
179 },
180 "asset": {
181 "__uuid__": "9058dd42-455f-43f3-93b4-ed587f2159bd"
182 },
183 "fileId": "cahAospA9KiZ8bJwfuwSSJ",
184 "sync": false
185 },
186 {
187 "__type__": "cc.Widget",
188 "_name": "",
189 "_objFlags": 0,
190 "node": {
191 "__id__": 1
192 },
193 "_enabled": true,
194 "alignMode": 1,
195 "_target": null,
196 "_alignFlags": 9,
197 "_left": -20,
198 "_right": 0,
199 "_top": 702,
200 "_bottom": 0,
201 "_verticalCenter": 0,
202 "_horizontalCenter": 0,
203 "_isAbsLeft": true,
204 "_isAbsRight": true,
205 "_isAbsTop": true,
206 "_isAbsBottom": true,
207 "_isAbsHorizontalCenter": true,
208 "_isAbsVerticalCenter": true,
209 "_originalWidth": 0,
210 "_originalHeight": 0,
211 "_id": ""
212 },
213 {
214 "__type__": "4e3e0tDC2RKSLb7nNPXNN5z",
215 "_name": "",
216 "_objFlags": 0,
217 "node": {
218 "__id__": 1
219 },
220 "_enabled": true,
221 "id": 0,
222 "pic": {
223 "__id__": 3
224 },
225 "activeName1": null,
226 "activeName2": null,
227 "normalName": null,
228 "_id": ""
229 },
230 {
231 "__type__": "cc.PrefabInfo",
232 "root": {
233 "__id__": 1
234 },
235 "asset": {
236 "__uuid__": "9058dd42-455f-43f3-93b4-ed587f2159bd"
237 },
238 "fileId": "f3FKYd7SJEvrs4s48MPI1G",
239 "sync": false
240 }
241 ]
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.2.0",
3 "uuid": "9058dd42-455f-43f3-93b4-ed587f2159bd",
4 "optimizationPolicy": "AUTO",
5 "asyncLoadAssets": false,
6 "readonly": false,
7 "subMetas": {}
8 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "f35038d7-351f-431f-87db-d06c657b0216",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "search": {
11 "ver": "1.0.4",
12 "uuid": "2724fd4d-8592-497d-9ab1-4e33968c0e89",
13 "rawTextureUuid": "f35038d7-351f-431f-87db-d06c657b0216",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 108,
22 "height": 48,
23 "rawWidth": 108,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "a8027877-d8d6-4645-97a0-52d4a0123dba",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "singleColor": {
11 "ver": "1.0.4",
12 "uuid": "410fb916-8721-4663-bab8-34397391ace7",
13 "rawTextureUuid": "a8027877-d8d6-4645-97a0-52d4a0123dba",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 2,
22 "height": 2,
23 "rawWidth": 2,
24 "rawHeight": 2,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "8465620c-9347-477f-be29-e246c6679147",
4 "isSubpackage": false,
5 "subpackageName": "",
6 "subMetas": {}
7 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "af74e7fc-dc2d-4e3b-9e98-c77ca9ee7ebe",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "HelloWorld": {
11 "ver": "1.0.4",
12 "uuid": "837c982b-9cd1-4e5a-a97b-7ea38b39a2ed",
13 "rawTextureUuid": "af74e7fc-dc2d-4e3b-9e98-c77ca9ee7ebe",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 195,
22 "height": 270,
23 "rawWidth": 195,
24 "rawHeight": 270,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "9ab1d077-e501-4d49-af8d-66fa45d8d195",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "history": {
11 "ver": "1.0.4",
12 "uuid": "b9b775dd-436b-455f-bf36-de112de109e8",
13 "rawTextureUuid": "9ab1d077-e501-4d49-af8d-66fa45d8d195",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 108,
22 "height": 48,
23 "rawWidth": 108,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "ed1ff055-a16b-4f2a-9caf-e715e5273b95",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "my": {
11 "ver": "1.0.4",
12 "uuid": "244ccc93-62bc-4f79-81ba-2fd341419b2e",
13 "rawTextureUuid": "ed1ff055-a16b-4f2a-9caf-e715e5273b95",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 127,
22 "height": 48,
23 "rawWidth": 127,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "64db64a5-a07f-4743-abae-863219e4ed59",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "search": {
11 "ver": "1.0.4",
12 "uuid": "622d4902-61b7-4461-a5fe-bdeaa3f44ce2",
13 "rawTextureUuid": "64db64a5-a07f-4743-abae-863219e4ed59",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 108,
22 "height": 48,
23 "rawWidth": 108,
24 "rawHeight": 48,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "8aafcb6f-79a9-4274-a8e6-11535d7db5c7",
4 "isSubpackage": false,
5 "subpackageName": "",
6 "subMetas": {}
7 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "1.0.1",
3 "uuid": "7a0fdfb4-67d2-4ce5-881f-27ba48398963",
4 "isSubpackage": false,
5 "subpackageName": "",
6 "subMetas": {}
7 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "07c42853-44f6-44fd-b4a7-96c657273d5b",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "1": {
11 "ver": "1.0.4",
12 "uuid": "2f12d7cb-336d-4d50-8523-d7336a40a1b6",
13 "rawTextureUuid": "07c42853-44f6-44fd-b4a7-96c657273d5b",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 51,
22 "height": 51,
23 "rawWidth": 51,
24 "rawHeight": 51,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "a17484ab-98b9-45a7-96c5-e2f115f20b9c",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "2": {
11 "ver": "1.0.4",
12 "uuid": "d0f889f0-abdf-4e0b-b995-80b7e4d958db",
13 "rawTextureUuid": "a17484ab-98b9-45a7-96c5-e2f115f20b9c",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 12,
19 "trimX": 0,
20 "trimY": 3,
21 "width": 1,
22 "height": 16,
23 "rawWidth": 1,
24 "rawHeight": 46,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "9009b50c-a6e9-4eea-b016-3b716af19308",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "3": {
11 "ver": "1.0.4",
12 "uuid": "57330949-d587-439b-b54a-d4a951b04b3f",
13 "rawTextureUuid": "9009b50c-a6e9-4eea-b016-3b716af19308",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 51,
22 "height": 51,
23 "rawWidth": 51,
24 "rawHeight": 51,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "56f3cca9-2ea8-4982-a749-08244c283d8e",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "4": {
11 "ver": "1.0.4",
12 "uuid": "d9cd3cd3-7f7c-4094-9580-346e8b03a3b4",
13 "rawTextureUuid": "56f3cca9-2ea8-4982-a749-08244c283d8e",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": -14,
18 "offsetY": 0,
19 "trimX": 1,
20 "trimY": 0,
21 "width": 16,
22 "height": 1,
23 "rawWidth": 46,
24 "rawHeight": 1,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "53e675f3-1400-4b57-b9fc-6a3f6a65da90",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "6": {
11 "ver": "1.0.4",
12 "uuid": "f976c075-cfeb-40be-8911-9eea7ed9b7bd",
13 "rawTextureUuid": "53e675f3-1400-4b57-b9fc-6a3f6a65da90",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 14,
18 "offsetY": 0,
19 "trimX": 29,
20 "trimY": 0,
21 "width": 16,
22 "height": 1,
23 "rawWidth": 46,
24 "rawHeight": 1,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "3c0252ba-5da0-4511-8d70-05afc35020c0",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "7": {
11 "ver": "1.0.4",
12 "uuid": "cac1da50-9322-4dd7-ad51-a4494493aceb",
13 "rawTextureUuid": "3c0252ba-5da0-4511-8d70-05afc35020c0",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 51,
22 "height": 51,
23 "rawWidth": 51,
24 "rawHeight": 51,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "8d4922f8-8db2-46a0-a7ba-3ecc252a9318",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "8": {
11 "ver": "1.0.4",
12 "uuid": "86da34f4-416e-4542-be45-cebb63e5e69a",
13 "rawTextureUuid": "8d4922f8-8db2-46a0-a7ba-3ecc252a9318",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": -16,
19 "trimX": 0,
20 "trimY": 32,
21 "width": 1,
22 "height": 14,
23 "rawWidth": 1,
24 "rawHeight": 46,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "ver": "2.3.1",
3 "uuid": "8d6083a5-99e9-475a-939a-e23506aec3bc",
4 "type": "sprite",
5 "wrapMode": "clamp",
6 "filterMode": "bilinear",
7 "premultiplyAlpha": false,
8 "platformSettings": {},
9 "subMetas": {
10 "9": {
11 "ver": "1.0.4",
12 "uuid": "9ab601dc-2f51-48d1-9764-b95f34930523",
13 "rawTextureUuid": "8d6083a5-99e9-475a-939a-e23506aec3bc",
14 "trimType": "auto",
15 "trimThreshold": 1,
16 "rotated": false,
17 "offsetX": 0,
18 "offsetY": 0,
19 "trimX": 0,
20 "trimY": 0,
21 "width": 51,
22 "height": 51,
23 "rawWidth": 51,
24 "rawHeight": 51,
25 "borderTop": 0,
26 "borderBottom": 0,
27 "borderLeft": 0,
28 "borderRight": 0,
29 "subMetas": {}
30 }
31 }
32 }
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
1 {
2 "ver": "1.0.1",
3 "uuid": "2703bb67-36aa-4868-a9f7-c59e81baa9b2",
4 "subMetas": {}
5 }
...\ No newline at end of file ...\ No newline at end of file
This diff could not be displayed because it is too large.
1 {
2 "compilerOptions": {
3 "target": "es6",
4 "module": "commonjs",
5 "experimentalDecorators": true
6 },
7 "exclude": [
8 "node_modules",
9 ".vscode",
10 "library",
11 "local",
12 "settings",
13 "temp"
14 ]
15 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "engine": "cocos2d-html5",
3 "packages": "packages",
4 "version": "2.1.2"
5 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "excludeScenes": [],
3 "orientation": {
4 "landscapeLeft": true,
5 "landscapeRight": true,
6 "portrait": false,
7 "upsideDown": false
8 },
9 "packageName": "org.cocos2d.helloworld",
10 "startScene": "2d2f792f-a40c-49bb-a189-ed176a246e49",
11 "title": "hello_world",
12 "webOrientation": "auto"
13 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "excludeScenes": [],
3 "packageName": "org.cocos2d.helloworld",
4 "platform": "web-mobile",
5 "startScene": "2d2f792f-a40c-49bb-a189-ed176a246e49",
6 "title": "HelloWorld"
7 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "collision-matrix": [
3 [
4 true
5 ]
6 ],
7 "excluded-modules": [],
8 "group-list": [
9 "default"
10 ],
11 "start-scene": "current",
12 "design-resolution-width": 960,
13 "design-resolution-height": 640,
14 "fit-width": false,
15 "fit-height": true,
16 "use-project-simulator-setting": false,
17 "simulator-orientation": false,
18 "use-customize-simulator": false,
19 "simulator-resolution": {
20 "width": 960,
21 "height": 640
22 },
23 "last-module-event-record-time": 0,
24 "assets-sort-type": "name",
25 "facebook": {
26 "enable": false,
27 "appID": "",
28 "live": {
29 "enable": false
30 },
31 "audience": {
32 "enable": false
33 }
34 }
35 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "services": [
3 {
4 "service_id": "235",
5 "service_name": "Cocos Analytics",
6 "service_icon": "https://account.cocos.com/client/3f8f31ccf66995e183044f167c092395.png",
7 "service_desc": "提供最核心最基本的数据、标准化界面功能简洁易用、数据准确性最好",
8 "service_title": "精准了解游戏的新增、活跃、留存、付费等数据",
9 "service_guide_url": "https://n-analytics.cocos.com/docs/",
10 "service_sample_url": "https://github.com/cocos-creator/tutorial-dark-slash/tree/analytics",
11 "service_dev_url": "http://analytics.cocos.com/realtime/jump_to/<app_id>",
12 "service_type": "3",
13 "service_type_zh": "公司和个人游戏",
14 "support_platform": [
15 "Android",
16 "iOS",
17 "HTML5"
18 ],
19 "package_download_url": "http://download.cocos.com/CocosServices/plugins/service-analytics/1.2.0_2.1.0.zip",
20 "package_version_desc": "1、优化SDK,修复H5-SDK 与多个小游戏平台适配问题,删除和优化init事件无用接口<br>2、 如有相关问题咨询或者需求, 可以联系我们技术支持邮箱 <a href=' '>support-cocos@cocos.com</a>",
21 "service_component_name": "service-analytics",
22 "package_versions": [
23 "1.0.0_1.0.5",
24 "1.1.2_2.0.0",
25 "1.1.3_2.0.1",
26 "1.1.4_2.0.1",
27 "1.1.5_2.0.1",
28 "1.1.6_2.0.1_2.0.2",
29 "1.1.7_2.0.3",
30 "1.1.8_2.0.4",
31 "1.1.9_2.1.0",
32 "1.2.0_2.1.0"
33 ],
34 "build_platform": [
35 "web-mobile",
36 "web-desktop",
37 "wechatgame",
38 "android",
39 "ios",
40 "fb-instant-games",
41 "android-instant",
42 "baidugame",
43 "quickgame",
44 "qgame",
45 "qqplay",
46 "huawei"
47 ],
48 "require_verify": 0,
49 "service_price": "",
50 "packpage_version_desc": "",
51 "service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
52 },
53 {
54 "service_id": "241",
55 "service_name": "Matchvs",
56 "service_icon": "https://account.cocos.com/client/14406719a07eb3d714d36e5edc6e06fa.png",
57 "service_desc": "通过SDK接入快速实现联网功能、帧同步、国内外多节点、服务器独立部署、gameServer自定义游戏服务端逻辑。\n技术支持群QQ群:822523258",
58 "service_title": "专业成熟的移动游戏联网与服务端解决方案",
59 "service_guide_url": "http://doc.matchvs.com/QuickStart/QuickStart-CocosCreator",
60 "service_sample_url": "http://www.matchvs.com/serviceCourse",
61 "service_dev_url": "http://www.matchvs.com/cocosLogin",
62 "service_type": "3",
63 "service_type_zh": "公司和个人游戏",
64 "support_platform": [
65 "Android",
66 "iOS",
67 "HTML5"
68 ],
69 "package_download_url": "http://download.cocos.com/CocosServices/plugins/service-matchvs/1.0.9_3.7.9.9.zip",
70 "package_version_desc": "更新日期:2019-07-18<br>更新内容:<br>1、修复多节点登录返回值错误<br>2、修复FaceBook平台受限安全策略的问题",
71 "service_component_name": "service-matchvs",
72 "package_versions": [
73 "1.0.3_3.7.6.4",
74 "1.0.5_3.7.7.3",
75 "1.0.6_3.7.9.2",
76 "1.0.7_3.7.9.6",
77 "1.0.9_3.7.9.9"
78 ],
79 "build_platform": [
80 "web-mobile",
81 "web-desktop",
82 "fb-instant-games",
83 "wechatgame",
84 "wechatgame-subcontext",
85 "qqplay",
86 "android",
87 "android-instant",
88 "ios",
89 "mac",
90 "quickgame",
91 "qgame",
92 "huawei"
93 ],
94 "require_verify": 0,
95 "service_price": "该服务按使用量计费,<a href='https://www.matchvs.com/price'><font color='#dddddd'>计费规则</font></a>,所产生的费用将由第三方从您的 <a href='https://account.cocos.com/#/finance/finance_list'><font color='#dddddd'>Cocos 账户余额</font></a> 中扣除。",
96 "packpage_version_desc": "",
97 "service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
98 },
99 {
100 "service_id": "242",
101 "service_name": "Agora Voice",
102 "service_icon": "https://account.cocos.com/uploads/client_icon/2019-07-16/273952d155b4cdb72d2b1bc61de91ade.png",
103 "service_desc": "稳定、低耗、76ms超低延时、全球200+数据中心覆盖;变声器、超高音质、听声辩位等丰富玩法极速接入;全平台支持:Android、iOS、Web。\n技术支持群QQ群:799099183\n",
104 "service_title": "游戏内置实时语音",
105 "service_guide_url": "https://docs.agora.io/cn/Interactive Gaming/game_c?platform=Cocos Creator",
106 "service_sample_url": "https://github.com/AgoraIO/Voice-Call-for-Mobile-Gaming/tree/master/Basic-Voice-Call-for-Gaming/Hello-CocosCreator-Voice-Agora",
107 "service_dev_url": "https://sso.agora.io/api/oauth/cocos/login",
108 "service_type": "3",
109 "service_type_zh": "公司和个人游戏",
110 "support_platform": [
111 "Android",
112 "iOS",
113 "HTML5"
114 ],
115 "package_download_url": "http://download.cocos.com/CocosServices/plugins/service-agora/1.0.2_2.2.3.20_2.5.2.zip",
116 "package_version_desc": "解决Bug:onAudioVolumeIndication 回调收不到.",
117 "service_component_name": "service-agora",
118 "package_versions": [
119 "1.0.1_2.2.3.20_2.5.2",
120 "1.0.2_2.2.3.20_2.5.2"
121 ],
122 "build_platform": [
123 "web-mobile",
124 "web-desktop",
125 "android",
126 "ios"
127 ],
128 "require_verify": 1,
129 "service_price": "该服务按使用量计费,<a href='https://docs.agora.io/cn/Agora Platform/billing_faq?platform=All Platforms'><font color='#dddddd'>计费规则</font></a>,所产生的费用将由第三方从您的 <a href='https://account.cocos.com/#/finance/finance_list'><font color='#dddddd'>Cocos 账户余额</font></a> 中扣除。",
130 "packpage_version_desc": "",
131 "service_protocol": "游戏首次开启该服务时,Cocos会后台通知服务方为游戏开通服务并初始化参数,服务方根据需要可能会获取您的Cocos账户信息,包括账户基本资料、游戏基本资料、账户余额等,点击确认开通按钮即视为您同意该服务访问您的账户信息,详见<a href='http://auth.cocos.com/CocosServiceAgreement.html'>《Cocos用户服务协议》</a>和<a href='http://auth.cocos.com/PrivacyPolicy.html'>《Cocos隐私政策》</a>"
132 }
133 ],
134 "game": {
135 "name": "未知游戏",
136 "appid": "UNKNOW"
137 }
138 }
...\ No newline at end of file ...\ No newline at end of file
1 {
2 "name": "TEMPLATES.helloworld.name",
3 "desc": "TEMPLATES.helloworld.desc",
4 "banner": "template-banner.png"
5 }
...\ No newline at end of file ...\ No newline at end of file