creator.d.ts
1.09 MB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
15889
15890
15891
15892
15893
15894
15895
15896
15897
15898
15899
15900
15901
15902
15903
15904
15905
15906
15907
15908
15909
15910
15911
15912
15913
15914
15915
15916
15917
15918
15919
15920
15921
15922
15923
15924
15925
15926
15927
15928
15929
15930
15931
15932
15933
15934
15935
15936
15937
15938
15939
15940
15941
15942
15943
15944
15945
15946
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
16144
16145
16146
16147
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043
18044
18045
18046
18047
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058
18059
18060
18061
18062
18063
18064
18065
18066
18067
18068
18069
18070
18071
18072
18073
18074
18075
18076
18077
18078
18079
18080
18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
18094
18095
18096
18097
18098
18099
18100
18101
18102
18103
18104
18105
18106
18107
18108
18109
18110
18111
18112
18113
18114
18115
18116
18117
18118
18119
18120
18121
18122
18123
18124
18125
18126
18127
18128
18129
18130
18131
18132
18133
18134
18135
18136
18137
18138
18139
18140
18141
18142
18143
18144
18145
18146
18147
18148
18149
18150
18151
18152
18153
18154
18155
18156
18157
18158
18159
18160
18161
18162
18163
18164
18165
18166
18167
18168
18169
18170
18171
18172
18173
18174
18175
18176
18177
18178
18179
18180
18181
18182
18183
18184
18185
18186
18187
18188
18189
18190
18191
18192
18193
18194
18195
18196
18197
18198
18199
18200
18201
18202
18203
18204
18205
18206
18207
18208
18209
18210
18211
18212
18213
18214
18215
18216
18217
18218
18219
18220
18221
18222
18223
18224
18225
18226
18227
18228
18229
18230
18231
18232
18233
18234
18235
18236
18237
18238
18239
18240
18241
18242
18243
18244
18245
18246
18247
18248
18249
18250
18251
18252
18253
18254
18255
18256
18257
18258
18259
18260
18261
18262
18263
18264
18265
18266
18267
18268
18269
18270
18271
18272
18273
18274
18275
18276
18277
18278
18279
18280
18281
18282
18283
18284
18285
18286
18287
18288
18289
18290
18291
18292
18293
18294
18295
18296
18297
18298
18299
18300
18301
18302
18303
18304
18305
18306
18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
18321
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367
18368
18369
18370
18371
18372
18373
18374
18375
18376
18377
18378
18379
18380
18381
18382
18383
18384
18385
18386
18387
18388
18389
18390
18391
18392
18393
18394
18395
18396
18397
18398
18399
18400
18401
18402
18403
18404
18405
18406
18407
18408
18409
18410
18411
18412
18413
18414
18415
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426
18427
18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
18465
18466
18467
18468
18469
18470
18471
18472
18473
18474
18475
18476
18477
18478
18479
18480
18481
18482
18483
18484
18485
18486
18487
18488
18489
18490
18491
18492
18493
18494
18495
18496
18497
18498
18499
18500
18501
18502
18503
18504
18505
18506
18507
18508
18509
18510
18511
18512
18513
18514
18515
18516
18517
18518
18519
18520
18521
18522
18523
18524
18525
18526
18527
18528
18529
18530
18531
18532
18533
18534
18535
18536
18537
18538
18539
18540
18541
18542
18543
18544
18545
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
18573
18574
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597
18598
18599
18600
18601
18602
18603
18604
18605
18606
18607
18608
18609
18610
18611
18612
18613
18614
18615
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673
18674
18675
18676
18677
18678
18679
18680
18681
18682
18683
18684
18685
18686
18687
18688
18689
18690
18691
18692
18693
18694
18695
18696
18697
18698
18699
18700
18701
18702
18703
18704
18705
18706
18707
18708
18709
18710
18711
18712
18713
18714
18715
18716
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726
18727
18728
18729
18730
18731
18732
18733
18734
18735
18736
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751
18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
18763
18764
18765
18766
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795
18796
18797
18798
18799
18800
18801
18802
18803
18804
18805
18806
18807
18808
18809
18810
18811
18812
18813
18814
18815
18816
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827
18828
18829
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840
18841
18842
18843
18844
18845
18846
18847
18848
18849
18850
18851
18852
18853
18854
18855
18856
18857
18858
18859
18860
18861
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884
18885
18886
18887
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898
18899
18900
18901
18902
18903
18904
18905
18906
18907
18908
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918
18919
18920
18921
18922
18923
18924
18925
18926
18927
18928
18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
19046
19047
19048
19049
19050
19051
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
19123
19124
19125
19126
19127
19128
19129
19130
19131
19132
19133
19134
19135
19136
19137
19138
19139
19140
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
19172
19173
19174
19175
19176
19177
19178
19179
19180
19181
19182
19183
19184
19185
19186
19187
19188
19189
19190
19191
19192
19193
19194
19195
19196
19197
19198
19199
19200
19201
19202
19203
19204
19205
19206
19207
19208
19209
19210
19211
19212
19213
19214
19215
19216
19217
19218
19219
19220
19221
19222
19223
19224
19225
19226
19227
19228
19229
19230
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
19295
19296
19297
19298
19299
19300
19301
19302
19303
19304
19305
19306
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
19318
19319
19320
19321
19322
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334
19335
19336
19337
19338
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
19394
19395
19396
19397
19398
19399
19400
19401
19402
19403
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
19419
19420
19421
19422
19423
19424
19425
19426
19427
19428
19429
19430
19431
19432
19433
19434
19435
19436
19437
19438
19439
19440
19441
19442
19443
19444
19445
19446
19447
19448
19449
19450
19451
19452
19453
19454
19455
19456
19457
19458
19459
19460
19461
19462
19463
19464
19465
19466
19467
19468
19469
19470
19471
19472
19473
19474
19475
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
19494
19495
19496
19497
19498
19499
19500
19501
19502
19503
19504
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521
19522
19523
19524
19525
19526
19527
19528
19529
19530
19531
19532
19533
19534
19535
19536
19537
19538
19539
19540
19541
19542
19543
19544
19545
19546
19547
19548
19549
19550
19551
19552
19553
19554
19555
19556
19557
19558
19559
19560
19561
19562
19563
19564
19565
19566
19567
19568
19569
19570
19571
19572
19573
19574
19575
19576
19577
19578
19579
19580
19581
19582
19583
19584
19585
19586
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
19646
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
19773
19774
19775
19776
19777
19778
19779
19780
19781
19782
19783
19784
19785
19786
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
19802
19803
19804
19805
19806
19807
19808
19809
19810
19811
19812
19813
19814
19815
19816
19817
19818
19819
19820
19821
19822
19823
19824
19825
19826
19827
19828
19829
19830
19831
19832
19833
19834
19835
19836
19837
19838
19839
19840
19841
19842
19843
19844
19845
19846
19847
19848
19849
19850
19851
19852
19853
19854
19855
19856
19857
19858
19859
19860
19861
19862
19863
19864
19865
19866
19867
19868
19869
19870
19871
19872
19873
19874
19875
19876
19877
19878
19879
19880
19881
19882
19883
19884
19885
19886
19887
19888
19889
19890
19891
19892
19893
19894
19895
19896
19897
19898
19899
19900
19901
19902
19903
19904
19905
19906
19907
19908
19909
19910
19911
19912
19913
19914
19915
19916
19917
19918
19919
19920
19921
19922
19923
19924
19925
19926
19927
19928
19929
19930
19931
19932
19933
19934
19935
19936
19937
19938
19939
19940
19941
19942
19943
19944
19945
19946
19947
19948
19949
19950
19951
19952
19953
19954
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
19985
19986
19987
19988
19989
19990
19991
19992
19993
19994
19995
19996
19997
19998
19999
20000
20001
20002
20003
20004
20005
20006
20007
20008
20009
20010
20011
20012
20013
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
20140
20141
20142
20143
20144
20145
20146
20147
20148
20149
20150
20151
20152
20153
20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
20186
20187
20188
20189
20190
20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
20253
20254
20255
20256
20257
20258
20259
20260
20261
20262
20263
20264
20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278
20279
20280
20281
20282
20283
20284
20285
20286
20287
20288
20289
20290
20291
20292
20293
20294
20295
20296
20297
20298
20299
20300
20301
20302
20303
20304
20305
20306
20307
20308
20309
20310
20311
20312
20313
20314
20315
20316
20317
20318
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
20361
20362
20363
20364
20365
20366
20367
20368
20369
20370
20371
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
20383
20384
20385
20386
20387
20388
20389
20390
20391
20392
20393
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
20409
20410
20411
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
20438
20439
20440
20441
20442
20443
20444
20445
20446
20447
20448
20449
20450
20451
20452
20453
20454
20455
20456
20457
20458
20459
20460
20461
20462
20463
20464
20465
20466
20467
20468
20469
20470
20471
20472
20473
20474
20475
20476
20477
20478
20479
20480
20481
20482
20483
20484
20485
20486
20487
20488
20489
20490
20491
20492
20493
20494
20495
20496
20497
20498
20499
20500
20501
20502
20503
20504
20505
20506
20507
20508
20509
20510
20511
20512
20513
20514
20515
20516
20517
20518
20519
20520
20521
20522
20523
20524
20525
20526
20527
20528
20529
20530
20531
20532
20533
20534
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
20562
20563
20564
20565
20566
20567
20568
20569
20570
20571
20572
20573
20574
20575
20576
20577
20578
20579
20580
20581
20582
20583
20584
20585
20586
20587
20588
20589
20590
20591
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
20614
20615
20616
20617
20618
20619
20620
20621
20622
20623
20624
20625
20626
20627
20628
20629
20630
20631
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
20730
20731
20732
20733
20734
20735
20736
20737
20738
20739
20740
20741
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760
20761
20762
20763
20764
20765
20766
20767
20768
20769
20770
20771
20772
20773
20774
20775
20776
20777
20778
20779
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790
20791
20792
20793
20794
20795
20796
20797
20798
20799
20800
20801
20802
20803
20804
20805
20806
20807
20808
20809
20810
20811
20812
20813
20814
20815
20816
20817
20818
20819
20820
20821
20822
20823
20824
20825
20826
20827
20828
20829
20830
20831
20832
20833
20834
20835
20836
20837
20838
20839
20840
20841
20842
20843
20844
20845
20846
20847
20848
20849
20850
20851
20852
20853
20854
20855
20856
20857
20858
20859
20860
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
20886
20887
20888
20889
20890
20891
20892
20893
20894
20895
20896
20897
20898
20899
20900
20901
20902
20903
20904
20905
20906
20907
20908
20909
20910
20911
20912
20913
20914
20915
20916
20917
20918
20919
20920
20921
20922
20923
20924
20925
20926
20927
20928
20929
20930
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
20960
20961
20962
20963
20964
20965
20966
20967
20968
20969
20970
20971
20972
20973
20974
20975
20976
20977
20978
20979
20980
20981
20982
20983
20984
20985
20986
20987
20988
20989
20990
20991
20992
20993
20994
20995
20996
20997
20998
20999
21000
21001
21002
21003
21004
21005
21006
21007
21008
21009
21010
21011
21012
21013
21014
21015
21016
21017
21018
21019
21020
21021
21022
21023
21024
21025
21026
21027
21028
21029
21030
21031
21032
21033
21034
21035
21036
21037
21038
21039
21040
21041
21042
21043
21044
21045
21046
21047
21048
21049
21050
21051
21052
21053
21054
21055
21056
21057
21058
21059
21060
21061
21062
21063
21064
21065
21066
21067
21068
21069
21070
21071
21072
21073
21074
21075
21076
21077
21078
21079
21080
21081
21082
21083
21084
21085
21086
21087
21088
21089
21090
21091
21092
21093
21094
21095
21096
21097
21098
21099
21100
21101
21102
21103
21104
21105
21106
21107
21108
21109
21110
21111
21112
21113
21114
21115
21116
21117
21118
21119
21120
21121
21122
21123
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136
21137
21138
21139
21140
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153
21154
21155
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
21191
21192
21193
21194
21195
21196
21197
21198
21199
21200
21201
21202
21203
21204
21205
21206
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345
21346
21347
21348
21349
21350
21351
21352
21353
21354
21355
21356
21357
21358
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
21404
21405
21406
21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
21443
21444
21445
21446
21447
21448
21449
21450
21451
21452
21453
21454
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490
21491
21492
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
21564
21565
21566
21567
21568
21569
21570
21571
21572
21573
21574
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
21630
21631
21632
21633
21634
21635
21636
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648
21649
21650
21651
21652
21653
21654
21655
21656
21657
21658
21659
21660
21661
21662
21663
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
21837
21838
21839
21840
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
22347
22348
22349
22350
22351
22352
22353
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
22389
22390
22391
22392
22393
22394
22395
22396
22397
22398
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
22419
22420
22421
22422
22423
22424
22425
22426
22427
22428
22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
22467
22468
22469
22470
22471
22472
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
22523
22524
22525
22526
22527
22528
22529
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
22787
22788
22789
22790
22791
22792
22793
22794
22795
22796
22797
22798
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
22834
22835
22836
22837
22838
22839
22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937
22938
22939
22940
22941
22942
22943
22944
22945
22946
22947
22948
22949
22950
22951
22952
22953
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
22981
22982
22983
22984
22985
22986
22987
22988
22989
22990
22991
22992
22993
22994
22995
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
23025
23026
23027
23028
23029
23030
23031
23032
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
23048
23049
23050
23051
23052
23053
23054
23055
23056
23057
23058
23059
23060
23061
23062
23063
23064
23065
23066
23067
23068
23069
23070
23071
23072
23073
23074
23075
23076
23077
23078
23079
23080
23081
23082
23083
23084
23085
23086
23087
23088
23089
23090
23091
23092
23093
23094
23095
23096
23097
23098
23099
23100
23101
23102
23103
23104
23105
23106
23107
23108
23109
23110
23111
23112
23113
23114
23115
23116
23117
23118
23119
23120
23121
23122
23123
23124
23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
23140
23141
23142
23143
23144
23145
23146
23147
23148
23149
23150
23151
23152
23153
23154
23155
23156
23157
23158
23159
23160
23161
23162
23163
23164
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
23199
23200
23201
23202
23203
23204
23205
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
23248
23249
23250
23251
23252
23253
23254
23255
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
23269
23270
23271
23272
23273
23274
23275
23276
23277
23278
23279
23280
23281
23282
23283
23284
23285
23286
23287
23288
23289
23290
23291
23292
23293
23294
23295
23296
23297
23298
23299
23300
23301
23302
23303
23304
23305
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
23354
23355
23356
23357
23358
23359
23360
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371
23372
23373
23374
23375
23376
23377
23378
23379
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463
23464
23465
23466
23467
23468
23469
23470
23471
23472
23473
23474
23475
23476
23477
23478
23479
23480
23481
23482
23483
23484
23485
23486
23487
23488
23489
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505
23506
23507
23508
23509
23510
23511
23512
23513
23514
23515
23516
23517
23518
23519
23520
23521
23522
23523
23524
23525
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
23583
23584
23585
23586
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
23630
23631
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
23666
23667
23668
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
23694
23695
23696
23697
23698
23699
23700
23701
23702
23703
23704
23705
23706
23707
23708
23709
23710
23711
23712
23713
23714
23715
23716
23717
23718
23719
23720
23721
23722
23723
23724
23725
23726
23727
23728
23729
23730
23731
23732
23733
23734
23735
23736
23737
23738
23739
23740
23741
23742
23743
23744
23745
23746
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792
23793
23794
23795
23796
23797
23798
23799
23800
23801
23802
23803
23804
23805
23806
23807
23808
23809
23810
23811
23812
23813
23814
23815
23816
23817
23818
23819
23820
23821
23822
23823
23824
23825
23826
23827
23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
23839
23840
23841
23842
23843
23844
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
23856
23857
23858
23859
23860
23861
23862
23863
23864
23865
23866
23867
23868
23869
23870
23871
23872
23873
23874
23875
23876
23877
23878
23879
23880
23881
23882
23883
23884
23885
23886
23887
23888
23889
23890
23891
23892
23893
23894
23895
23896
23897
23898
23899
23900
23901
23902
23903
23904
23905
23906
23907
23908
23909
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
23945
23946
23947
23948
23949
23950
23951
23952
23953
23954
23955
23956
23957
23958
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
23978
23979
23980
23981
23982
23983
23984
23985
23986
23987
23988
23989
23990
23991
23992
23993
23994
23995
23996
23997
23998
23999
24000
24001
24002
24003
24004
24005
24006
24007
24008
24009
24010
24011
24012
24013
24014
24015
24016
24017
24018
24019
24020
24021
24022
24023
24024
24025
24026
24027
24028
24029
24030
24031
24032
24033
24034
24035
24036
24037
24038
24039
24040
24041
24042
24043
24044
24045
24046
24047
24048
24049
24050
24051
24052
24053
24054
24055
24056
24057
24058
24059
24060
24061
24062
24063
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080
24081
24082
24083
24084
24085
24086
24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
24101
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116
24117
24118
24119
24120
24121
24122
24123
24124
24125
24126
24127
24128
24129
24130
24131
24132
24133
24134
24135
24136
24137
24138
24139
24140
24141
24142
24143
24144
24145
24146
24147
24148
24149
24150
24151
24152
24153
24154
24155
24156
24157
24158
24159
24160
24161
24162
24163
24164
24165
24166
24167
24168
24169
24170
24171
24172
24173
24174
24175
24176
24177
24178
24179
24180
24181
24182
24183
24184
24185
24186
24187
24188
24189
24190
24191
24192
24193
24194
24195
24196
24197
24198
24199
24200
24201
24202
24203
24204
24205
24206
24207
24208
24209
24210
24211
24212
24213
24214
24215
24216
24217
24218
24219
24220
24221
24222
24223
24224
24225
24226
24227
24228
24229
24230
24231
24232
24233
24234
24235
24236
24237
24238
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
24249
24250
24251
24252
24253
24254
24255
24256
24257
24258
24259
24260
24261
24262
24263
24264
24265
24266
24267
24268
24269
24270
24271
24272
24273
24274
24275
24276
24277
24278
24279
24280
24281
24282
24283
24284
24285
24286
24287
24288
24289
24290
24291
24292
24293
24294
24295
24296
24297
24298
24299
24300
24301
24302
24303
24304
24305
24306
24307
24308
24309
24310
24311
24312
24313
24314
24315
24316
24317
24318
24319
24320
24321
24322
24323
24324
24325
24326
24327
24328
24329
24330
24331
24332
24333
24334
24335
24336
24337
24338
24339
24340
24341
24342
24343
24344
24345
24346
24347
24348
24349
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373
24374
24375
24376
24377
24378
24379
24380
24381
24382
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401
24402
24403
24404
24405
24406
24407
24408
24409
24410
24411
24412
24413
24414
24415
24416
24417
24418
24419
24420
24421
24422
24423
24424
24425
24426
24427
24428
24429
24430
24431
24432
24433
24434
24435
24436
24437
24438
24439
24440
24441
24442
24443
24444
24445
24446
24447
24448
24449
24450
24451
24452
24453
24454
24455
24456
24457
24458
24459
24460
24461
24462
24463
24464
24465
24466
24467
24468
24469
24470
24471
24472
24473
24474
24475
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486
24487
24488
24489
24490
24491
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511
24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
24575
24576
24577
24578
24579
24580
24581
24582
24583
24584
24585
24586
24587
24588
24589
24590
24591
24592
24593
24594
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
24618
24619
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
24654
24655
24656
24657
24658
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
24680
24681
24682
24683
24684
24685
24686
24687
24688
24689
24690
24691
24692
24693
24694
24695
24696
24697
24698
24699
24700
24701
24702
24703
24704
24705
24706
24707
24708
24709
24710
24711
24712
24713
24714
24715
24716
24717
24718
24719
24720
24721
24722
24723
24724
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734
24735
24736
24737
24738
24739
24740
24741
24742
24743
24744
24745
24746
24747
24748
24749
24750
24751
24752
24753
24754
24755
24756
24757
24758
24759
24760
24761
24762
24763
24764
24765
24766
24767
24768
24769
24770
24771
24772
24773
24774
24775
24776
24777
24778
24779
24780
24781
24782
24783
24784
24785
24786
24787
24788
24789
24790
24791
24792
24793
24794
24795
24796
24797
24798
24799
24800
24801
24802
24803
24804
24805
24806
24807
24808
24809
24810
24811
24812
24813
24814
24815
24816
24817
24818
24819
24820
24821
24822
24823
24824
24825
24826
24827
24828
24829
24830
24831
24832
24833
24834
24835
24836
24837
24838
24839
24840
24841
24842
24843
24844
24845
24846
24847
24848
24849
24850
24851
24852
24853
24854
24855
24856
24857
24858
24859
24860
24861
24862
24863
24864
24865
24866
24867
24868
24869
24870
24871
24872
24873
24874
24875
24876
24877
24878
24879
24880
24881
24882
24883
24884
24885
24886
24887
24888
24889
24890
24891
24892
24893
24894
24895
24896
24897
24898
24899
24900
24901
24902
24903
24904
24905
24906
24907
24908
24909
24910
24911
24912
24913
24914
24915
24916
24917
24918
24919
24920
24921
24922
24923
24924
24925
24926
24927
24928
24929
24930
24931
24932
24933
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944
24945
24946
24947
24948
24949
24950
24951
24952
24953
24954
24955
24956
24957
24958
24959
24960
24961
24962
24963
24964
24965
24966
24967
24968
24969
24970
24971
24972
24973
24974
24975
24976
24977
24978
24979
24980
24981
24982
24983
24984
24985
24986
24987
24988
24989
24990
24991
24992
24993
24994
24995
24996
24997
24998
24999
25000
25001
25002
25003
25004
25005
25006
25007
25008
25009
25010
25011
25012
25013
25014
25015
25016
25017
25018
25019
25020
25021
25022
25023
25024
25025
25026
25027
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038
25039
25040
25041
25042
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063
25064
25065
25066
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076
25077
25078
25079
25080
25081
25082
25083
25084
25085
25086
25087
25088
25089
25090
25091
25092
25093
25094
25095
25096
25097
25098
25099
25100
25101
25102
25103
25104
25105
25106
25107
25108
25109
25110
25111
25112
25113
25114
25115
25116
25117
25118
25119
25120
25121
25122
25123
25124
25125
25126
25127
25128
25129
25130
25131
25132
25133
25134
25135
25136
25137
25138
25139
25140
25141
25142
25143
25144
25145
25146
25147
25148
25149
25150
25151
25152
25153
25154
25155
25156
25157
25158
25159
25160
25161
25162
25163
25164
25165
25166
25167
25168
25169
25170
25171
25172
25173
25174
25175
25176
25177
25178
25179
25180
25181
25182
25183
25184
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
25246
25247
25248
25249
25250
25251
25252
25253
25254
25255
25256
25257
25258
25259
25260
25261
25262
25263
25264
25265
25266
25267
25268
25269
25270
25271
25272
25273
25274
25275
25276
25277
25278
25279
25280
25281
25282
25283
25284
25285
25286
25287
25288
25289
25290
25291
25292
25293
25294
25295
25296
25297
25298
25299
25300
25301
25302
25303
25304
25305
25306
25307
25308
25309
25310
25311
25312
25313
25314
25315
25316
25317
25318
25319
25320
25321
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346
25347
25348
25349
25350
25351
25352
25353
25354
25355
25356
25357
25358
25359
25360
25361
25362
25363
25364
25365
25366
25367
25368
25369
25370
25371
25372
25373
25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
25406
25407
25408
25409
25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443
25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
25492
25493
25494
25495
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509
25510
25511
25512
25513
25514
25515
25516
25517
25518
25519
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541
25542
25543
25544
25545
25546
25547
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560
25561
25562
25563
25564
25565
25566
25567
25568
25569
25570
25571
25572
25573
25574
25575
25576
25577
25578
25579
25580
25581
25582
25583
25584
25585
25586
25587
25588
25589
25590
25591
25592
25593
25594
25595
25596
25597
25598
25599
25600
25601
25602
25603
25604
25605
25606
25607
25608
25609
25610
25611
25612
25613
25614
25615
25616
25617
25618
25619
25620
25621
25622
25623
25624
25625
25626
25627
25628
25629
25630
25631
25632
25633
25634
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654
25655
25656
25657
25658
25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692
25693
25694
25695
25696
25697
25698
25699
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711
25712
25713
25714
25715
25716
25717
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753
25754
25755
25756
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772
25773
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
25789
25790
25791
25792
25793
25794
25795
25796
25797
25798
25799
25800
25801
25802
25803
25804
25805
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
25819
25820
25821
25822
25823
25824
25825
25826
25827
25828
25829
25830
25831
25832
25833
25834
25835
25836
25837
25838
25839
25840
25841
25842
25843
25844
25845
25846
25847
25848
25849
25850
25851
25852
25853
25854
25855
25856
25857
25858
25859
25860
25861
25862
25863
25864
25865
25866
25867
25868
25869
25870
25871
25872
25873
25874
25875
25876
25877
25878
25879
25880
25881
25882
25883
25884
25885
25886
25887
25888
25889
25890
25891
25892
25893
25894
25895
25896
25897
25898
25899
25900
25901
25902
25903
25904
25905
25906
25907
25908
25909
25910
25911
25912
25913
25914
25915
25916
25917
25918
25919
25920
25921
25922
25923
25924
25925
25926
25927
25928
25929
25930
25931
25932
25933
25934
25935
25936
25937
25938
25939
25940
25941
25942
25943
25944
25945
25946
25947
25948
25949
25950
25951
25952
25953
25954
25955
25956
25957
25958
25959
25960
25961
25962
25963
25964
25965
25966
25967
25968
25969
25970
25971
25972
25973
25974
25975
25976
25977
25978
25979
25980
25981
25982
25983
25984
25985
25986
25987
25988
25989
25990
25991
25992
25993
25994
25995
25996
25997
25998
25999
26000
26001
26002
26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
26019
26020
26021
26022
26023
26024
26025
26026
26027
26028
26029
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042
26043
26044
26045
26046
26047
26048
26049
26050
26051
26052
26053
26054
26055
26056
26057
26058
26059
26060
26061
26062
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191
26192
26193
26194
26195
26196
26197
26198
26199
26200
26201
26202
26203
26204
26205
26206
26207
26208
26209
26210
26211
26212
26213
26214
26215
26216
26217
26218
26219
26220
26221
26222
26223
26224
26225
26226
26227
26228
26229
26230
26231
26232
26233
26234
26235
26236
26237
26238
26239
26240
26241
26242
26243
26244
26245
26246
26247
26248
26249
26250
26251
26252
26253
26254
26255
26256
26257
26258
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315
26316
26317
26318
26319
26320
26321
26322
26323
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
26347
26348
26349
26350
26351
26352
26353
26354
26355
26356
26357
26358
26359
26360
26361
26362
26363
26364
26365
26366
26367
26368
26369
26370
26371
26372
26373
26374
26375
26376
26377
26378
26379
26380
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395
26396
26397
26398
26399
26400
26401
26402
26403
26404
26405
26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
26508
26509
26510
26511
26512
26513
26514
26515
26516
26517
26518
26519
26520
26521
26522
26523
26524
26525
26526
26527
26528
26529
26530
26531
26532
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543
26544
26545
26546
26547
26548
26549
26550
26551
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610
26611
26612
26613
26614
26615
26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
26894
26895
26896
26897
26898
26899
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
26962
26963
26964
26965
26966
26967
26968
26969
26970
26971
26972
26973
26974
26975
26976
26977
26978
26979
26980
26981
26982
26983
26984
26985
26986
26987
26988
26989
26990
26991
26992
26993
26994
26995
26996
26997
26998
26999
27000
27001
27002
27003
27004
27005
27006
27007
27008
27009
27010
27011
27012
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
27109
27110
27111
27112
27113
27114
27115
27116
27117
27118
27119
27120
27121
27122
27123
27124
27125
27126
27127
27128
27129
27130
27131
27132
27133
27134
27135
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
27192
27193
27194
27195
27196
27197
27198
27199
27200
27201
27202
27203
27204
27205
27206
27207
27208
27209
27210
27211
27212
27213
27214
27215
27216
27217
27218
27219
27220
27221
27222
27223
27224
27225
27226
27227
27228
27229
27230
27231
27232
27233
27234
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
27284
27285
27286
27287
27288
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299
27300
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
27356
27357
27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385
27386
27387
27388
27389
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
27464
27465
27466
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477
27478
27479
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
27533
27534
27535
27536
27537
27538
27539
27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572
27573
27574
27575
27576
27577
27578
27579
27580
27581
27582
27583
27584
27585
27586
27587
27588
27589
27590
27591
27592
27593
27594
27595
27596
27597
27598
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
27609
27610
27611
27612
27613
27614
27615
27616
27617
27618
27619
27620
27621
27622
27623
27624
27625
27626
27627
27628
27629
27630
27631
27632
27633
27634
27635
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654
27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
27683
27684
27685
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
28717
28718
28719
28720
28721
28722
28723
28724
28725
28726
28727
28728
28729
28730
28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
28744
28745
28746
28747
28748
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823
28824
28825
28826
28827
28828
28829
28830
28831
28832
28833
28834
28835
28836
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854
28855
28856
28857
28858
28859
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883
28884
28885
28886
28887
28888
28889
28890
28891
28892
28893
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
28915
28916
28917
28918
28919
28920
28921
28922
28923
28924
28925
28926
28927
28928
28929
28930
28931
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957
28958
28959
28960
28961
28962
28963
28964
28965
28966
28967
28968
28969
28970
28971
28972
28973
28974
28975
28976
28977
28978
28979
28980
28981
28982
28983
28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
29001
29002
29003
29004
29005
29006
29007
29008
29009
29010
29011
29012
29013
29014
29015
29016
29017
29018
29019
29020
29021
29022
29023
29024
29025
29026
29027
29028
29029
29030
29031
29032
29033
29034
29035
29036
29037
29038
29039
29040
29041
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
29057
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
29104
29105
29106
29107
29108
29109
29110
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120
29121
29122
29123
29124
29125
29126
29127
29128
29129
29130
29131
29132
29133
29134
29135
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
29151
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179
29180
29181
29182
29183
29184
29185
29186
29187
29188
29189
29190
29191
29192
29193
29194
29195
29196
29197
29198
29199
29200
29201
29202
29203
29204
29205
29206
29207
29208
29209
29210
29211
29212
29213
29214
29215
29216
29217
29218
29219
29220
29221
29222
29223
29224
29225
29226
29227
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
29307
29308
29309
29310
29311
29312
29313
29314
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
29382
29383
29384
29385
29386
29387
29388
29389
29390
29391
29392
29393
29394
29395
29396
29397
29398
29399
29400
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429
29430
29431
29432
29433
29434
29435
29436
29437
29438
29439
29440
29441
29442
29443
29444
29445
29446
29447
29448
29449
29450
29451
29452
29453
29454
29455
29456
29457
29458
29459
29460
29461
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495
29496
29497
29498
29499
29500
29501
29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524
29525
29526
29527
29528
29529
29530
29531
29532
29533
29534
29535
29536
29537
29538
29539
29540
29541
29542
29543
29544
29545
29546
29547
29548
29549
29550
29551
29552
29553
29554
29555
29556
29557
29558
29559
29560
29561
29562
29563
29564
29565
29566
29567
29568
29569
29570
29571
29572
29573
29574
29575
29576
29577
29578
29579
29580
29581
29582
29583
29584
29585
29586
29587
29588
29589
29590
29591
29592
29593
29594
29595
29596
29597
29598
29599
29600
29601
29602
29603
29604
29605
29606
29607
29608
29609
29610
29611
29612
29613
29614
29615
29616
29617
29618
29619
29620
29621
29622
29623
29624
29625
29626
29627
29628
29629
29630
29631
29632
29633
29634
29635
29636
29637
29638
29639
29640
29641
29642
29643
29644
29645
29646
29647
29648
29649
29650
29651
29652
29653
29654
29655
29656
29657
29658
29659
29660
29661
29662
29663
29664
29665
29666
29667
29668
29669
29670
29671
29672
29673
29674
29675
29676
29677
29678
29679
29680
29681
29682
29683
29684
29685
29686
29687
29688
29689
29690
29691
29692
29693
29694
29695
29696
29697
29698
29699
29700
29701
29702
29703
29704
29705
29706
29707
29708
29709
29710
29711
29712
29713
29714
29715
29716
29717
29718
29719
29720
29721
29722
29723
29724
29725
29726
29727
29728
29729
29730
29731
29732
29733
29734
29735
29736
29737
29738
29739
29740
29741
29742
29743
29744
29745
29746
29747
29748
29749
29750
29751
29752
29753
29754
29755
29756
29757
29758
29759
29760
29761
29762
29763
29764
29765
29766
29767
29768
29769
29770
29771
29772
29773
29774
29775
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
29798
29799
29800
29801
29802
29803
29804
29805
29806
29807
29808
29809
29810
29811
29812
29813
29814
29815
29816
29817
29818
29819
29820
29821
29822
29823
29824
29825
29826
29827
29828
29829
29830
29831
29832
29833
29834
29835
29836
29837
29838
29839
29840
29841
29842
29843
29844
29845
29846
29847
29848
29849
29850
29851
29852
29853
29854
29855
29856
29857
29858
29859
29860
29861
29862
29863
29864
29865
29866
29867
29868
29869
29870
29871
29872
29873
29874
29875
29876
29877
29878
29879
29880
29881
29882
29883
29884
29885
29886
29887
29888
29889
29890
29891
29892
29893
29894
29895
29896
29897
29898
29899
29900
29901
29902
29903
29904
29905
29906
29907
29908
29909
29910
29911
29912
29913
29914
29915
29916
29917
29918
29919
29920
29921
29922
29923
29924
29925
29926
29927
29928
29929
29930
29931
29932
29933
29934
29935
29936
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
30040
30041
30042
30043
30044
30045
30046
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
30074
30075
30076
30077
30078
30079
30080
30081
30082
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
30113
30114
30115
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
30153
30154
30155
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175
30176
30177
30178
30179
30180
30181
30182
30183
30184
30185
30186
30187
30188
30189
30190
30191
30192
30193
30194
30195
30196
30197
30198
30199
30200
30201
30202
30203
30204
30205
30206
30207
30208
30209
30210
30211
30212
30213
30214
30215
30216
30217
30218
30219
30220
30221
30222
30223
30224
30225
30226
30227
30228
30229
30230
30231
30232
30233
30234
30235
30236
30237
30238
30239
30240
30241
30242
30243
30244
30245
30246
30247
30248
30249
30250
30251
30252
30253
30254
30255
30256
30257
30258
30259
30260
30261
30262
30263
30264
30265
30266
30267
30268
30269
30270
30271
30272
30273
30274
30275
30276
30277
30278
30279
30280
30281
30282
30283
30284
30285
30286
30287
30288
30289
30290
30291
30292
30293
30294
30295
30296
30297
30298
30299
30300
30301
30302
30303
30304
30305
30306
30307
30308
30309
30310
30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
30323
30324
30325
30326
30327
30328
30329
30330
30331
30332
30333
30334
30335
30336
30337
30338
30339
30340
30341
30342
30343
30344
30345
30346
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
30365
30366
30367
30368
30369
30370
30371
30372
30373
30374
30375
30376
30377
30378
30379
30380
30381
30382
30383
30384
30385
30386
30387
30388
30389
30390
30391
30392
30393
30394
30395
30396
30397
30398
30399
30400
30401
30402
30403
30404
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
30420
30421
30422
30423
30424
30425
30426
30427
30428
30429
30430
30431
30432
30433
30434
30435
30436
30437
30438
30439
30440
30441
30442
30443
30444
30445
30446
30447
30448
30449
30450
30451
30452
30453
30454
30455
30456
30457
30458
30459
30460
30461
30462
30463
30464
30465
30466
30467
30468
30469
30470
30471
30472
30473
30474
30475
30476
30477
30478
30479
30480
30481
30482
30483
30484
30485
30486
30487
30488
30489
30490
30491
30492
30493
30494
30495
30496
30497
30498
30499
30500
30501
30502
30503
30504
30505
30506
30507
30508
30509
30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
30522
30523
30524
30525
30526
30527
30528
30529
30530
30531
30532
30533
30534
30535
30536
30537
30538
30539
30540
30541
30542
30543
30544
30545
30546
30547
30548
30549
30550
30551
30552
30553
30554
30555
30556
30557
30558
30559
30560
30561
30562
30563
30564
30565
30566
30567
30568
30569
30570
30571
30572
30573
30574
30575
30576
30577
30578
30579
30580
30581
30582
30583
30584
30585
30586
30587
30588
30589
30590
30591
30592
30593
30594
30595
30596
30597
30598
30599
30600
30601
30602
30603
30604
30605
30606
30607
30608
30609
30610
30611
30612
30613
30614
30615
30616
30617
30618
30619
30620
30621
30622
30623
30624
30625
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669
30670
30671
30672
30673
30674
30675
30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
30709
30710
30711
30712
30713
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732
30733
30734
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
30762
30763
30764
30765
30766
30767
30768
30769
30770
30771
30772
30773
30774
30775
30776
30777
30778
30779
30780
30781
30782
30783
30784
30785
30786
30787
30788
30789
30790
30791
30792
30793
30794
30795
30796
30797
30798
30799
30800
30801
30802
30803
30804
30805
30806
30807
30808
30809
30810
30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
30823
30824
30825
30826
30827
30828
30829
30830
30831
30832
30833
30834
30835
30836
30837
30838
30839
30840
30841
30842
30843
30844
30845
30846
30847
30848
30849
30850
30851
30852
30853
30854
30855
30856
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
30868
30869
30870
30871
30872
30873
30874
30875
30876
30877
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905
30906
30907
30908
30909
30910
30911
30912
30913
30914
30915
30916
30917
30918
30919
30920
30921
30922
30923
30924
30925
30926
30927
30928
30929
30930
30931
30932
30933
30934
30935
30936
30937
30938
30939
30940
30941
30942
30943
30944
30945
30946
30947
30948
30949
30950
30951
30952
30953
30954
30955
30956
30957
30958
30959
30960
30961
30962
30963
30964
30965
30966
30967
30968
30969
30970
30971
30972
30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
30990
30991
30992
30993
30994
30995
30996
30997
30998
30999
31000
31001
31002
31003
31004
31005
31006
31007
31008
31009
31010
31011
31012
31013
31014
31015
31016
31017
31018
31019
31020
31021
31022
31023
31024
31025
31026
31027
31028
31029
31030
31031
31032
31033
31034
31035
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060
31061
31062
31063
31064
31065
31066
31067
31068
31069
31070
31071
31072
31073
31074
31075
31076
31077
31078
31079
31080
31081
31082
31083
31084
31085
31086
31087
31088
31089
31090
31091
31092
31093
31094
31095
31096
31097
31098
31099
31100
31101
31102
31103
31104
31105
31106
31107
31108
31109
31110
31111
31112
31113
31114
31115
31116
31117
31118
31119
31120
31121
31122
31123
31124
31125
31126
31127
31128
31129
31130
31131
31132
31133
31134
31135
31136
31137
31138
31139
31140
31141
31142
31143
31144
31145
31146
31147
31148
31149
31150
31151
31152
31153
31154
31155
31156
31157
31158
31159
31160
31161
31162
31163
31164
31165
31166
31167
31168
31169
31170
31171
31172
31173
31174
31175
31176
31177
31178
31179
31180
31181
31182
31183
31184
31185
31186
31187
31188
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
31207
31208
31209
31210
31211
31212
31213
31214
31215
31216
31217
31218
31219
31220
31221
31222
31223
31224
31225
31226
31227
31228
31229
31230
31231
31232
31233
31234
31235
31236
31237
31238
31239
31240
31241
31242
31243
31244
31245
31246
31247
31248
31249
31250
31251
31252
31253
31254
31255
31256
31257
31258
31259
31260
31261
31262
31263
31264
31265
31266
31267
31268
31269
31270
31271
31272
31273
31274
31275
31276
31277
31278
31279
31280
31281
31282
31283
31284
31285
31286
31287
31288
31289
31290
31291
31292
31293
31294
31295
31296
31297
31298
31299
31300
31301
31302
31303
31304
31305
31306
31307
31308
31309
31310
31311
31312
31313
31314
31315
31316
31317
31318
31319
31320
31321
31322
31323
31324
31325
31326
31327
31328
31329
31330
31331
31332
31333
31334
31335
31336
31337
31338
31339
31340
31341
31342
31343
31344
31345
31346
31347
31348
31349
31350
31351
31352
31353
31354
31355
31356
31357
31358
31359
31360
31361
31362
31363
31364
31365
31366
31367
31368
31369
31370
31371
31372
31373
31374
31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
31390
31391
31392
31393
31394
31395
31396
31397
31398
31399
31400
31401
31402
31403
31404
31405
31406
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
31419
31420
31421
31422
31423
31424
31425
31426
31427
31428
31429
31430
31431
31432
31433
31434
31435
31436
31437
31438
31439
31440
31441
31442
31443
31444
31445
31446
31447
31448
31449
31450
31451
31452
31453
31454
31455
31456
31457
31458
31459
31460
31461
31462
31463
31464
31465
31466
31467
31468
31469
31470
31471
31472
31473
31474
31475
31476
31477
31478
31479
31480
31481
31482
31483
31484
31485
31486
31487
31488
31489
31490
31491
31492
31493
31494
31495
31496
31497
31498
31499
31500
31501
31502
31503
31504
31505
31506
31507
31508
31509
31510
31511
31512
31513
31514
31515
31516
31517
31518
31519
31520
31521
31522
31523
31524
31525
31526
31527
31528
31529
31530
31531
31532
31533
31534
31535
31536
31537
31538
31539
31540
31541
31542
31543
31544
31545
31546
31547
31548
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
31564
31565
31566
31567
31568
31569
31570
31571
31572
31573
31574
31575
31576
31577
31578
31579
31580
31581
31582
31583
31584
31585
31586
31587
31588
31589
31590
31591
31592
31593
31594
31595
31596
31597
31598
31599
31600
31601
31602
31603
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617
31618
31619
31620
31621
31622
31623
31624
31625
31626
31627
31628
31629
31630
31631
31632
31633
31634
31635
31636
31637
31638
31639
31640
31641
31642
31643
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
31659
31660
31661
31662
31663
31664
31665
31666
31667
31668
31669
31670
31671
31672
31673
31674
31675
31676
31677
31678
31679
31680
31681
31682
31683
31684
31685
31686
31687
31688
31689
31690
31691
31692
31693
31694
31695
31696
31697
31698
31699
31700
31701
31702
31703
31704
31705
31706
31707
31708
31709
31710
31711
31712
31713
31714
31715
31716
31717
31718
31719
31720
31721
31722
31723
31724
31725
31726
31727
31728
31729
31730
31731
31732
31733
31734
31735
31736
31737
31738
31739
31740
31741
31742
31743
31744
31745
31746
31747
31748
31749
31750
31751
31752
31753
31754
31755
31756
31757
31758
31759
31760
31761
31762
31763
31764
31765
31766
31767
31768
31769
31770
31771
31772
31773
31774
31775
31776
31777
31778
31779
31780
31781
31782
31783
31784
31785
31786
31787
31788
31789
31790
31791
31792
31793
31794
31795
31796
31797
31798
31799
31800
31801
31802
31803
31804
31805
31806
31807
31808
31809
31810
31811
31812
31813
31814
31815
31816
31817
31818
31819
31820
31821
31822
31823
31824
31825
31826
31827
31828
31829
31830
31831
31832
31833
31834
31835
31836
31837
31838
31839
31840
31841
31842
31843
31844
31845
31846
31847
31848
31849
31850
31851
31852
31853
31854
31855
31856
31857
31858
31859
31860
31861
31862
31863
31864
31865
31866
31867
31868
31869
31870
31871
31872
31873
31874
31875
31876
31877
31878
31879
31880
31881
31882
31883
31884
31885
31886
31887
31888
31889
31890
31891
31892
31893
31894
31895
31896
31897
31898
31899
31900
31901
31902
31903
31904
31905
31906
31907
31908
31909
31910
31911
31912
31913
31914
31915
31916
31917
31918
31919
31920
31921
31922
31923
31924
31925
31926
31927
31928
31929
31930
31931
31932
31933
31934
31935
31936
31937
31938
31939
31940
31941
31942
31943
31944
31945
31946
31947
31948
31949
31950
31951
31952
31953
31954
31955
31956
31957
31958
31959
31960
31961
31962
31963
31964
31965
31966
31967
31968
31969
31970
31971
31972
31973
31974
31975
31976
31977
31978
31979
31980
31981
31982
31983
31984
31985
31986
31987
31988
31989
31990
31991
31992
31993
31994
31995
31996
31997
31998
31999
32000
32001
32002
32003
32004
32005
32006
32007
32008
32009
32010
32011
32012
32013
32014
32015
32016
32017
32018
32019
32020
32021
32022
32023
32024
32025
32026
32027
32028
32029
32030
32031
32032
32033
32034
32035
32036
32037
32038
32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
32051
32052
32053
32054
32055
32056
32057
32058
32059
32060
32061
32062
32063
32064
32065
32066
32067
32068
32069
32070
32071
32072
32073
32074
32075
32076
32077
32078
32079
32080
32081
32082
32083
32084
32085
32086
32087
32088
32089
32090
32091
32092
32093
32094
32095
32096
32097
32098
32099
32100
32101
32102
32103
32104
32105
32106
32107
32108
32109
32110
32111
32112
32113
32114
32115
32116
32117
32118
32119
32120
32121
32122
32123
32124
32125
32126
32127
32128
32129
32130
32131
32132
32133
32134
32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
32147
32148
32149
32150
32151
32152
32153
32154
32155
32156
32157
32158
32159
32160
32161
32162
32163
32164
32165
32166
32167
32168
32169
32170
32171
32172
32173
32174
32175
32176
32177
32178
32179
32180
32181
32182
32183
32184
32185
32186
32187
32188
32189
32190
32191
32192
32193
32194
32195
32196
32197
32198
32199
32200
32201
32202
32203
32204
32205
32206
32207
32208
32209
32210
32211
32212
/** !#en
The main namespace of Cocos2d-JS, all engine core classes, functions, properties and constants are defined in this namespace.
!#zh
Cocos 引擎的主要命名空间,引擎代码中所有的类,函数,属性和常量都在这个命名空间中定义。 */
declare namespace cc {
/** The current version of Cocos2d being used.<br/>
Please DO NOT remove this String, it is an important flag for bug tracking.<br/>
If you post a bug to forum, please attach this flag. */
export var ENGINE_VERSION: string;
/**
!#en
Creates the speed action which changes the speed of an action, making it take longer (speed > 1)
or less (speed < 1) time. <br/>
Useful to simulate 'slow motion' or 'fast forward' effect.
!#zh 修改目标动作的速率。
@param action action
@param speed speed
@example
```js
// change the target action speed;
var action = cc.scaleTo(0.2, 1, 0.6);
var newAction = cc.speed(action, 0.5);
```
*/
export function speed(action: ActionInterval, speed: number): Action;
/**
!#en Create a follow action which makes its target follows another node.
!#zh 追踪目标节点的位置。
@param followedNode followedNode
@param rect rect
@example
```js
// example
// creates the action with a set boundary
var followAction = cc.follow(targetNode, cc.rect(0, 0, screenWidth * 2 - 100, screenHeight));
node.runAction(followAction);
// creates the action with no boundary set
var followAction = cc.follow(targetNode);
node.runAction(followAction);
```
*/
export function follow(followedNode: Node, rect: Rect): Action;
/**
Points setter
@param points points
*/
export function setPoints(points: any[]): void;
/**
!#en Creates an action with a Cardinal Spline array of points and tension.
!#zh 按基数样条曲线轨迹移动到目标位置。
@param duration duration
@param points array of control points
@param tension tension
@example
```js
//create a cc.CardinalSplineTo
var action1 = cc.cardinalSplineTo(3, array, 0);
```
*/
export function cardinalSplineTo(duration: number, points: any[], tension: number): ActionInterval;
/**
update position of target
@param newPos newPos
*/
export function updatePosition(newPos: Vec2): void;
/**
!#en Creates an action with a Cardinal Spline array of points and tension.
!#zh 按基数样条曲线轨迹移动指定的距离。
@param duration duration
@param points points
@param tension tension
*/
export function cardinalSplineBy(duration: number, points: any[], tension: number): ActionInterval;
/**
!#en Creates an action with a Cardinal Spline array of points and tension.
!#zh 按 Catmull Rom 样条曲线轨迹移动到目标位置。
@param dt dt
@param points points
@example
```js
var action1 = cc.catmullRomTo(3, array);
```
*/
export function catmullRomTo(dt: number, points: any[]): ActionInterval;
/**
!#en Creates an action with a Cardinal Spline array of points and tension.
!#zh 按 Catmull Rom 样条曲线轨迹移动指定的距离。
@param dt dt
@param points points
@example
```js
var action1 = cc.catmullRomBy(3, array);
```
*/
export function catmullRomBy(dt: number, points: any[]): ActionInterval;
/**
!#en
Creates the action easing object with the rate parameter. <br />
From slow to fast.
!#zh 创建 easeIn 缓动对象,由慢到快。
@param rate rate
@example
```js
action.easing(cc.easeIn(3.0));
```
*/
export function easeIn(rate: number): any;
/**
!#en
Creates the action easing object with the rate parameter. <br />
From fast to slow.
!#zh 创建 easeOut 缓动对象,由快到慢。
@param rate rate
@example
```js
action.easing(cc.easeOut(3.0));
```
*/
export function easeOut(rate: number): any;
/**
!#en
Creates the action easing object with the rate parameter. <br />
Slow to fast then to slow.
!#zh 创建 easeInOut 缓动对象,慢到快,然后慢。
@param rate rate
@example
```js
action.easing(cc.easeInOut(3.0));
```
*/
export function easeInOut(rate: number): any;
/**
!#en
Creates the action easing object with the rate parameter. <br />
Reference easeInExpo: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeExponentialIn 缓动对象。<br />
EaseExponentialIn 是按指数函数缓动进入的动作。<br />
参考 easeInExpo:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeExponentialIn());
```
*/
export function easeExponentialIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutExpo: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeExponentialOut 缓动对象。<br />
EaseExponentialOut 是按指数函数缓动退出的动作。<br />
参考 easeOutExpo:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeExponentialOut());
```
*/
export function easeExponentialOut(): any;
/**
!#en
Creates an EaseExponentialInOut action easing object. <br />
Reference easeInOutExpo: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeExponentialInOut 缓动对象。<br />
EaseExponentialInOut 是按指数函数缓动进入并退出的动作。<br />
参考 easeInOutExpo:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeExponentialInOut());
```
*/
export function easeExponentialInOut(): any;
/**
!#en
Creates an EaseSineIn action. <br />
Reference easeInSine: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 EaseSineIn 缓动对象。<br />
EaseSineIn 是按正弦函数缓动进入的动作。<br />
参考 easeInSine:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeSineIn());
```
*/
export function easeSineIn(): any;
/**
!#en
Creates an EaseSineOut action easing object. <br />
Reference easeOutSine: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 EaseSineOut 缓动对象。<br />
EaseSineIn 是按正弦函数缓动退出的动作。<br />
参考 easeOutSine:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeSineOut());
```
*/
export function easeSineOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutSine: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeSineInOut 缓动对象。<br />
EaseSineIn 是按正弦函数缓动进入并退出的动作。<br />
参考 easeInOutSine:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
action.easing(cc.easeSineInOut());
```
*/
export function easeSineInOut(): any;
/**
!#en
Creates the action easing object with the period in radians (default is 0.3). <br />
Reference easeInElastic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeElasticIn 缓动对象。<br />
EaseElasticIn 是按弹性曲线缓动进入的动作。<br />
参数 easeInElastic:http://www.zhihu.com/question/21981571/answer/19925418
@param period period
@example
```js
// example
action.easing(cc.easeElasticIn(3.0));
```
*/
export function easeElasticIn(period: number): any;
/**
!#en
Creates the action easing object with the period in radians (default is 0.3). <br />
Reference easeOutElastic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeElasticOut 缓动对象。<br />
EaseElasticOut 是按弹性曲线缓动退出的动作。<br />
参考 easeOutElastic:http://www.zhihu.com/question/21981571/answer/19925418
@param period period
@example
```js
// example
action.easing(cc.easeElasticOut(3.0));
```
*/
export function easeElasticOut(period: number): any;
/**
!#en
Creates the action easing object with the period in radians (default is 0.3). <br />
Reference easeInOutElastic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeElasticInOut 缓动对象。<br />
EaseElasticInOut 是按弹性曲线缓动进入并退出的动作。<br />
参考 easeInOutElastic:http://www.zhihu.com/question/21981571/answer/19925418
@param period period
@example
```js
// example
action.easing(cc.easeElasticInOut(3.0));
```
*/
export function easeElasticInOut(period: number): any;
/**
!#en
Creates the action easing object. <br />
Eased bounce effect at the beginning.
!#zh
创建 easeBounceIn 缓动对象。<br />
EaseBounceIn 是按弹跳动作缓动进入的动作。
@example
```js
// example
action.easing(cc.easeBounceIn());
```
*/
export function easeBounceIn(): any;
/**
!#en
Creates the action easing object. <br />
Eased bounce effect at the ending.
!#zh
创建 easeBounceOut 缓动对象。<br />
EaseBounceOut 是按弹跳动作缓动退出的动作。
@example
```js
// example
action.easing(cc.easeBounceOut());
```
*/
export function easeBounceOut(): any;
/**
!#en
Creates the action easing object. <br />
Eased bounce effect at the begining and ending.
!#zh
创建 easeBounceInOut 缓动对象。<br />
EaseBounceInOut 是按弹跳动作缓动进入并退出的动作。
@example
```js
// example
action.easing(cc.easeBounceInOut());
```
*/
export function easeBounceInOut(): any;
/**
!#en
Creates the action easing object. <br />
In the opposite direction to move slowly, and then accelerated to the right direction.
!#zh
创建 easeBackIn 缓动对象。<br />
easeBackIn 是在相反的方向缓慢移动,然后加速到正确的方向。<br />
@example
```js
// example
action.easing(cc.easeBackIn());
```
*/
export function easeBackIn(): any;
/**
!#en
Creates the action easing object. <br />
Fast moving more than the finish, and then slowly back to the finish.
!#zh
创建 easeBackOut 缓动对象。<br />
easeBackOut 快速移动超出目标,然后慢慢回到目标点。
@example
```js
// example
action.easing(cc.easeBackOut());
```
*/
export function easeBackOut(): any;
/**
!#en
Creates the action easing object. <br />
Begining of cc.EaseBackIn. Ending of cc.EaseBackOut.
!#zh
创建 easeBackInOut 缓动对象。<br />
@example
```js
// example
action.easing(cc.easeBackInOut());
```
*/
export function easeBackInOut(): any;
/**
!#en
Creates the action easing object. <br />
Into the 4 reference point. <br />
To calculate the motion curve.
!#zh
创建 easeBezierAction 缓动对象。<br />
EaseBezierAction 是按贝塞尔曲线缓动的动作。
@param p0 The first bezier parameter
@param p1 The second bezier parameter
@param p2 The third bezier parameter
@param p3 The fourth bezier parameter
@example
```js
// example
action.easing(cc.easeBezierAction(0.5, 0.5, 1.0, 1.0));
```
*/
export function easeBezierAction(p0: number, p1: number, p2: number, p3: number): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInQuad: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuadraticActionIn 缓动对象。<br />
EaseQuadraticIn是按二次函数缓动进入的动作。<br />
参考 easeInQuad:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuadraticActionIn());
```
*/
export function easeQuadraticActionIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutQuad: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuadraticActionOut 缓动对象。<br />
EaseQuadraticOut 是按二次函数缓动退出的动作。<br />
参考 easeOutQuad:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuadraticActionOut());
```
*/
export function easeQuadraticActionOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutQuad: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuadraticActionInOut 缓动对象。<br />
EaseQuadraticInOut 是按二次函数缓动进入并退出的动作。<br />
参考 easeInOutQuad:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuadraticActionInOut());
```
*/
export function easeQuadraticActionInOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeIntQuart: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuarticActionIn 缓动对象。<br />
EaseQuarticIn 是按四次函数缓动进入的动作。<br />
参考 easeIntQuart:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuarticActionIn());
```
*/
export function easeQuarticActionIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutQuart: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuarticActionOut 缓动对象。<br />
EaseQuarticOut 是按四次函数缓动退出的动作。<br />
参考 easeOutQuart:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.QuarticActionOut());
```
*/
export function easeQuarticActionOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutQuart: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuarticActionInOut 缓动对象。<br />
EaseQuarticInOut 是按四次函数缓动进入并退出的动作。<br />
参考 easeInOutQuart:http://www.zhihu.com/question/21981571/answer/19925418
*/
export function easeQuarticActionInOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInQuint: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuinticActionIn 缓动对象。<br />
EaseQuinticIn 是按五次函数缓动进的动作。<br />
参考 easeInQuint:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuinticActionIn());
```
*/
export function easeQuinticActionIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutQuint: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuinticActionOut 缓动对象。<br />
EaseQuinticOut 是按五次函数缓动退出的动作
参考 easeOutQuint:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuadraticActionOut());
```
*/
export function easeQuinticActionOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutQuint: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeQuinticActionInOut 缓动对象。<br />
EaseQuinticInOut是按五次函数缓动进入并退出的动作。<br />
参考 easeInOutQuint:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeQuinticActionInOut());
```
*/
export function easeQuinticActionInOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInCirc: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCircleActionIn 缓动对象。<br />
EaseCircleIn是按圆形曲线缓动进入的动作。<br />
参考 easeInCirc:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeCircleActionIn());
```
*/
export function easeCircleActionIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutCirc: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCircleActionOut 缓动对象。<br />
EaseCircleOut是按圆形曲线缓动退出的动作。<br />
参考 easeOutCirc:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
actioneasing(cc.easeCircleActionOut());
```
*/
export function easeCircleActionOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutCirc: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCircleActionInOut 缓动对象。<br />
EaseCircleInOut 是按圆形曲线缓动进入并退出的动作。<br />
参考 easeInOutCirc:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeCircleActionInOut());
```
*/
export function easeCircleActionInOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInCubic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCubicActionIn 缓动对象。<br />
EaseCubicIn 是按三次函数缓动进入的动作。<br />
参考 easeInCubic:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeCubicActionIn());
```
*/
export function easeCubicActionIn(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeOutCubic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCubicActionOut 缓动对象。<br />
EaseCubicOut 是按三次函数缓动退出的动作。<br />
参考 easeOutCubic:http://www.zhihu.com/question/21981571/answer/19925418
@example
```js
//example
action.easing(cc.easeCubicActionOut());
```
*/
export function easeCubicActionOut(): any;
/**
!#en
Creates the action easing object. <br />
Reference easeInOutCubic: <br />
http://www.zhihu.com/question/21981571/answer/19925418
!#zh
创建 easeCubicActionInOut 缓动对象。<br />
EaseCubicInOut是按三次函数缓动进入并退出的动作。<br />
参考 easeInOutCubic:http://www.zhihu.com/question/21981571/answer/19925418
*/
export function easeCubicActionInOut(): any;
/**
!#en Show the Node.
!#zh 立即显示。
@example
```js
// example
var showAction = cc.show();
```
*/
export function show(): ActionInstant;
/**
!#en Hide the node.
!#zh 立即隐藏。
@example
```js
// example
var hideAction = cc.hide();
```
*/
export function hide(): ActionInstant;
/**
!#en Toggles the visibility of a node.
!#zh 显隐状态切换。
@example
```js
// example
var toggleVisibilityAction = cc.toggleVisibility();
```
*/
export function toggleVisibility(): ActionInstant;
/**
!#en Create a RemoveSelf object with a flag indicate whether the target should be cleaned up while removing.
!#zh 从父节点移除自身。
@param isNeedCleanUp isNeedCleanUp
@example
```js
// example
var removeSelfAction = cc.removeSelf();
```
*/
export function removeSelf(isNeedCleanUp ?: boolean): ActionInstant;
/**
!#en Destroy self
!#zh 创建一个销毁自身的动作。
@example
```js
var destroySelfAction = cc.destroySelf();
```
*/
export function destroySelf(): ActionInstant;
/**
!#en Create a FlipX action to flip or unflip the target.
!#zh X轴翻转。
@param flip Indicate whether the target should be flipped or not
@example
```js
var flipXAction = cc.flipX(true);
```
*/
export function flipX(flip: boolean): ActionInstant;
/**
!#en Create a FlipY action to flip or unflip the target.
!#zh Y轴翻转。
@param flip flip
@example
```js
var flipYAction = cc.flipY(true);
```
*/
export function flipY(flip: boolean): ActionInstant;
/**
!#en Creates a Place action with a position.
!#zh 放置在目标位置。
@param pos pos
@param y y
@example
```js
// example
var placeAction = cc.place(cc.v2(200, 200));
var placeAction = cc.place(200, 200);
```
*/
export function place(pos: Vec2|number, y?: number): ActionInstant;
/**
!#en Creates the action with the callback.
!#zh 执行回调函数。
@param selector selector
@param selectorTarget selectorTarget
@param data data for function, it accepts all data types.
@example
```js
// example
// CallFunc without data
var finish = cc.callFunc(this.removeSprite, this);
// CallFunc with data
var finish = cc.callFunc(this.removeFromParentAndCleanup, this._grossini, true);
```
*/
export function callFunc(selector: Function, selectorTarget?: any, data?: any): ActionInstant;
/**
!#en
Helper constructor to create an array of sequenceable actions
The created action will run actions sequentially, one after another.
!#zh 顺序执行动作,创建的动作将按顺序依次运行。
@param actionOrActionArray actionOrActionArray
@param tempArray tempArray
@example
```js
// example
// create sequence with actions
var seq = cc.sequence(act1, act2);
// create sequence with array
var seq = cc.sequence(actArray);
```
*/
export function sequence(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): ActionInterval;
/**
!#en Creates a Repeat action. Times is an unsigned integer between 1 and pow(2,30)
!#zh 重复动作,可以按一定次数重复一个动,如果想永远重复一个动作请使用 repeatForever 动作来完成。
@param action action
@param times times
@example
```js
// example
var rep = cc.repeat(cc.sequence(jump2, jump1), 5);
```
*/
export function repeat(action: FiniteTimeAction, times: number): ActionInterval;
/**
!#en Create a acton which repeat forever, as it runs forever, it can't be added into cc.sequence and cc.spawn.
!#zh 永远地重复一个动作,有限次数内重复一个动作请使用 repeat 动作,由于这个动作不会停止,所以不能被添加到 cc.sequence 或 cc.spawn 中。
@param action action
@example
```js
// example
var repeat = cc.repeatForever(cc.rotateBy(1.0, 360));
```
*/
export function repeatForever(action: FiniteTimeAction): ActionInterval;
/**
!#en Create a spawn action which runs several actions in parallel.
!#zh 同步执行动作,同步执行一组动作。
@param actionOrActionArray actionOrActionArray
@param tempArray tempArray
@example
```js
// example
var action = cc.spawn(cc.jumpBy(2, cc.v2(300, 0), 50, 4), cc.rotateBy(2, 720));
todo:It should be the direct use new
```
*/
export function spawn(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): FiniteTimeAction;
/**
!#en
Rotates a Node object to a certain angle by modifying its angle property. <br/>
The direction will be decided by the shortest angle.
!#zh 旋转到目标角度,通过逐帧修改它的 angle 属性,旋转方向将由最短的角度决定。
@param duration duration in seconds
@param dstAngle dstAngle in degrees.
@example
```js
// example
var rotateTo = cc.rotateTo(2, 61.0);
```
*/
export function rotateTo(duration: number, dstAngle: number): ActionInterval;
/**
!#en
Rotates a Node object clockwise a number of degrees by modifying its angle property.
Relative to its properties to modify.
!#zh 旋转指定的角度。
@param duration duration in seconds
@param deltaAngle deltaAngle in degrees
@example
```js
// example
var actionBy = cc.rotateBy(2, 360);
```
*/
export function rotateBy(duration: number, deltaAngle: number): ActionInterval;
/**
!#en
Moves a Node object x,y pixels by modifying its position property. <br/>
x and y are relative to the position of the object. <br/>
Several MoveBy actions can be concurrently called, and the resulting <br/>
movement will be the sum of individual movements.
!#zh 移动指定的距离。
@param duration duration in seconds
@param deltaPos deltaPos
@param deltaY deltaY
@example
```js
// example
var actionTo = cc.moveBy(2, cc.v2(windowSize.width - 40, windowSize.height - 40));
```
*/
export function moveBy(duration: number, deltaPos: Vec2|number, deltaY?: number): ActionInterval;
/**
!#en
Moves a Node object to the position x,y. x and y are absolute coordinates by modifying its position property. <br/>
Several MoveTo actions can be concurrently called, and the resulting <br/>
movement will be the sum of individual movements.
!#zh 移动到目标位置。
@param duration duration in seconds
@param position position
@param y y
@example
```js
// example
var actionBy = cc.moveTo(2, cc.v2(80, 80));
```
*/
export function moveTo(duration: number, position: Vec2|number, y?: number): ActionInterval;
/**
!#en
Create a action which skews a Node object to given angles by modifying its skewX and skewY properties.
Changes to the specified value.
!#zh 偏斜到目标角度。
@param t time in seconds
@param sx sx
@param sy sy
@example
```js
// example
var actionTo = cc.skewTo(2, 37.2, -37.2);
```
*/
export function skewTo(t: number, sx: number, sy: number): ActionInterval;
/**
!#en
Skews a Node object by skewX and skewY degrees. <br />
Relative to its property modification.
!#zh 偏斜指定的角度。
@param t time in seconds
@param sx sx skew in degrees for X axis
@param sy sy skew in degrees for Y axis
@example
```js
// example
var actionBy = cc.skewBy(2, 0, -90);
```
*/
export function skewBy(t: number, sx: number, sy: number): ActionInterval;
/**
!#en
Moves a Node object simulating a parabolic jump movement by modifying it's position property.
Relative to its movement.
!#zh 用跳跃的方式移动指定的距离。
@param duration duration
@param position position
@param y y
@param height height
@param jumps jumps
@example
```js
// example
var actionBy = cc.jumpBy(2, cc.v2(300, 0), 50, 4);
var actionBy = cc.jumpBy(2, 300, 0, 50, 4);
```
*/
export function jumpBy(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval;
/**
!#en
Moves a Node object to a parabolic position simulating a jump movement by modifying its position property. <br />
Jump to the specified location.
!#zh 用跳跃的方式移动到目标位置。
@param duration duration
@param position position
@param y y
@param height height
@param jumps jumps
@example
```js
// example
var actionTo = cc.jumpTo(2, cc.v2(300, 300), 50, 4);
var actionTo = cc.jumpTo(2, 300, 300, 50, 4);
```
*/
export function jumpTo(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval;
/**
!#en
An action that moves the target with a cubic Bezier curve by a certain distance.
Relative to its movement.
!#zh 按贝赛尔曲线轨迹移动指定的距离。
@param t time in seconds
@param c Array of points
@example
```js
// example
var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];
var bezierForward = cc.bezierBy(3, bezier);
```
*/
export function bezierBy(t: number, c: Vec2[]): ActionInterval;
/**
!#en An action that moves the target with a cubic Bezier curve to a destination point.
!#zh 按贝赛尔曲线轨迹移动到目标位置。
@param t t
@param c Array of points
@example
```js
// example
var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];
var bezierTo = cc.bezierTo(2, bezier);
```
*/
export function bezierTo(t: number, c: Vec2[]): ActionInterval;
/**
!#en Scales a Node object to a zoom factor by modifying it's scale property.
!#zh 将节点大小缩放到指定的倍数。
@param duration duration
@param sx scale parameter in X
@param sy scale parameter in Y, if Null equal to sx
@example
```js
// example
// It scales to 0.5 in both X and Y.
var actionTo = cc.scaleTo(2, 0.5);
// It scales to 0.5 in x and 2 in Y
var actionTo = cc.scaleTo(2, 0.5, 2);
```
*/
export function scaleTo(duration: number, sx: number, sy?: number): ActionInterval;
/**
!#en
Scales a Node object a zoom factor by modifying it's scale property.
Relative to its changes.
!#zh 按指定的倍数缩放节点大小。
@param duration duration in seconds
@param sx sx scale parameter in X
@param sy sy scale parameter in Y, if Null equal to sx
@example
```js
// example without sy, it scales by 2 both in X and Y
var actionBy = cc.scaleBy(2, 2);
//example with sy, it scales by 0.25 in X and 4.5 in Y
var actionBy2 = cc.scaleBy(2, 0.25, 4.5);
```
*/
export function scaleBy(duration: number, sx: number, sy?: number|void): ActionInterval;
/**
!#en Blinks a Node object by modifying it's visible property.
!#zh 闪烁(基于透明度)。
@param duration duration in seconds
@param blinks blinks in times
@example
```js
// example
var action = cc.blink(2, 10);
```
*/
export function blink(duration: number, blinks: number): ActionInterval;
/**
!#en
Fades an object that implements the cc.RGBAProtocol protocol.
It modifies the opacity from the current value to a custom one.
!#zh 修改透明度到指定值。
@param duration duration
@param opacity 0-255, 0 is transparent
@example
```js
// example
var action = cc.fadeTo(1.0, 0);
```
*/
export function fadeTo(duration: number, opacity: number): ActionInterval;
/**
!#en Fades In an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 0 to 255.
!#zh 渐显效果。
@param duration duration in seconds
@example
```js
//example
var action = cc.fadeIn(1.0);
```
*/
export function fadeIn(duration: number): ActionInterval;
/**
!#en Fades Out an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 255 to 0.
!#zh 渐隐效果。
@param d duration in seconds
@example
```js
// example
var action = cc.fadeOut(1.0);
```
*/
export function fadeOut(d: number): ActionInterval;
/**
!#en Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.
!#zh 修改颜色到指定值。
@param duration duration
@param red 0-255
@param green 0-255
@param blue 0-255
@example
```js
// example
var action = cc.tintTo(2, 255, 0, 255);
```
*/
export function tintTo(duration: number, red: number, green: number, blue: number): ActionInterval;
/**
!#en
Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.
Relative to their own color change.
!#zh 按照指定的增量修改颜色。
@param duration duration in seconds
@param deltaRed deltaRed
@param deltaGreen deltaGreen
@param deltaBlue deltaBlue
@example
```js
// example
var action = cc.tintBy(2, -127, -255, -127);
```
*/
export function tintBy(duration: number, deltaRed: number, deltaGreen: number, deltaBlue: number): ActionInterval;
/**
!#en Delays the action a certain amount of seconds.
!#zh 延迟指定的时间量。
@param d duration in seconds
@example
```js
// example
var delay = cc.delayTime(1);
```
*/
export function delayTime(d: number): ActionInterval;
/**
!#en Executes an action in reverse order, from time=duration to time=0.
!#zh 反转目标动作的时间轴。
@param action action
@example
```js
// example
var reverse = cc.reverseTime(this);
```
*/
export function reverseTime(action: FiniteTimeAction): ActionInterval;
/**
!#en Create an action with the specified action and forced target.
!#zh 用已有动作和一个新的目标节点创建动作。
@param target target
@param action action
*/
export function targetedAction(target: Node, action: FiniteTimeAction): ActionInterval;
/**
@param target the target to animate
*/
export function tween<T> (target?: T) : Tween<T>;
/** !#en This is a Easing instance.
!#zh 这是一个 Easing 类实例。 */
export var easing: Easing;
/**
!#en
Outputs an error message to the Cocos Creator Console (editor) or Web Console (runtime).<br/>
- In Cocos Creator, error is red.<br/>
- In Chrome, error have a red icon along with red message text.<br/>
!#zh
输出错误消息到 Cocos Creator 编辑器的 Console 或运行时页面端的 Console 中。<br/>
- 在 Cocos Creator 中,错误信息显示是红色的。<br/>
- 在 Chrome 中,错误信息有红色的图标以及红色的消息文本。<br/>
@param msg A JavaScript string containing zero or more substitution strings.
@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.
*/
export function error(msg: any, ...subst: any[]): void;
/**
!#en
Outputs a warning message to the Cocos Creator Console (editor) or Web Console (runtime).
- In Cocos Creator, warning is yellow.
- In Chrome, warning have a yellow warning icon with the message text.
!#zh
输出警告消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。<br/>
- 在 Cocos Creator 中,警告信息显示是黄色的。<br/>
- 在 Chrome 中,警告信息有着黄色的图标以及黄色的消息文本。<br/>
@param msg A JavaScript string containing zero or more substitution strings.
@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.
*/
export function warn(msg: any, ...subst: any[]): void;
/**
!#en Outputs a message to the Cocos Creator Console (editor) or Web Console (runtime).
!#zh 输出一条消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。
@param msg A JavaScript string containing zero or more substitution strings.
@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.
*/
export function log(msg: string|any, ...subst: any[]): void;
/** !#en Director
!#zh 导演类。 */
export var director: Director;
/** !#en This is a Game instance.
!#zh 这是一个 Game 类的实例,包含游戏主体信息并负责驱动游戏的游戏对象。。 */
export var game: Game;
export var assetManager: AssetManager;
/** !#en
cc.resources is a bundle and controls all asset under assets/resources
!#zh
cc.resources 是一个 bundle,用于管理所有在 assets/resources 下的资源 */
export var resources: AssetManager.Bundle;
/**
!#en
Rotates a Node object to a certain angle by modifying its quternion property. <br/>
The direction will be decided by the shortest angle.
!#zh 旋转到目标角度,通过逐帧修改它的 quternion 属性,旋转方向将由最短的角度决定。
@param duration duration in seconds
@param dstAngleX dstAngleX in degrees.
@param dstAngleY dstAngleY in degrees.
@param dstAngleZ dstAngleZ in degrees.
@example
```js
// example
var rotate3DTo = cc.rotate3DTo(2, cc.v3(0, 180, 0));
```
*/
export function rotate3DTo(duration: number, dstAngleX: number|Vec3|Quat, dstAngleY?: number, dstAngleZ?: number): ActionInterval;
/**
!#en
Rotates a Node object counter clockwise a number of degrees by modifying its quaternion property.
Relative to its properties to modify.
!#zh 旋转指定的 3D 角度。
@param duration duration in seconds
@param deltaAngleX deltaAngleX in degrees
@param deltaAngleY deltaAngleY in degrees
@param deltaAngleZ deltaAngleZ in degrees
@example
```js
// example
var actionBy = cc.rotate3DBy(2, cc.v3(0, 360, 0));
```
*/
export function rotate3DBy(duration: number, deltaAngleX: number|Vec3, deltaAngleY?: number, deltaAngleZ?: number): ActionInterval;
/** !#en The System event singleton for global usage
!#zh 系统事件单例,方便全局使用 */
export var systemEvent: SystemEvent;
/**
!#en Defines a CCClass using the given specification, please see [Class](/docs/editors_and_tools/creator-chapters/scripting/class.html) for details.
!#zh 定义一个 CCClass,传入参数必须是一个包含类型参数的字面量对象,具体用法请查阅[类型定义](/docs/creator/scripting/class.html)。
@param options options
@example
```js
// define base class
var Node = cc.Class();
// define sub class
var Sprite = cc.Class({
name: 'Sprite',
extends: Node,
ctor: function () {
this.url = "";
this.id = 0;
},
statics: {
// define static members
count: 0,
getBounds: function (spriteList) {
// compute bounds...
}
},
properties {
width: {
default: 128,
type: cc.Integer,
tooltip: 'The width of sprite'
},
height: 128,
size: {
get: function () {
return cc.v2(this.width, this.height);
}
}
},
load: function () {
// load this.url...
};
});
// instantiate
var obj = new Sprite();
obj.url = 'sprite.png';
obj.load();
```
*/
export function Class(options?: {name?: string; extends?: Function; ctor?: Function; __ctor__?: Function; properties?: any; statics?: any; mixins?: Function[]; editor?: {executeInEditMode?: boolean; requireComponent?: Function; menu?: string; executionOrder?: number; disallowMultiple?: boolean; playOnFocus?: boolean; inspector?: string; icon?: string; help?: string; }; update?: Function; lateUpdate?: Function; onLoad?: Function; start?: Function; onEnable?: Function; onDisable?: Function; onDestroy?: Function; onFocusInEditor?: Function; onLostFocusInEditor?: Function; resetInEditor?: Function; onRestore?: Function; _getLocalBounds?: Function; }): Function;
/**
!#en
Define an enum type. <br/>
If a enum item has a value of -1, it will be given an Integer number according to it's order in the list.<br/>
Otherwise it will use the value specified by user who writes the enum definition.
!#zh
定义一个枚举类型。<br/>
用户可以把枚举值设为任意的整数,如果设为 -1,系统将会分配为上一个枚举值 + 1。
@param obj a JavaScript literal object containing enum names and values, or a TypeScript enum type
@example
```js
// JavaScript:
var WrapMode = cc.Enum({
Repeat: -1,
Clamp: -1
});
// Texture.WrapMode.Repeat == 0
// Texture.WrapMode.Clamp == 1
// Texture.WrapMode[0] == "Repeat"
// Texture.WrapMode[1] == "Clamp"
var FlagType = cc.Enum({
Flag1: 1,
Flag2: 2,
Flag3: 4,
Flag4: 8,
});
var AtlasSizeList = cc.Enum({
128: 128,
256: 256,
512: 512,
1024: 1024,
});
// TypeScript:
// If used in TypeScript, just define a TypeScript enum:
enum Direction {
Up,
Down,
Left,
Right
}
// If you need to inspect the enum in Properties panel, you can call cc.Enum:
const {ccclass, property} = cc._decorator;
@ccclass
class NewScript extends cc.Component {
@property({
type: cc.Enum(Direction) // call cc.Enum
})
direction: Direction = Direction.Up;
}
```
*/
export function Enum<T>(obj: T): T;
/**
@param touches touches
*/
export function handleTouchesBegin(touches: any[]): void;
/**
@param touches touches
*/
export function handleTouchesMove(touches: any[]): void;
/**
@param touches touches
*/
export function handleTouchesEnd(touches: any[]): void;
/**
@param touches touches
*/
export function handleTouchesCancel(touches: any[]): void;
/**
@param touches touches
*/
export function getSetOfTouchesEndOrCancel(touches: any[]): any[];
/**
@param touch touch
*/
export function getPreTouch(touch: Touch): Touch;
/**
@param touch touch
*/
export function setPreTouch(touch: Touch): void;
/**
@param tx tx
@param ty ty
@param pos pos
*/
export function getTouchByXY(tx: number, ty: number, pos: Vec2): Touch;
/**
@param location location
@param pos pos
@param eventType eventType
*/
export function getMouseEvent(location: Vec2, pos: Vec2, eventType: number): Event.EventMouse;
/**
@param event event
@param pos pos
*/
export function getPointByEvent(event: Touch, pos: Vec2): Vec2;
/**
@param event event
@param pos pos
*/
export function getTouchesByEvent(event: Touch, pos: Vec2): any[];
/**
@param element element
*/
export function registerSystemEvent(element: HTMLElement): void;
/**
@param dt dt
*/
export function update(dt: number): void;
/**
!#en
Checks whether the object is non-nil and not yet destroyed.<br>
When an object's `destroy` is called, it is actually destroyed after the end of this frame.
So `isValid` will return false from the next frame, while `isValid` in the current frame will still be true.
If you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`,
but this is often caused by a particular logical requirements, which is not normally required.
!#zh
检查该对象是否不为 null 并且尚未销毁。<br>
当一个对象的 `destroy` 调用以后,会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false,而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`,请使用 `cc.isValid(obj, true)`,不过这往往是特殊的业务需求引起的,通常情况下不需要这样。
@param value value
@param strictMode If true, Object called destroy() in this frame will also treated as invalid.
@example
```js
var node = new cc.Node();
cc.log(cc.isValid(node)); // true
node.destroy();
cc.log(cc.isValid(node)); // true, still valid in this frame
// after a frame...
cc.log(cc.isValid(node)); // false, destroyed in the end of last frame
```
*/
export function isValid(value: any, strictMode?: boolean): boolean;
/** !#en cc.view is the shared view object.
!#zh cc.view 是全局的视图对象。 */
export var view: View;
/** !#en cc.winSize is the alias object for the size of the current game window.
!#zh cc.winSize 为当前的游戏窗口的大小。 */
export var winSize: Size;
/** Specify that the input value must be integer in Inspector.
Also used to indicates that the elements in array should be type integer. */
export var Integer: string;
/** Indicates that the elements in array should be type double. */
export var Float: string;
/** Indicates that the elements in array should be type boolean. */
export var Boolean: string;
/** Indicates that the elements in array should be type string. */
export var String: string;
/**
!#en Deserialize json to cc.Asset
!#zh 将 JSON 反序列化为对象实例。
@param data the serialized cc.Asset json string or json object.
@param details additional loading result
@param options options
*/
export function deserialize(data: string|any, details?: Details, options?: any): any;
/**
!#en Clones the object `original` and returns the clone, or instantiate a node from the Prefab.
!#zh 克隆指定的任意类型的对象,或者从 Prefab 实例化出新节点。
(Instantiate 时,function 和 dom 等非可序列化对象会直接保留原有引用,Asset 会直接进行浅拷贝,可序列化类型会进行深拷贝。)
@param original An existing object that you want to make a copy of.
@example
```js
// instantiate node from prefab
var scene = cc.director.getScene();
var node = cc.instantiate(prefabAsset);
node.parent = scene;
// clone node
var scene = cc.director.getScene();
var node = cc.instantiate(targetNode);
node.parent = scene;
```
*/
export function instantiate(original: Prefab): Node;
export function instantiate<T>(original: T): T;
/**
Finds a node by hierarchy path, the path is case-sensitive.
It will traverse the hierarchy by splitting the path using '/' character.
This function will still returns the node even if it is inactive.
It is recommended to not use this function every frame instead cache the result at startup.
@param path path
@param referenceNode referenceNode
*/
export function find(path: string, referenceNode?: Node): Node;
/**
!#en
The convenience method to create a new {{#crossLink "Color/Color:method"}}cc.Color{{/crossLink}}
Alpha channel is optional. Default value is 255.
!#zh
通过该方法来创建一个新的 {{#crossLink "Color/Color:method"}}cc.Color{{/crossLink}} 对象。
Alpha 通道是可选的。默认值是 255。
@param r r
@param g g
@param b b
@param a a
@example
```js
-----------------------
// 1. All channels seperately as parameters
var color1 = new cc.Color(255, 255, 255, 255);
// 2. Convert a hex string to a color
var color2 = new cc.Color("#000000");
// 3. An color object as parameter
var color3 = new cc.Color({r: 255, g: 255, b: 255, a: 255});
```
*/
export function color(r?: number, g?: number, b?: number, a?: number): Color;
/**
!#en The convenience method to create a new {{#crossLink "Mat4"}}cc.Mat4{{/crossLink}}.
!#zh 通过该简便的函数进行创建 {{#crossLink "Mat4"}}cc.Mat4{{/crossLink}} 对象。
@param m00 Component in column 0, row 0 position (index 0)
@param m01 Component in column 0, row 1 position (index 1)
@param m02 Component in column 0, row 2 position (index 2)
@param m03 Component in column 0, row 3 position (index 3)
@param m10 Component in column 1, row 0 position (index 4)
@param m11 Component in column 1, row 1 position (index 5)
@param m12 Component in column 1, row 2 position (index 6)
@param m13 Component in column 1, row 3 position (index 7)
@param m20 Component in column 2, row 0 position (index 8)
@param m21 Component in column 2, row 1 position (index 9)
@param m22 Component in column 2, row 2 position (index 10)
@param m23 Component in column 2, row 3 position (index 11)
@param m30 Component in column 3, row 0 position (index 12)
@param m31 Component in column 3, row 1 position (index 13)
@param m32 Component in column 3, row 2 position (index 14)
@param m33 Component in column 3, row 3 position (index 15)
*/
export function mat4(m00?: number, m01?: number, m02?: number, m03?: number, m10?: number, m11?: number, m12?: number, m13?: number, m20?: number, m21?: number, m22?: number, m23?: number, m30?: number, m31?: number, m32?: number, m33?: number): Mat4;
/**
!#en The convenience method to create a new {{#crossLink "Quat"}}cc.Quat{{/crossLink}}.
!#zh 通过该简便的函数进行创建 {{#crossLink "Quat"}}cc.Quat{{/crossLink}} 对象。
@param x x
@param y y
@param z z
@param w w
*/
export function quat(x?: number|any, y?: number, z?: number, w?: number): Quat;
/**
!#en
The convenience method to create a new Rect.
see {{#crossLink "Rect/Rect:method"}}cc.Rect{{/crossLink}}
!#zh
该方法用来快速创建一个新的矩形。{{#crossLink "Rect/Rect:method"}}cc.Rect{{/crossLink}}
@param x x
@param y y
@param w w
@param h h
@example
```js
var a = new cc.Rect(0 , 0, 10, 0);
```
*/
export function rect(x?: number, y?: number, w?: number, h?: number): Rect;
/**
!#en
Helper function that creates a cc.Size.<br/>
Please use cc.p or cc.v2 instead, it will soon replace cc.Size.
!#zh
创建一个 cc.Size 对象的帮助函数。<br/>
注意:可以使用 cc.p 或者是 cc.v2 代替,它们将很快取代 cc.Size。
@param w width or a size object
@param h height
@example
```js
var size1 = cc.size();
var size2 = cc.size(100,100);
var size3 = cc.size(size2);
var size4 = cc.size({width: 100, height: 100});
```
*/
export function size(w: number|Size, h?: number): Size;
export var EPSILON: number;
/**
Clamps a value between a minimum float and maximum float value.
@param val val
@param min min
@param max max
*/
export function clamp(val: number, min: number, max: number): number;
/**
Clamps a value between 0 and 1.
@param val val
*/
export function clamp01(val: number): number;
/**
@param from from
@param to to
@param ratio the interpolation coefficient
*/
export function lerp(from: number, to: number, ratio: number): number;
export function random(): void;
/**
Returns a floating-point random number between min (inclusive) and max (exclusive).
@param min min
@param max max
*/
export function randomRange(min: number, max: number): number;
/**
Returns a random integer between min (inclusive) and max (exclusive).
@param min min
@param max max
*/
export function randomRangeInt(min: number, max: number): number;
/**
Linear congruential generator using Hull-Dobell Theorem.
@param seed the random seed
*/
export function pseudoRandom(seed: number): number;
/**
Returns a floating-point pseudo-random number between min (inclusive) and max (exclusive).
@param seed seed
@param min min
@param max max
*/
export function pseudoRandomRange(seed: number, min: number, max: number): number;
/**
Returns a pseudo-random integer between min (inclusive) and max (exclusive).
@param seed seed
@param min min
@param max max
*/
export function pseudoRandomRangeInt(seed: number, min: number, max: number): number;
/**
Returns the next power of two for the value
@param val val
*/
export function nextPow2(val: number): number;
/**
Returns float remainder for t / length
@param t time start at 0
@param length time of one cycle
*/
export function repeat(t: number, length: number): number;
/**
Returns time wrapped in ping-pong mode
@param t time start at 0
@param length time of one cycle
*/
export function repeat(t: number, length: number): number;
/**
Returns ratio of a value within a given range
@param from start value
@param to end value
@param value given value
*/
export function repeat(from: number, to: number, value: number): number;
/**
Returns -1, 0, +1 depending on sign of x.
@param v v
*/
export function sign(v: number): void;
/**
!#en The convenience method to create a new {{#crossLink "Vec2"}}cc.Vec2{{/crossLink}}.
!#zh 通过该简便的函数进行创建 {{#crossLink "Vec2"}}cc.Vec2{{/crossLink}} 对象。
@param x x
@param y y
@example
```js
var v1 = cc.v2();
var v2 = cc.v2(0, 0);
var v3 = cc.v2(v2);
var v4 = cc.v2({x: 100, y: 100});
```
*/
export function v2(x?: number|any, y?: number): Vec2;
/**
!#en The convenience method to create a new {{#crossLink "Vec3"}}cc.Vec3{{/crossLink}}.
!#zh 通过该简便的函数进行创建 {{#crossLink "Vec3"}}cc.Vec3{{/crossLink}} 对象。
@param x x
@param y y
@param z z
@example
```js
var v1 = cc.v3();
var v2 = cc.v3(0, 0, 0);
var v3 = cc.v3(v2);
var v4 = cc.v3({x: 100, y: 100, z: 0});
```
*/
export function v3(x?: number|any, y?: number, z?: number): Vec3;
export var dynamicAtlasManager: DynamicAtlasManager;
/** !#en The matrix storage */
export var matrix: any[];
/**
!#en Get an element
@param i i
@param j j
*/
export function get(i: number, j: number): number;
/**
!#en Set an element
@param i i
@param j j
@param value value
*/
export function set(i: number, j: number, value: boolean): void;
/**
!#en Sets all elements to zero
*/
export function reset(): void;
/** !#en
cc.NodePool is the cache pool designed for node type.<br/>
It can helps you to improve your game performance for objects which need frequent release and recreate operations<br/>
It's recommended to create cc.NodePool instances by node type, the type corresponds to node type in game design, not the class,
for example, a prefab is a specific node type. <br/>
When you create a node pool, you can pass a Component which contains `unuse`, `reuse` functions to control the content of node.<br/>
Some common use case is :<br/>
1. Bullets in game (die very soon, massive creation and recreation, no side effect on other objects)<br/>
2. Blocks in candy crash (massive creation and recreation)<br/>
etc...
!#zh
cc.NodePool 是用于管理节点对象的对象缓存池。<br/>
它可以帮助您提高游戏性能,适用于优化对象的反复创建和销毁<br/>
以前 cocos2d-x 中的 cc.pool 和新的节点事件注册系统不兼容,因此请使用 cc.NodePool 来代替。
新的 NodePool 需要实例化之后才能使用,每种不同的节点对象池需要一个不同的对象池实例,这里的种类对应于游戏中的节点设计,一个 prefab 相当于一个种类的节点。<br/>
在创建缓冲池时,可以传入一个包含 unuse, reuse 函数的组件类型用于节点的回收和复用逻辑。<br/>
一些常见的用例是:<br/>
1.在游戏中的子弹(死亡很快,频繁创建,对其他对象无副作用)<br/>
2.糖果粉碎传奇中的木块(频繁创建)。
等等.... */
export class NodePool {
/**
!#en
Constructor for creating a pool for a specific node template (usually a prefab). You can pass a component (type or name) argument for handling event for reusing and recycling node.
!#zh
使用构造函数来创建一个节点专用的对象池,您可以传递一个组件类型或名称,用于处理节点回收和复用时的事件逻辑。
@param poolHandlerComp !#en The constructor or the class name of the component to control the unuse/reuse logic. !#zh 处理节点回收和复用事件逻辑的组件类型或名称。
@example
```js
properties: {
template: cc.Prefab
},
onLoad () {
// MyTemplateHandler is a component with 'unuse' and 'reuse' to handle events when node is reused or recycled.
this.myPool = new cc.NodePool('MyTemplateHandler');
}
```
*/
constructor(poolHandlerComp?: {prototype: Component}|string);
/** !#en The pool handler component, it could be the class name or the constructor.
!#zh 缓冲池处理组件,用于节点的回收和复用逻辑,这个属性可以是组件类名或组件的构造函数。 */
poolHandlerComp: Function|string;
/**
!#en The current available size in the pool
!#zh 获取当前缓冲池的可用对象数量
*/
size(): number;
/**
!#en Destroy all cached nodes in the pool
!#zh 销毁对象池中缓存的所有节点
*/
clear(): void;
/**
!#en Put a new Node into the pool.
It will automatically remove the node from its parent without cleanup.
It will also invoke unuse method of the poolHandlerComp if exist.
!#zh 向缓冲池中存入一个不再需要的节点对象。
这个函数会自动将目标节点从父节点上移除,但是不会进行 cleanup 操作。
这个函数会调用 poolHandlerComp 的 unuse 函数,如果组件和函数都存在的话。
@param obj obj
@example
```js
let myNode = cc.instantiate(this.template);
this.myPool.put(myNode);
```
*/
put(obj: Node): void;
/**
!#en Get a obj from pool, if no available object in pool, null will be returned.
This function will invoke the reuse function of poolHandlerComp if exist.
!#zh 获取对象池中的对象,如果对象池没有可用对象,则返回空。
这个函数会调用 poolHandlerComp 的 reuse 函数,如果组件和函数都存在的话。
@param params !#en Params to pass to 'reuse' method in poolHandlerComp !#zh 向 poolHandlerComp 中的 'reuse' 函数传递的参数
@example
```js
let newNode = this.myPool.get();
```
*/
get(...params: any[]): Node;
}
/** !#en cc.audioEngine is the singleton object, it provide simple audio APIs.
!#zh
cc.audioengine是单例对象。<br/>
主要用来播放音频,播放的时候会返回一个 audioID,之后都可以通过这个 audioID 来操作这个音频对象。<br/>
不使用的时候,请使用 cc.audioEngine.uncache(filePath); 进行资源释放 <br/>
注意:<br/>
在 Android 系统浏览器上,不同浏览器,不同版本的效果不尽相同。<br/>
比如说:大多数浏览器都需要用户物理交互才可以开始播放音效,有一些不支持 WebAudio,<br/>
有一些不支持多音轨播放。总之如果对音乐依赖比较强,请做尽可能多的测试。 */
export class audioEngine {
/**
!#en Play audio.
!#zh 播放音频
@param clip The audio clip to play.
@param loop Whether the music loop or not.
@param volume Volume size.
@example
```js
cc.resources.load(path, cc.AudioClip, null, function (err, clip) {
var audioID = cc.audioEngine.play(clip, false, 0.5);
});
```
*/
static play(clip: AudioClip, loop: boolean, volume: number): number;
/**
!#en Set audio loop.
!#zh 设置音频是否循环。
@param audioID audio id.
@param loop Whether cycle.
@example
```js
cc.audioEngine.setLoop(id, true);
```
*/
static setLoop(audioID: number, loop: boolean): void;
/**
!#en Get audio cycle state.
!#zh 获取音频的循环状态。
@param audioID audio id.
@example
```js
cc.audioEngine.isLoop(id);
```
*/
static isLoop(audioID: number): boolean;
/**
!#en Set the volume of audio.
!#zh 设置音量(0.0 ~ 1.0)。
@param audioID audio id.
@param volume Volume must be in 0.0~1.0 .
@example
```js
cc.audioEngine.setVolume(id, 0.5);
```
*/
static setVolume(audioID: number, volume: number): void;
/**
!#en The volume of the music max value is 1.0,the min value is 0.0 .
!#zh 获取音量(0.0 ~ 1.0)。
@param audioID audio id.
@example
```js
var volume = cc.audioEngine.getVolume(id);
```
*/
static getVolume(audioID: number): number;
/**
!#en Set current time
!#zh 设置当前的音频时间。
@param audioID audio id.
@param sec current time.
@example
```js
cc.audioEngine.setCurrentTime(id, 2);
```
*/
static setCurrentTime(audioID: number, sec: number): boolean;
/**
!#en Get current time
!#zh 获取当前的音频播放时间。
@param audioID audio id.
@example
```js
var time = cc.audioEngine.getCurrentTime(id);
```
*/
static getCurrentTime(audioID: number): number;
/**
!#en Get audio duration
!#zh 获取音频总时长。
@param audioID audio id.
@example
```js
var time = cc.audioEngine.getDuration(id);
```
*/
static getDuration(audioID: number): number;
/**
!#en Get audio state
!#zh 获取音频状态。
@param audioID audio id.
@example
```js
var state = cc.audioEngine.getState(id);
```
*/
static getState(audioID: number): audioEngine.AudioState;
/**
!#en Set Audio finish callback
!#zh 设置一个音频结束后的回调
@param audioID audio id.
@param callback loaded callback.
@example
```js
cc.audioEngine.setFinishCallback(id, function () {});
```
*/
static setFinishCallback(audioID: number, callback: Function): void;
/**
!#en Pause playing audio.
!#zh 暂停正在播放音频。
@param audioID The return value of function play.
@example
```js
cc.audioEngine.pause(audioID);
```
*/
static pause(audioID: number): void;
/**
!#en Pause all playing audio
!#zh 暂停现在正在播放的所有音频。
@example
```js
cc.audioEngine.pauseAll();
```
*/
static pauseAll(): void;
/**
!#en Resume playing audio.
!#zh 恢复播放指定的音频。
@param audioID The return value of function play.
@example
```js
cc.audioEngine.resume(audioID);
```
*/
static resume(audioID: number): void;
/**
!#en Resume all playing audio.
!#zh 恢复播放所有之前暂停的所有音频。
@example
```js
cc.audioEngine.resumeAll();
```
*/
static resumeAll(): void;
/**
!#en Stop playing audio.
!#zh 停止播放指定音频。
@param audioID The return value of function play.
@example
```js
cc.audioEngine.stop(audioID);
```
*/
static stop(audioID: number): void;
/**
!#en Stop all playing audio.
!#zh 停止正在播放的所有音频。
@example
```js
cc.audioEngine.stopAll();
```
*/
static stopAll(): void;
/**
!#en Set up an audio can generate a few examples.
!#zh 设置一个音频可以设置几个实例
@param num a number of instances to be created from within an audio
@example
```js
cc.audioEngine.setMaxAudioInstance(20);
```
*/
static setMaxAudioInstance(num: number): void;
/**
!#en Getting audio can produce several examples.
!#zh 获取一个音频可以设置几个实例
@example
```js
cc.audioEngine.getMaxAudioInstance();
```
*/
static getMaxAudioInstance(): number;
/**
!#en Unload the preloaded audio from internal buffer.
!#zh 卸载预加载的音频。
@param clip clip
@example
```js
cc.audioEngine.uncache(filePath);
```
*/
static uncache(clip: AudioClip): void;
/**
!#en Unload all audio from internal buffer.
!#zh 卸载所有音频。
@example
```js
cc.audioEngine.uncacheAll();
```
*/
static uncacheAll(): void;
/**
!#en Play background music
!#zh 播放背景音乐
@param clip The audio clip to play.
@param loop Whether the music loop or not.
@example
```js
cc.resources.load(path, cc.AudioClip, null, function (err, clip) {
var audioID = cc.audioEngine.playMusic(clip, false);
});
```
*/
static playMusic(clip: AudioClip, loop: boolean): number;
/**
!#en Stop background music.
!#zh 停止播放背景音乐。
@example
```js
cc.audioEngine.stopMusic();
```
*/
static stopMusic(): void;
/**
!#en Pause the background music.
!#zh 暂停播放背景音乐。
@example
```js
cc.audioEngine.pauseMusic();
```
*/
static pauseMusic(): void;
/**
!#en Resume playing background music.
!#zh 恢复播放背景音乐。
@example
```js
cc.audioEngine.resumeMusic();
```
*/
static resumeMusic(): void;
/**
!#en Get the volume(0.0 ~ 1.0).
!#zh 获取音量(0.0 ~ 1.0)。
@example
```js
var volume = cc.audioEngine.getMusicVolume();
```
*/
static getMusicVolume(): number;
/**
!#en Set the background music volume.
!#zh 设置背景音乐音量(0.0 ~ 1.0)。
@param volume Volume must be in 0.0~1.0.
@example
```js
cc.audioEngine.setMusicVolume(0.5);
```
*/
static setMusicVolume(volume: number): void;
/**
!#en Background music playing state
!#zh 背景音乐是否正在播放
@example
```js
cc.audioEngine.isMusicPlaying();
```
*/
static isMusicPlaying(): boolean;
/**
!#en Play effect audio.
!#zh 播放音效
@param clip The audio clip to play.
@param loop Whether the music loop or not.
@example
```js
cc.resources.load(path, cc.AudioClip, null, function (err, clip) {
var audioID = cc.audioEngine.playEffect(clip, false);
});
```
*/
static playEffect(clip: AudioClip, loop: boolean): number;
/**
!#en Set the volume of effect audio.
!#zh 设置音效音量(0.0 ~ 1.0)。
@param volume Volume must be in 0.0~1.0.
@example
```js
cc.audioEngine.setEffectsVolume(0.5);
```
*/
static setEffectsVolume(volume: number): void;
/**
!#en The volume of the effect audio max value is 1.0,the min value is 0.0 .
!#zh 获取音效音量(0.0 ~ 1.0)。
@example
```js
var volume = cc.audioEngine.getEffectsVolume();
```
*/
static getEffectsVolume(): number;
/**
!#en Pause effect audio.
!#zh 暂停播放音效。
@param audioID audio id.
@example
```js
cc.audioEngine.pauseEffect(audioID);
```
*/
static pauseEffect(audioID: number): void;
/**
!#en Stop playing all the sound effects.
!#zh 暂停播放所有音效。
@example
```js
cc.audioEngine.pauseAllEffects();
```
*/
static pauseAllEffects(): void;
/**
!#en Resume effect audio.
!#zh 恢复播放音效音频。
@param audioID The return value of function play.
@example
```js
cc.audioEngine.resumeEffect(audioID);
```
*/
static resumeEffect(audioID: number): void;
/**
!#en Resume all effect audio.
!#zh 恢复播放所有之前暂停的音效。
@example
```js
cc.audioEngine.resumeAllEffects();
```
*/
static resumeAllEffects(): void;
/**
!#en Stop playing the effect audio.
!#zh 停止播放音效。
@param audioID audio id.
@example
```js
cc.audioEngine.stopEffect(id);
```
*/
static stopEffect(audioID: number): void;
/**
!#en Stop playing all the effects.
!#zh 停止播放所有音效。
@example
```js
cc.audioEngine.stopAllEffects();
```
*/
static stopAllEffects(): void;
}
/** !#en Base class cc.Action for action classes.
!#zh Action 类是所有动作类型的基类。 */
export class Action {
/**
!#en
to copy object with deep copy.
returns a clone of action.
!#zh 返回一个克隆的动作。
*/
clone(): Action;
/**
!#en
return true if the action has finished.
!#zh 如果动作已完成就返回 true。
*/
isDone(): boolean;
/**
!#en get the target.
!#zh 获取当前目标节点。
*/
getTarget(): Node;
/**
!#en The action will modify the target properties.
!#zh 设置目标节点。
@param target target
*/
setTarget(target: Node): void;
/**
!#en get the original target.
!#zh 获取原始目标节点。
*/
getOriginalTarget(): Node;
/**
!#en get tag number.
!#zh 获取用于识别动作的标签。
*/
getTag(): number;
/**
!#en set tag number.
!#zh 设置标签,用于识别动作。
@param tag tag
*/
setTag(tag: number): void;
/** !#en Default Action tag.
!#zh 默认动作标签。 */
static TAG_INVALID: number;
}
/** !#en
Base class actions that do have a finite time duration. <br/>
Possible actions: <br/>
- An action with a duration of 0 seconds. <br/>
- An action with a duration of 35.5 seconds.
Infinite time actions are valid
!#zh 有限时间动作,这种动作拥有时长 duration 属性。 */
export class FiniteTimeAction extends Action {
/**
!#en get duration of the action. (seconds).
!#zh 获取动作以秒为单位的持续时间。
*/
getDuration(): number;
/**
!#en set duration of the action. (seconds).
!#zh 设置动作以秒为单位的持续时间。
@param duration duration
*/
setDuration(duration: number): void;
/**
!#en
Returns a reversed action. <br />
For example: <br />
- The action will be x coordinates of 0 move to 100. <br />
- The reversed action will be x of 100 move to 0.
- Will be rewritten
!#zh 返回一个新的动作,执行与原动作完全相反的动作。
*/
reverse(): void;
/**
!#en
to copy object with deep copy.
returns a clone of action.
!#zh 返回一个克隆的动作。
*/
clone(): FiniteTimeAction;
}
/** !#en Instant actions are immediate actions. They don't have a duration like the ActionInterval actions.
!#zh 即时动作,这种动作立即就会执行,继承自 FiniteTimeAction。 */
export class ActionInstant extends FiniteTimeAction {
}
/** !#en
<p> An interval action is an action that takes place within a certain period of time. <br/>
It has an start time, and a finish time. The finish time is the parameter<br/>
duration plus the start time.</p>
<p>These CCActionInterval actions have some interesting properties, like:<br/>
- They can run normally (default) <br/>
- They can run reversed with the reverse method <br/>
- They can run with the time altered with the Accelerate, AccelDeccel and Speed actions. </p>
<p>For example, you can simulate a Ping Pong effect running the action normally and<br/>
then running it again in Reverse mode. </p>
!#zh 时间间隔动作,这种动作在已定时间内完成,继承 FiniteTimeAction。 */
export class ActionInterval extends FiniteTimeAction {
/**
!#en Implementation of ease motion.
!#zh 缓动运动。
@param easeObj easeObj
@example
```js
action.easing(cc.easeIn(3.0));
```
*/
easing(easeObj: any): ActionInterval;
/**
!#en
Repeats an action a number of times.
To repeat an action forever use the CCRepeatForever action.
!#zh 重复动作可以按一定次数重复一个动作,使用 RepeatForever 动作来永远重复一个动作。
@param times times
*/
repeat(times: number): ActionInterval;
/**
!#en
Repeats an action for ever. <br/>
To repeat the an action for a limited number of times use the Repeat action. <br/>
!#zh 永远地重复一个动作,有限次数内重复一个动作请使用 Repeat 动作。
*/
repeatForever(): ActionInterval;
}
/** !#en
cc.ActionManager is a class that can manage actions.<br/>
Normally you won't need to use this class directly. 99% of the cases you will use the CCNode interface,
which uses this class's singleton object.
But there are some cases where you might need to use this class. <br/>
Examples:<br/>
- When you want to run an action where the target is different from a CCNode.<br/>
- When you want to pause / resume the actions<br/>
!#zh
cc.ActionManager 是可以管理动作的单例类。<br/>
通常你并不需要直接使用这个类,99%的情况您将使用 CCNode 的接口。<br/>
但也有一些情况下,您可能需要使用这个类。 <br/>
例如:
- 当你想要运行一个动作,但目标不是 CCNode 类型时。 <br/>
- 当你想要暂停/恢复动作时。 <br/> */
export class ActionManager {
/**
!#en
Adds an action with a target.<br/>
If the target is already present, then the action will be added to the existing target.
If the target is not present, a new instance of this target will be created either paused or not, and the action will be added to the newly created target.
When the target is paused, the queued actions won't be 'ticked'.
!#zh
增加一个动作,同时还需要提供动作的目标对象,目标对象是否暂停作为参数。<br/>
如果目标已存在,动作将会被直接添加到现有的节点中。<br/>
如果目标不存在,将为这一目标创建一个新的实例,并将动作添加进去。<br/>
当目标状态的 paused 为 true,动作将不会被执行
@param action action
@param target target
@param paused paused
*/
addAction(action: Action, target: Node, paused: boolean): void;
/**
!#en Removes all actions from all the targets.
!#zh 移除所有对象的所有动作。
*/
removeAllActions(): void;
/**
!#en
Removes all actions from a certain target. <br/>
All the actions that belongs to the target will be removed.
!#zh
移除指定对象上的所有动作。<br/>
属于该目标的所有的动作将被删除。
@param target target
@param forceDelete forceDelete
*/
removeAllActionsFromTarget(target: Node, forceDelete: boolean): void;
/**
!#en Removes an action given an action reference.
!#zh 移除指定的动作。
@param action action
*/
removeAction(action: Action): void;
/**
!#en Removes an action given its tag and the target.
!#zh 删除指定对象下特定标签的一个动作,将删除首个匹配到的动作。
@param tag tag
@param target target
*/
removeActionByTag(tag: number, target?: Node): void;
/**
!#en Gets an action given its tag an a target.
!#zh 通过目标对象和标签获取一个动作。
@param tag tag
@param target target
*/
getActionByTag(tag: number, target: Node): Action;
/**
!#en
Returns the numbers of actions that are running in a certain target. <br/>
Composable actions are counted as 1 action. <br/>
Example: <br/>
- If you are running 1 Sequence of 7 actions, it will return 1. <br/>
- If you are running 7 Sequences of 2 actions, it will return 7.
!#zh
返回指定对象下所有正在运行的动作数量。 <br/>
组合动作被算作一个动作。<br/>
例如:<br/>
- 如果您正在运行 7 个动作组成的序列动作(Sequence),这个函数将返回 1。<br/>
- 如果你正在运行 2 个序列动作(Sequence)和 5 个普通动作,这个函数将返回 7。<br/>
@param target target
*/
getNumberOfRunningActionsInTarget(target: Node): number;
/**
!#en Pauses the target: all running actions and newly added actions will be paused.
!#zh 暂停指定对象:所有正在运行的动作和新添加的动作都将会暂停。
@param target target
*/
pauseTarget(target: Node): void;
/**
!#en Resumes the target. All queued actions will be resumed.
!#zh 让指定目标恢复运行。在执行序列中所有被暂停的动作将重新恢复运行。
@param target target
*/
resumeTarget(target: Node): void;
/**
!#en Pauses all running actions, returning a list of targets whose actions were paused.
!#zh 暂停所有正在运行的动作,返回一个包含了那些动作被暂停了的目标对象的列表。
*/
pauseAllRunningActions(): any[];
/**
!#en Resume a set of targets (convenience function to reverse a pauseAllRunningActions or pauseTargets call).
!#zh 让一组指定对象恢复运行(用来逆转 pauseAllRunningActions 效果的便捷函数)。
@param targetsToResume targetsToResume
*/
resumeTargets(targetsToResume: any[]): void;
/**
!#en Pause a set of targets.
!#zh 暂停一组指定对象。
@param targetsToPause targetsToPause
*/
pauseTargets(targetsToPause: any[]): void;
/**
!#en
purges the shared action manager. It releases the retained instance. <br/>
because it uses this, so it can not be static.
!#zh
清除共用的动作管理器。它释放了持有的实例。 <br/>
因为它使用 this,因此它不能是静态的。
*/
purgeSharedManager(): void;
/**
!#en The ActionManager update。
!#zh ActionManager 主循环。
@param dt delta time in seconds
*/
update(dt: number): void;
}
/** !#en
Tween provide a simple and flexible way to create action.
Tween's api is more flexible than cc.Action:
- Support creating an action sequence in chained api,
- Support animate any objects' any properties, not limited to node's properties.
By contrast, cc.Action needs to create a new action class to support new node property.
- Support working with cc.Action,
- Support easing and progress function.
!#zh
Tween 提供了一个简单灵活的方法来创建 action。
相对于 Cocos 传统的 cc.Action,cc.Tween 在创建动画上要灵活非常多:
- 支持以链式结构的方式创建一个动画序列。
- 支持对任意对象的任意属性进行缓动,不再局限于节点上的属性,而 cc.Action 添加一个属性的支持时还需要添加一个新的 action 类型。
- 支持与 cc.Action 混用
- 支持设置 {{#crossLink "Easing"}}{{/crossLink}} 或者 progress 函数 */
export class Tween<T = any> {
/**
@param target target
*/
constructor(target?: any);
/**
!#en Stop all tweens
!#zh 停止所有缓动
*/
static stopAll(): void;
/**
!#en Stop all tweens by tag
!#zh 停止所有指定标签的缓动
@param tag tag
*/
static stopAllByTag(tag: number): void;
/**
!#en Stop all tweens by target
!#zh 停止所有指定对象的缓动
@param target target
*/
static stopAllByTarget(target: any): void;
/**
!#en
Insert an action or tween to this sequence
!#zh
插入一个 action 或者 tween 到队列中
@param other other
*/
then(other: Action|Tween<T>): Tween<T>;
/**
!#en
Set tween target
!#zh
设置 tween 的 target
@param target target
*/
target(target: any): Tween<T>;
/**
!#en
Start this tween
!#zh
运行当前 tween
*/
start(): Tween<T>;
/**
!#en
Stop this tween
!#zh
停止当前 tween
*/
stop(): Tween<T>;
/**
!#en Sets tween tag
!#zh 设置缓动的标签
@param tag tag
*/
tag(tag: number): Tween<T>;
/**
!#en
Clone a tween
!#zh
克隆当前 tween
@param target target
*/
clone(target?: any): Tween<T>;
/**
!#en
Integrate all previous actions to an action.
!#zh
将之前所有的 action 整合为一个 action。
*/
union(): Tween;
/**
!#en Sets target's position property according to the bezier curve.
!#zh 按照贝塞尔路径设置目标的 position 属性。
@param duration duration
@param c1 c1
@param c2 c2
@param to to
*/
bezierTo(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween<T>;
/**
!#en Sets target's position property according to the bezier curve.
!#zh 按照贝塞尔路径设置目标的 position 属性。
@param duration duration
@param c1 c1
@param c2 c2
@param to to
*/
bezierBy(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween<T>;
/**
!#en Flips target's scaleX
!#zh 翻转目标的 scaleX 属性
*/
flipX(): Tween<T>;
/**
!#en Flips target's scaleY
!#zh 翻转目标的 scaleY 属性
*/
flipY(): Tween<T>;
/**
!#en Blinks target by set target's opacity property
!#zh 通过设置目标的 opacity 属性达到闪烁效果
@param duration duration
@param times times
@param opts opts
*/
blink(duration: number, times: number, opts?: {progress?: Function; easing?: Function|string; }): Tween<T>;
/**
!#en
Add an action which calculate with absolute value
!#zh
添加一个对属性进行绝对值计算的 action
@param duration duration
@param props {scale: 2, position: cc.v3(100, 100, 100)}
@param opts opts
*/
to <OPTS extends Partial<{progress: Function, easing: Function|String}>> (duration: number, props: ConstructorType<T>, opts?: OPTS) : Tween<T>;
/**
!#en
Add an action which calculate with relative value
!#zh
添加一个对属性进行相对值计算的 action
@param duration duration
@param props {scale: 2, position: cc.v3(100, 100, 100)}
@param opts opts
*/
by <OPTS extends Partial<{progress: Function, easing: Function|String}>> (duration: number, props: ConstructorType<T>, opts?: OPTS) : Tween<T>;
/**
!#en
Directly set target properties
!#zh
直接设置 target 的属性
@param props props
*/
set (props: ConstructorType<T>) : Tween<T>;
/**
!#en
Add an delay action
!#zh
添加一个延时 action
@param duration duration
*/
delay(duration: number): Tween<T>;
/**
!#en
Add an callback action
!#zh
添加一个回调 action
@param callback callback
*/
call(callback: Function): Tween<T>;
/**
!#en
Add an hide action
!#zh
添加一个隐藏 action
*/
hide(): Tween<T>;
/**
!#en
Add an show action
!#zh
添加一个显示 action
*/
show(): Tween<T>;
/**
!#en
Add an removeSelf action
!#zh
添加一个移除自己 action
*/
removeSelf(): Tween<T>;
/**
!#en
Add an sequence action
!#zh
添加一个队列 action
@param action action
@param actions actions
*/
sequence(action: Action|Tween<T>, ...actions: (Action|Tween<T>)[]): Tween<T>;
/**
!#en
Add an parallel action
!#zh
添加一个并行 action
@param action action
@param actions actions
*/
parallel(action: Action|Tween<T>, ...actions: (Action|Tween<T>)[]): Tween<T>;
/**
!#en
Add an repeat action.
This action will integrate before actions to a sequence action as their parameters.
!#zh
添加一个重复 action,这个 action 会将前一个动作作为他的参数。
@param repeatTimes repeatTimes
@param action action
*/
repeat(repeatTimes: number, action?: Action|Tween<T>): Tween<T>;
/**
!#en
Add an repeat forever action
This action will integrate before actions to a sequence action as their parameters.
!#zh
添加一个永久重复 action,这个 action 会将前一个动作作为他的参数。
@param action action
*/
repeatForever(action?: Action|Tween<T>): Tween<T>;
/**
!#en
Add an reverse time action.
This action will integrate before actions to a sequence action as their parameters.
!#zh
添加一个倒置时间 action,这个 action 会将前一个动作作为他的参数。
@param action action
*/
reverseTime(action?: Action|Tween<T>): Tween<T>;
}
/** !#en Class for animation data handling.
!#zh 动画剪辑,用于存储动画数据。 */
export class AnimationClip extends Asset {
/** !#en Duration of this animation.
!#zh 动画的持续时间。 */
duration: number;
/** !#en FrameRate of this animation.
!#zh 动画的帧速率。 */
sample: number;
/** !#en Speed of this animation.
!#zh 动画的播放速度。 */
speed: number;
/** !#en WrapMode of this animation.
!#zh 动画的循环模式。 */
wrapMode: WrapMode;
/** !#en Curve data.
!#zh 曲线数据。 */
curveData: any;
/** !#en Event data.
!#zh 事件数据。 */
events: {frame: number, func: string, params: string[]}[];
/**
!#en Crate clip with a set of sprite frames
!#zh 使用一组序列帧图片来创建动画剪辑
@param spriteFrames spriteFrames
@param sample sample
@example
```js
var clip = cc.AnimationClip.createWithSpriteFrames(spriteFrames, 10);
```
*/
static createWithSpriteFrames(spriteFrames: SpriteFrame[], sample: number): AnimationClip;
}
/** !#en
The AnimationState gives full control over animation playback process.
In most cases the Animation Component is sufficient and easier to use. Use the AnimationState if you need full control.
!#zh
AnimationState 完全控制动画播放过程。<br/>
大多数情况下 动画组件 是足够和易于使用的。如果您需要更多的动画控制接口,请使用 AnimationState。 */
export class AnimationState extends Playable {
/**
@param clip clip
@param name name
*/
constructor(clip: AnimationClip, name?: string);
/** !#en The curves list.
!#zh 曲线列表。 */
curves: any[];
/** !#en The start delay which represents the number of seconds from an animation's start time to the start of
the active interval.
!#zh 延迟多少秒播放。 */
delay: number;
/** !#en The animation's iteration count property.
A real number greater than or equal to zero (including positive infinity) representing the number of times
to repeat the animation node.
Values less than zero and NaN values are treated as the value 1.0 for the purpose of timing model
calculations.
!#zh 迭代次数,指动画播放多少次后结束, normalize time。 如 2.5(2次半) */
repeatCount: number;
/** !#en The iteration duration of this animation in seconds. (length)
!#zh 单次动画的持续时间,秒。 */
duration: number;
/** !#en The animation's playback speed. 1 is normal playback speed.
!#zh 播放速率。 */
speed: number;
/** !#en
Wrapping mode of the playing animation.
Notice : dynamic change wrapMode will reset time and repeatCount property
!#zh
动画循环方式。
需要注意的是,动态修改 wrapMode 时,会重置 time 以及 repeatCount */
wrapMode: WrapMode;
/** !#en The current time of this animation in seconds.
!#zh 动画当前的时间,秒。 */
time: number;
/** !#en The clip that is being played by this animation state.
!#zh 此动画状态正在播放的剪辑。 */
clip: AnimationClip;
/** !#en The name of the playing animation.
!#zh 动画的名字 */
name: string;
}
/** !#en
This class provide easing methods for {{#crossLink "tween"}}{{/crossLink}} class.<br>
Demonstratio: https://easings.net/
!#zh
缓动函数类,为 {{#crossLink "Tween"}}{{/crossLink}} 提供缓动效果函数。<br>
函数效果演示: https://easings.net/ */
export class Easing {
/**
!#en Easing in with quadratic formula. From slow to fast.
!#zh 平方曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
quadIn(t: number): number;
/**
!#en Easing out with quadratic formula. From fast to slow.
!#zh 平方曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
quadOut(t: number): number;
/**
!#en Easing in and out with quadratic formula. From slow to fast, then back to slow.
!#zh 平方曲线缓入缓出函数。运动由慢到快再到慢。
@param t The current time as a percentage of the total time.
*/
quadInOut(t: number): number;
/**
!#en Easing in with cubic formula. From slow to fast.
!#zh 立方曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
cubicIn(t: number): number;
/**
!#en Easing out with cubic formula. From slow to fast.
!#zh 立方曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
cubicOut(t: number): number;
/**
!#en Easing in and out with cubic formula. From slow to fast, then back to slow.
!#zh 立方曲线缓入缓出函数。运动由慢到快再到慢。
@param t The current time as a percentage of the total time.
*/
cubicInOut(t: number): number;
/**
!#en Easing in with quartic formula. From slow to fast.
!#zh 四次方曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
quartIn(t: number): number;
/**
!#en Easing out with quartic formula. From fast to slow.
!#zh 四次方曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
quartOut(t: number): number;
/**
!#en Easing in and out with quartic formula. From slow to fast, then back to slow.
!#zh 四次方曲线缓入缓出函数。运动由慢到快再到慢。
@param t The current time as a percentage of the total time.
*/
quartInOut(t: number): number;
/**
!#en Easing in with quintic formula. From slow to fast.
!#zh 五次方曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
quintIn(t: number): number;
/**
!#en Easing out with quintic formula. From fast to slow.
!#zh 五次方曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
quintOut(t: number): number;
/**
!#en Easing in and out with quintic formula. From slow to fast, then back to slow.
!#zh 五次方曲线缓入缓出函数。运动由慢到快再到慢。
@param t The current time as a percentage of the total time.
*/
quintInOut(t: number): number;
/**
!#en Easing in and out with sine formula. From slow to fast.
!#zh 正弦曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
sineIn(t: number): number;
/**
!#en Easing in and out with sine formula. From fast to slow.
!#zh 正弦曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
sineOut(t: number): number;
/**
!#en Easing in and out with sine formula. From slow to fast, then back to slow.
!#zh 正弦曲线缓入缓出函数。运动由慢到快再到慢。
@param t The current time as a percentage of the total time.
*/
sineInOut(t: number): number;
/**
!#en Easing in and out with exponential formula. From slow to fast.
!#zh 指数曲线缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
expoIn(t: number): number;
/**
!#en Easing in and out with exponential formula. From fast to slow.
!#zh 指数曲线缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
expoOut(t: number): number;
/**
!#en Easing in and out with exponential formula. From slow to fast.
!#zh 指数曲线缓入和缓出函数。运动由慢到很快再到慢。
@param t The current time as a percentage of the total time, then back to slow.
*/
expoInOut(t: number): number;
/**
!#en Easing in and out with circular formula. From slow to fast.
!#zh 循环公式缓入函数。运动由慢到快。
@param t The current time as a percentage of the total time.
*/
circIn(t: number): number;
/**
!#en Easing in and out with circular formula. From fast to slow.
!#zh 循环公式缓出函数。运动由快到慢。
@param t The current time as a percentage of the total time.
*/
circOut(t: number): number;
/**
!#en Easing in and out with circular formula. From slow to fast.
!#zh 指数曲线缓入缓出函数。运动由慢到很快再到慢。
@param t The current time as a percentage of the total time, then back to slow.
*/
circInOut(t: number): number;
/**
!#en Easing in action with a spring oscillating effect.
!#zh 弹簧回震效果的缓入函数。
@param t The current time as a percentage of the total time.
*/
elasticIn(t: number): number;
/**
!#en Easing out action with a spring oscillating effect.
!#zh 弹簧回震效果的缓出函数。
@param t The current time as a percentage of the total time.
*/
elasticOut(t: number): number;
/**
!#en Easing in and out action with a spring oscillating effect.
!#zh 弹簧回震效果的缓入缓出函数。
@param t The current time as a percentage of the total time.
*/
elasticInOut(t: number): number;
/**
!#en Easing in action with "back up" behavior.
!#zh 回退效果的缓入函数。
@param t The current time as a percentage of the total time.
*/
backIn(t: number): number;
/**
!#en Easing out action with "back up" behavior.
!#zh 回退效果的缓出函数。
@param t The current time as a percentage of the total time.
*/
backOut(t: number): number;
/**
!#en Easing in and out action with "back up" behavior.
!#zh 回退效果的缓入缓出函数。
@param t The current time as a percentage of the total time.
*/
backInOut(t: number): number;
/**
!#en Easing in action with bouncing effect.
!#zh 弹跳效果的缓入函数。
@param t The current time as a percentage of the total time.
*/
bounceIn(t: number): number;
/**
!#en Easing out action with bouncing effect.
!#zh 弹跳效果的缓出函数。
@param t The current time as a percentage of the total time.
*/
bounceOut(t: number): number;
/**
!#en Easing in and out action with bouncing effect.
!#zh 弹跳效果的缓入缓出函数。
@param t The current time as a percentage of the total time.
*/
bounceInOut(t: number): number;
/**
!#en Target will run action with smooth effect.
!#zh 平滑效果函数。
@param t The current time as a percentage of the total time.
*/
smooth(t: number): number;
/**
!#en Target will run action with fade effect.
!#zh 渐褪效果函数。
@param t The current time as a percentage of the total time.
*/
fade(t: number): number;
}
/** undefined */
export class Playable {
/** !#en Is playing or paused in play mode?
!#zh 当前是否正在播放。 */
isPlaying: boolean;
/** !#en Is currently paused? This can be true even if in edit mode(isPlaying == false).
!#zh 当前是否正在暂停 */
isPaused: boolean;
/**
!#en Play this animation.
!#zh 播放动画。
*/
play(): void;
/**
!#en Stop this animation.
!#zh 停止动画播放。
*/
stop(): void;
/**
!#en Pause this animation.
!#zh 暂停动画。
*/
pause(): void;
/**
!#en Resume this animation.
!#zh 重新播放动画。
*/
resume(): void;
/**
!#en Perform a single frame step.
!#zh 执行一帧动画。
*/
step(): void;
}
/** !#en Specifies how time is treated when it is outside of the keyframe range of an Animation.
!#zh 动画使用的循环模式。 */
export enum WrapMode {
Default = 0,
Normal = 0,
Reverse = 0,
Loop = 0,
LoopReverse = 0,
PingPong = 0,
PingPongReverse = 0,
}
/** !#en An object to boot the game.
!#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */
export class debug {
/**
!#en Gets error message with the error id and possible parameters.
!#zh 通过 error id 和必要的参数来获取错误信息。
@param errorId errorId
@param param param
*/
static getError(errorId: string, param?: any): string;
/**
!#en Returns whether or not to display the FPS informations.
!#zh 是否显示 FPS 信息。
*/
static isDisplayStats(): boolean;
/**
!#en Sets whether display the FPS on the bottom-left corner.
!#zh 设置是否在左下角显示 FPS。
@param displayStats displayStats
*/
static setDisplayStats(displayStats: boolean): void;
}
/** !#en
<p>
ATTENTION: USE cc.director INSTEAD OF cc.Director.<br/>
cc.director is a singleton object which manage your game's logic flow.<br/>
Since the cc.director is a singleton, you don't need to call any constructor or create functions,<br/>
the standard way to use it is by calling:<br/>
- cc.director.methodName(); <br/>
It creates and handle the main Window and manages how and when to execute the Scenes.<br/>
<br/>
The cc.director is also responsible for:<br/>
- initializing the OpenGL context<br/>
- setting the OpenGL pixel format (default on is RGB565)<br/>
- setting the OpenGL buffer depth (default on is 0-bit)<br/>
- setting the color for clear screen (default one is BLACK)<br/>
- setting the projection (default one is 3D)<br/>
- setting the orientation (default one is Portrait)<br/>
<br/>
<br/>
The cc.director also sets the default OpenGL context:<br/>
- GL_TEXTURE_2D is enabled<br/>
- GL_VERTEX_ARRAY is enabled<br/>
- GL_COLOR_ARRAY is enabled<br/>
- GL_TEXTURE_COORD_ARRAY is enabled<br/>
</p>
<p>
cc.director also synchronizes timers with the refresh rate of the display.<br/>
Features and Limitations:<br/>
- Scheduled timers & drawing are synchronizes with the refresh rate of the display<br/>
- Only supports animation intervals of 1/60 1/30 & 1/15<br/>
</p>
!#zh
<p>
注意:用 cc.director 代替 cc.Director。<br/>
cc.director 一个管理你的游戏的逻辑流程的单例对象。<br/>
由于 cc.director 是一个单例,你不需要调用任何构造函数或创建函数,<br/>
使用它的标准方法是通过调用:<br/>
- cc.director.methodName();
<br/>
它创建和处理主窗口并且管理什么时候执行场景。<br/>
<br/>
cc.director 还负责:<br/>
- 初始化 OpenGL 环境。<br/>
- 设置OpenGL像素格式。(默认是 RGB565)<br/>
- 设置OpenGL缓冲区深度 (默认是 0-bit)<br/>
- 设置空白场景的颜色 (默认是 黑色)<br/>
- 设置投影 (默认是 3D)<br/>
- 设置方向 (默认是 Portrait)<br/>
<br/>
cc.director 设置了 OpenGL 默认环境 <br/>
- GL_TEXTURE_2D 启用。<br/>
- GL_VERTEX_ARRAY 启用。<br/>
- GL_COLOR_ARRAY 启用。<br/>
- GL_TEXTURE_COORD_ARRAY 启用。<br/>
</p>
<p>
cc.director 也同步定时器与显示器的刷新速率。
<br/>
特点和局限性: <br/>
- 将计时器 & 渲染与显示器的刷新频率同步。<br/>
- 只支持动画的间隔 1/60 1/30 & 1/15。<br/>
</p> */
export class Director extends EventTarget {
/**
!#en
Converts a view coordinate to an WebGL coordinate<br/>
Useful to convert (multi) touches coordinates to the current layout (portrait or landscape)<br/>
Implementation can be found in CCDirectorWebGL.
!#zh 将触摸点的屏幕坐标转换为 WebGL View 下的坐标。
@param uiPoint uiPoint
*/
convertToGL(uiPoint: Vec2): Vec2;
/**
!#en
Converts an OpenGL coordinate to a view coordinate<br/>
Useful to convert node points to window points for calls such as glScissor<br/>
Implementation can be found in CCDirectorWebGL.
!#zh 将触摸点的 WebGL View 坐标转换为屏幕坐标。
@param glPoint glPoint
*/
convertToUI(glPoint: Vec2): Vec2;
/**
End the life of director in the next frame
*/
end(): void;
/**
!#en
Returns the size of the WebGL view in points.<br/>
It takes into account any possible rotation (device orientation) of the window.
!#zh 获取视图的大小,以点为单位。
*/
getWinSize(): Size;
/**
!#en
Returns the size of the OpenGL view in pixels.<br/>
It takes into account any possible rotation (device orientation) of the window.<br/>
On Mac winSize and winSizeInPixels return the same value.
(The pixel here refers to the resource resolution. If you want to get the physics resolution of device, you need to use cc.view.getFrameSize())
!#zh
获取视图大小,以像素为单位(这里的像素指的是资源分辨率。
如果要获取屏幕物理分辨率,需要用 cc.view.getFrameSize())
*/
getWinSizeInPixels(): Size;
/**
!#en Pause the director's ticker, only involve the game logic execution.
It won't pause the rendering process nor the event manager.
If you want to pause the entier game including rendering, audio and event,
please use {{#crossLink "Game.pause"}}cc.game.pause{{/crossLink}}
!#zh 暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。
如果想要更彻底得暂停游戏,包含渲染,音频和事件,请使用 {{#crossLink "Game.pause"}}cc.game.pause{{/crossLink}}。
*/
pause(): void;
/**
!#en
Run a scene. Replaces the running scene with a new one or enter the first scene.<br/>
The new scene will be launched immediately.
!#zh 立刻切换指定场景。
@param scene The need run scene.
@param onBeforeLoadScene The function invoked at the scene before loading.
@param onLaunched The function invoked at the scene after launch.
*/
runSceneImmediate(scene: Scene|SceneAsset, onBeforeLoadScene?: Function, onLaunched?: Function): void;
/**
!#en
Run a scene. Replaces the running scene with a new one or enter the first scene.
The new scene will be launched at the end of the current frame.
!#zh 运行指定场景。
@param scene The need run scene.
@param onBeforeLoadScene The function invoked at the scene before loading.
@param onLaunched The function invoked at the scene after launch.
*/
runScene(scene: Scene|SceneAsset, onBeforeLoadScene?: Function, onLaunched?: Function): void;
/**
!#en Loads the scene by its name.
!#zh 通过场景名称进行加载场景。
@param sceneName The name of the scene to load.
@param onLaunched callback, will be called after scene launched.
*/
loadScene(sceneName: string, onLaunched?: Function): boolean;
/**
!#en
Preloads the scene to reduces loading time. You can call this method at any time you want.
After calling this method, you still need to launch the scene by `cc.director.loadScene`.
It will be totally fine to call `cc.director.loadScene` at any time even if the preloading is not
yet finished, the scene will be launched after loaded automatically.
!#zh 预加载场景,你可以在任何时候调用这个方法。
调用完后,你仍然需要通过 `cc.director.loadScene` 来启动场景,因为这个方法不会执行场景加载操作。
就算预加载还没完成,你也可以直接调用 `cc.director.loadScene`,加载完成后场景就会启动。
@param sceneName The name of the scene to preload.
@param onProgress callback, will be called when the load progression change.
@param onLoaded callback, will be called after scene loaded.
*/
preloadScene(sceneName: string, onProgress?: (completedCount: number, totalCount: number, item: any) => void, onLoaded?: (error: Error) => void): void;
/**
!#en Resume game logic execution after pause, if the current scene is not paused, nothing will happen.
!#zh 恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。
*/
resume(): void;
/**
!#en
Enables or disables WebGL depth test.<br/>
Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js
!#zh 启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。
@param on on
*/
setDepthTest(on: boolean): void;
/**
!#en
Set color for clear screen.<br/>
(Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js)
!#zh
设置场景的默认擦除颜色。<br/>
支持全透明,但不支持透明度为中间值。要支持全透明需手工开启 cc.macro.ENABLE_TRANSPARENT_CANVAS。
@param clearColor clearColor
*/
setClearColor(clearColor: Color): void;
/**
!#en Returns current logic Scene.
!#zh 获取当前逻辑场景。
@example
```js
// This will help you to get the Canvas node in scene
cc.director.getScene().getChildByName('Canvas');
```
*/
getScene(): Scene;
/**
!#en Returns the FPS value. Please use {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}} to control animation interval.
!#zh 获取单位帧执行时间。请使用 {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}} 来控制游戏帧率。
*/
getAnimationInterval(): number;
/**
Sets animation interval, this doesn't control the main loop.
To control the game's frame rate overall, please use {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}}
@param value The animation interval desired.
*/
setAnimationInterval(value: number): void;
/**
!#en Returns the delta time since last frame.
!#zh 获取上一帧的增量时间。
*/
getDeltaTime(): number;
/**
!#en Returns the total passed time since game start, unit: ms
!#zh 获取从游戏开始到现在总共经过的时间,单位为 ms
*/
getTotalTime(): number;
/**
!#en Returns how many frames were called since the director started.
!#zh 获取 director 启动以来游戏运行的总帧数。
*/
getTotalFrames(): number;
/**
!#en Returns whether or not the Director is paused.
!#zh 是否处于暂停状态。
*/
isPaused(): boolean;
/**
!#en Returns the cc.Scheduler associated with this director.
!#zh 获取和 director 相关联的 cc.Scheduler。
*/
getScheduler(): Scheduler;
/**
!#en Sets the cc.Scheduler associated with this director.
!#zh 设置和 director 相关联的 cc.Scheduler。
@param scheduler scheduler
*/
setScheduler(scheduler: Scheduler): void;
/**
!#en Returns the cc.ActionManager associated with this director.
!#zh 获取和 director 相关联的 cc.ActionManager(动作管理器)。
*/
getActionManager(): ActionManager;
/**
!#en Sets the cc.ActionManager associated with this director.
!#zh 设置和 director 相关联的 cc.ActionManager(动作管理器)。
@param actionManager actionManager
*/
setActionManager(actionManager: ActionManager): void;
/**
!#en Returns the cc.CollisionManager associated with this director.
!#zh 获取和 director 相关联的 cc.CollisionManager (碰撞管理器)。
*/
getCollisionManager(): CollisionManager;
/**
!#en Returns the cc.PhysicsManager associated with this director.
!#zh 返回与 director 相关联的 cc.PhysicsManager (物理管理器)。
*/
getPhysicsManager(): PhysicsManager;
/**
!#en Returns the cc.Physics3DManager associated with this director.
!#zh 返回与 director 相关联的 cc.Physics3DManager (物理管理器)。
*/
getPhysics3DManager(): Physics3DManager;
/** !#en The event projection changed of cc.Director. This event will not get triggered since v2.0
!#zh cc.Director 投影变化的事件。从 v2.0 开始这个事件不会再被触发 */
static EVENT_PROJECTION_CHANGED: string;
/** !#en The event which will be triggered before loading a new scene.
!#zh 加载新场景之前所触发的事件。 */
static EVENT_BEFORE_SCENE_LOADING: string;
/** !#en The event which will be triggered before launching a new scene.
!#zh 运行新场景之前所触发的事件。 */
static EVENT_BEFORE_SCENE_LAUNCH: string;
/** !#en The event which will be triggered after launching a new scene.
!#zh 运行新场景之后所触发的事件。 */
static EVENT_AFTER_SCENE_LAUNCH: string;
/** !#en The event which will be triggered at the beginning of every frame.
!#zh 每个帧的开始时所触发的事件。 */
static EVENT_BEFORE_UPDATE: string;
/** !#en The event which will be triggered after engine and components update logic.
!#zh 将在引擎和组件 “update” 逻辑之后所触发的事件。 */
static EVENT_AFTER_UPDATE: string;
/** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead
!#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW */
static EVENT_BEFORE_VISIT: string;
/** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead
!#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW */
static EVENT_AFTER_VISIT: string;
/** !#en The event which will be triggered before the rendering process.
!#zh 渲染过程之前所触发的事件。 */
static EVENT_BEFORE_DRAW: string;
/** !#en The event which will be triggered after the rendering process.
!#zh 渲染过程之后所触发的事件。 */
static EVENT_AFTER_DRAW: string;
/** Constant for 2D projection (orthogonal projection) */
static PROJECTION_2D: number;
/** Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500. */
static PROJECTION_3D: number;
/** Constant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate. */
static PROJECTION_CUSTOM: number;
/** Constant for default projection of cc.Director, default projection is 2D projection */
static PROJECTION_DEFAULT: number;
}
/** !#en An object to boot the game.
!#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */
export class Game extends EventTarget {
/** !#en Event triggered when game hide to background.
Please note that this event is not 100% guaranteed to be fired on Web platform,
on native platforms, it corresponds to enter background event, os status bar or notification center may not trigger this event.
!#zh 游戏进入后台时触发的事件。
请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。
在原生平台,它对应的是应用被切换到后台事件,下拉菜单和上拉状态栏等不一定会触发这个事件,这取决于系统行为。 */
EVENT_HIDE: string;
/** !#en Event triggered when game back to foreground
Please note that this event is not 100% guaranteed to be fired on Web platform,
on native platforms, it corresponds to enter foreground event.
!#zh 游戏进入前台运行时触发的事件。
请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。
在原生平台,它对应的是应用被切换到前台事件。 */
EVENT_SHOW: string;
/** !#en Event triggered when game restart
!#zh 调用restart后,触发事件。 */
EVENT_RESTART: string;
/** Event triggered after game inited, at this point all engine objects and game scripts are loaded */
EVENT_GAME_INITED: string;
/** Event triggered after engine inited, at this point you will be able to use all engine classes.
It was defined as EVENT_RENDERER_INITED in cocos creator v1.x and renamed in v2.0 */
EVENT_ENGINE_INITED: string;
/** Web Canvas 2d API as renderer backend */
RENDER_TYPE_CANVAS: number;
/** WebGL API as renderer backend */
RENDER_TYPE_WEBGL: number;
/** OpenGL API as renderer backend */
RENDER_TYPE_OPENGL: number;
/** !#en The outer frame of the game canvas, parent of game container.
!#zh 游戏画布的外框,container 的父容器。 */
frame: any;
/** !#en The container of game canvas.
!#zh 游戏画布的容器。 */
container: HTMLDivElement;
/** !#en The canvas of the game.
!#zh 游戏的画布。 */
canvas: HTMLCanvasElement;
/** !#en The renderer backend of the game.
!#zh 游戏的渲染器类型。 */
renderType: number;
/** !#en
The current game configuration, including:<br/>
1. debugMode<br/>
"debugMode" possible values :<br/>
0 - No message will be printed. <br/>
1 - cc.error, cc.assert, cc.warn, cc.log will print in console. <br/>
2 - cc.error, cc.assert, cc.warn will print in console. <br/>
3 - cc.error, cc.assert will print in console. <br/>
4 - cc.error, cc.assert, cc.warn, cc.log will print on canvas, available only on web.<br/>
5 - cc.error, cc.assert, cc.warn will print on canvas, available only on web. <br/>
6 - cc.error, cc.assert will print on canvas, available only on web. <br/>
2. showFPS<br/>
Left bottom corner fps information will show when "showFPS" equals true, otherwise it will be hide.<br/>
3. exposeClassName<br/>
Expose class name to chrome debug tools, the class intantiate performance is a little bit slower when exposed.<br/>
4. frameRate<br/>
"frameRate" set the wanted frame rate for your game, but the real fps depends on your game implementation and the running environment.<br/>
5. id<br/>
"gameCanvas" sets the id of your canvas element on the web page, it's useful only on web.<br/>
6. renderMode<br/>
"renderMode" sets the renderer type, only useful on web :<br/>
0 - Automatically chosen by engine<br/>
1 - Forced to use canvas renderer<br/>
2 - Forced to use WebGL renderer, but this will be ignored on mobile browsers<br/>
<br/>
Please DO NOT modify this object directly, it won't have any effect.<br/>
!#zh
当前的游戏配置,包括: <br/>
1. debugMode(debug 模式,但是在浏览器中这个选项会被忽略) <br/>
"debugMode" 各种设置选项的意义。 <br/>
0 - 没有消息被打印出来。 <br/>
1 - cc.error,cc.assert,cc.warn,cc.log 将打印在 console 中。 <br/>
2 - cc.error,cc.assert,cc.warn 将打印在 console 中。 <br/>
3 - cc.error,cc.assert 将打印在 console 中。 <br/>
4 - cc.error,cc.assert,cc.warn,cc.log 将打印在 canvas 中(仅适用于 web 端)。 <br/>
5 - cc.error,cc.assert,cc.warn 将打印在 canvas 中(仅适用于 web 端)。 <br/>
6 - cc.error,cc.assert 将打印在 canvas 中(仅适用于 web 端)。 <br/>
2. showFPS(显示 FPS) <br/>
当 showFPS 为 true 的时候界面的左下角将显示 fps 的信息,否则被隐藏。 <br/>
3. exposeClassName <br/>
暴露类名让 Chrome DevTools 可以识别,如果开启会稍稍降低类的创建过程的性能,但对对象构造没有影响。 <br/>
4. frameRate (帧率) <br/>
“frameRate” 设置想要的帧率你的游戏,但真正的FPS取决于你的游戏实现和运行环境。 <br/>
5. id <br/>
"gameCanvas" Web 页面上的 Canvas Element ID,仅适用于 web 端。 <br/>
6. renderMode(渲染模式) <br/>
“renderMode” 设置渲染器类型,仅适用于 web 端: <br/>
0 - 通过引擎自动选择。 <br/>
1 - 强制使用 canvas 渲染。
2 - 强制使用 WebGL 渲染,但是在部分 Android 浏览器中这个选项会被忽略。 <br/>
<br/>
注意:请不要直接修改这个对象,它不会有任何效果。 */
config: any;
/**
!#en Callback when the scripts of engine have been load.
!#zh 当引擎完成启动后的回调函数。
*/
onStart(): void;
/**
!#en Set frame rate of game.
!#zh 设置游戏帧率。
@param frameRate frameRate
*/
setFrameRate(frameRate: number): void;
/**
!#en Get frame rate set for the game, it doesn't represent the real frame rate.
!#zh 获取设置的游戏帧率(不等同于实际帧率)。
*/
getFrameRate(): number;
/**
!#en Run the game frame by frame.
!#zh 执行一帧游戏循环。
*/
step(): void;
/**
!#en Pause the game main loop. This will pause:
game logic execution, rendering process, event manager, background music and all audio effects.
This is different with cc.director.pause which only pause the game logic execution.
!#zh 暂停游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。这点和只暂停游戏逻辑的 cc.director.pause 不同。
*/
pause(): void;
/**
!#en Resume the game from pause. This will resume:
game logic execution, rendering process, event manager, background music and all audio effects.
!#zh 恢复游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。
*/
resume(): void;
/**
!#en Check whether the game is paused.
!#zh 判断游戏是否暂停。
*/
isPaused(): boolean;
/**
!#en Restart game.
!#zh 重新开始游戏
*/
restart(): void;
/**
!#en End game, it will close the game window
!#zh 退出游戏
*/
end(): void;
/**
!#en
Register an callback of a specific event type on the game object.
This type of event should be triggered via `emit`.
!#zh
注册 game 的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Register an callback of a specific event type on the game object,
the callback will remove itself after the first time it is triggered.
!#zh
注册 game 的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en Prepare game.
!#zh 准备引擎,请不要直接调用这个函数。
@param cb cb
*/
prepare(cb: Function): void;
/**
!#en Run game with configuration object and onStart function.
!#zh 运行游戏,并且指定引擎配置和 onStart 的回调。
@param config Pass configuration object or onStart function
@param onStart function to be executed after game initialized
*/
run(config: any, onStart: Function): void;
/**
!#en
Add a persistent root node to the game, the persistent node won't be destroyed during scene transition.<br/>
The target node must be placed in the root level of hierarchy, otherwise this API won't have any effect.
!#zh
声明常驻根节点,该节点不会被在场景切换中被销毁。<br/>
目标节点必须位于为层级的根节点,否则无效。
@param node The node to be made persistent
*/
addPersistRootNode(node: Node): void;
/**
!#en Remove a persistent root node.
!#zh 取消常驻根节点。
@param node The node to be removed from persistent node list
*/
removePersistRootNode(node: Node): void;
/**
!#en Check whether the node is a persistent root node.
!#zh 检查节点是否是常驻根节点。
@param node The node to be checked
*/
isPersistRootNode(node: Node): boolean;
}
/** !#en
Class of all entities in Cocos Creator scenes.<br/>
For events supported by Node, please refer to {{#crossLink "Node.EventType"}}{{/crossLink}}
!#zh
Cocos Creator 场景中的所有节点类。<br/>
支持的节点事件,请参阅 {{#crossLink "Node.EventType"}}{{/crossLink}}。 */
export class Node extends _BaseNode {
/** !#en
Group index of node.<br/>
Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.<br/>
!#zh
节点的分组索引。<br/>
节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。<br/> */
groupIndex: number;
/** !#en
Group of node.<br/>
Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.<br/>
!#zh
节点的分组。<br/>
节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。<br/> */
group: string;
/** !#en The position (x, y) of the node in its parent's coordinates.
!#zh 节点在父节点坐标系中的位置(x, y)。 */
position: Vec3;
/** !#en x axis position of node.
!#zh 节点 X 轴坐标。 */
x: number;
/** !#en y axis position of node.
!#zh 节点 Y 轴坐标。 */
y: number;
/** !#en z axis position of node.
!#zh 节点 Z 轴坐标。 */
z: number;
/** !#en Rotation of node.
!#zh 该节点旋转角度。 */
rotation: number;
/** !#en
Angle of node, the positive value is anti-clockwise direction.
!#zh
该节点的旋转角度,正值为逆时针方向。 */
angle: number;
/** !#en The rotation as Euler angles in degrees, used in 3D node.
!#zh 该节点的欧拉角度,用于 3D 节点。 */
eulerAngles: Vec3;
/** !#en Rotation on x axis.
!#zh 该节点 X 轴旋转角度。 */
rotationX: number;
/** !#en Rotation on y axis.
!#zh 该节点 Y 轴旋转角度。 */
rotationY: number;
/** !#en The local scale relative to the parent.
!#zh 节点相对父节点的缩放。 */
scale: number;
/** !#en Scale on x axis.
!#zh 节点 X 轴缩放。 */
scaleX: number;
/** !#en Scale on y axis.
!#zh 节点 Y 轴缩放。 */
scaleY: number;
/** !#en Scale on z axis.
!#zh 节点 Z 轴缩放。 */
scaleZ: number;
/** !#en Skew x
!#zh 该节点 X 轴倾斜角度。 */
skewX: number;
/** !#en Skew y
!#zh 该节点 Y 轴倾斜角度。 */
skewY: number;
/** !#en Opacity of node, default value is 255.
!#zh 节点透明度,默认值为 255。 */
opacity: number;
/** !#en Color of node, default value is white: (255, 255, 255).
!#zh 节点颜色。默认为白色,数值为:(255,255,255)。 */
color: Color;
/** !#en Anchor point's position on x axis.
!#zh 节点 X 轴锚点位置。 */
anchorX: number;
/** !#en Anchor point's position on y axis.
!#zh 节点 Y 轴锚点位置。 */
anchorY: number;
/** !#en Width of node.
!#zh 节点宽度。 */
width: number;
/** !#en Height of node.
!#zh 节点高度。 */
height: number;
/** !#en zIndex is the 'key' used to sort the node relative to its siblings.<br/>
The value of zIndex should be in the range between cc.macro.MIN_ZINDEX and cc.macro.MAX_ZINDEX.<br/>
The Node's parent will sort all its children based on the zIndex value and the arrival order.<br/>
Nodes with greater zIndex will be sorted after nodes with smaller zIndex.<br/>
If two nodes have the same zIndex, then the node that was added first to the children's array will be in front of the other node in the array.<br/>
Node's order in children list will affect its rendering order. Parent is always rendering before all children.
!#zh zIndex 是用来对节点进行排序的关键属性,它决定一个节点在兄弟节点之间的位置。<br/>
zIndex 的取值应该介于 cc.macro.MIN_ZINDEX 和 cc.macro.MAX_ZINDEX 之间
父节点主要根据节点的 zIndex 和添加次序来排序,拥有更高 zIndex 的节点将被排在后面,如果两个节点的 zIndex 一致,先添加的节点会稳定排在另一个节点之前。<br/>
节点在 children 中的顺序决定了其渲染顺序。父节点永远在所有子节点之前被渲染 */
zIndex: number;
/** !#en
Switch 2D/3D node. The 2D nodes will run faster.
!#zh
切换 2D/3D 节点,2D 节点会有更高的运行效率 */
is3DNode: boolean;
/** !#en Returns a normalized vector representing the up direction (Y axis) of the node in world space.
!#zh 获取节点正上方(y 轴)面对的方向,返回值为世界坐标系下的归一化向量 */
up: Vec3;
/** !#en Returns a normalized vector representing the right direction (X axis) of the node in world space.
!#zh 获取节点正右方(x 轴)面对的方向,返回值为世界坐标系下的归一化向量 */
right: Vec3;
/** !#en Returns a normalized vector representing the forward direction (Z axis) of the node in world space.
!#zh 获取节点正前方(z 轴)面对的方向,返回值为世界坐标系下的归一化向量 */
forward: Vec3;
/**
@param name name
*/
constructor(name?: string);
/**
!#en
Register a callback of a specific event type on Node.<br/>
Use this method to register touch or mouse event permit propagation based on scene graph,<br/>
These kinds of event are triggered with dispatchEvent, the dispatch process has three steps:<br/>
1. Capturing phase: dispatch in capture targets (`_getCapturingTargets`), e.g. parents in node tree, from root to the real target<br/>
2. At target phase: dispatch to the listeners of the real target<br/>
3. Bubbling phase: dispatch in bubble targets (`_getBubblingTargets`), e.g. parents in node tree, from the real target to root<br/>
In any moment of the dispatching process, it can be stopped via `event.stopPropagation()` or `event.stopPropagationImmidiate()`.<br/>
It's the recommended way to register touch/mouse event for Node,<br/>
please do not use cc.eventManager directly for Node.<br/>
You can also register custom event and use `emit` to trigger custom event on Node.<br/>
For such events, there won't be capturing and bubbling phase, your event will be dispatched directly to its listeners registered on the same node.<br/>
You can also pass event callback parameters with `emit` by passing parameters after `type`.
!#zh
在节点上注册指定类型的回调函数,也可以设置 target 用于绑定响应函数的 this 对象。<br/>
鼠标或触摸事件会被系统调用 dispatchEvent 方法触发,触发的过程包含三个阶段:<br/>
1. 捕获阶段:派发事件给捕获目标(通过 `_getCapturingTargets` 获取),比如,节点树中注册了捕获阶段的父节点,从根节点开始派发直到目标节点。<br/>
2. 目标阶段:派发给目标节点的监听器。<br/>
3. 冒泡阶段:派发事件给冒泡目标(通过 `_getBubblingTargets` 获取),比如,节点树中注册了冒泡阶段的父节点,从目标节点开始派发直到根节点。<br/>
同时您可以将事件派发到父节点或者通过调用 stopPropagation 拦截它。<br/>
推荐使用这种方式来监听节点上的触摸或鼠标事件,请不要在节点上直接使用 cc.eventManager。<br/>
你也可以注册自定义事件到节点上,并通过 emit 方法触发此类事件,对于这类事件,不会发生捕获冒泡阶段,只会直接派发给注册在该节点上的监听器<br/>
你可以通过在 emit 方法调用时在 type 之后传递额外的参数作为事件回调的参数列表
@param type A string representing the event type to listen for.<br>See {{#crossLink "Node/EventTyupe/POSITION_CHANGED"}}Node Events{{/crossLink}} for all builtin events.
@param callback The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.
@example
```js
this.node.on(cc.Node.EventType.TOUCH_START, this.memberFunction, this); // if "this" is component and the "memberFunction" declared in CCClass.
node.on(cc.Node.EventType.TOUCH_START, callback, this);
node.on(cc.Node.EventType.TOUCH_MOVE, callback, this);
node.on(cc.Node.EventType.TOUCH_END, callback, this);
node.on(cc.Node.EventType.TOUCH_CANCEL, callback, this);
node.on(cc.Node.EventType.ANCHOR_CHANGED, callback);
node.on(cc.Node.EventType.COLOR_CHANGED, callback);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Register an callback of a specific event type on the Node,
the callback will remove itself after the first time it is triggered.
!#zh
注册节点的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
node.once(cc.Node.EventType.ANCHOR_CHANGED, callback);
```
*/
once<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the callback previously registered with the same type, callback, target and or useCapture.
This method is merely an alias to removeEventListener.
!#zh 删除之前与同类型,回调,目标或 useCapture 注册的回调。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.
@example
```js
this.node.off(cc.Node.EventType.TOUCH_START, this.memberFunction, this);
node.off(cc.Node.EventType.TOUCH_START, callback, this.node);
node.off(cc.Node.EventType.ANCHOR_CHANGED, callback, this);
```
*/
off(type: string, callback?: Function, target?: any, useCapture?: boolean): void;
/**
!#en Removes all callbacks previously registered with the same target.
!#zh 移除目标上的所有注册事件。
@param target The target to be searched for all related callbacks
@example
```js
node.targetOff(target);
```
*/
targetOff(target: any): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Trigger an event directly with the event name and necessary arguments.
!#zh
通过事件名发送自定义事件
@param type event type
@param arg1 First argument in callback
@param arg2 Second argument in callback
@param arg3 Third argument in callback
@param arg4 Fourth argument in callback
@param arg5 Fifth argument in callback
@example
```js
eventTarget.emit('fire', event);
eventTarget.emit('fire', message, emitter);
```
*/
emit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;
/**
!#en
Dispatches an event into the event flow.
The event target is the EventTarget object upon which the dispatchEvent() method is called.
!#zh 分发事件到事件流中。
@param event The Event object that is dispatched into the event flow
*/
dispatchEvent(event: Event): void;
/**
!#en Pause node related system events registered with the current Node. Node system events includes touch and mouse events.
If recursive is set to true, then this API will pause the node system events for the node and all nodes in its sub node tree.
Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/
!#zh 暂停当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。
如果传递 recursive 为 true,那么这个 API 将暂停本节点和它的子树上所有节点的节点系统事件。
参考:https://www.cocos.com/docs/creator/scripting/internal-events.html
@param recursive Whether to pause node system events on the sub node tree.
@example
```js
node.pauseSystemEvents(true);
```
*/
pauseSystemEvents(recursive: boolean): void;
/**
!#en Resume node related system events registered with the current Node. Node system events includes touch and mouse events.
If recursive is set to true, then this API will resume the node system events for the node and all nodes in its sub node tree.
Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/
!#zh 恢复当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。
如果传递 recursive 为 true,那么这个 API 将恢复本节点和它的子树上所有节点的节点系统事件。
参考:https://www.cocos.com/docs/creator/scripting/internal-events.html
@param recursive Whether to resume node system events on the sub node tree.
@example
```js
node.resumeSystemEvents(true);
```
*/
resumeSystemEvents(recursive: boolean): void;
/**
!#en
Executes an action, and returns the action that is executed.<br/>
The node becomes the action's target. Refer to cc.Action's getTarget() <br/>
Calling runAction while the node is not active won't have any effect. <br/>
Note:You shouldn't modify the action after runAction, that won't take any effect.<br/>
if you want to modify, when you define action plus.
!#zh
执行并返回该执行的动作。该节点将会变成动作的目标。<br/>
调用 runAction 时,节点自身处于不激活状态将不会有任何效果。<br/>
注意:你不应该修改 runAction 后的动作,将无法发挥作用,如果想进行修改,请在定义 action 时加入。
@param action action
@example
```js
var action = cc.scaleTo(0.2, 1, 0.6);
node.runAction(action);
node.runAction(action).repeatForever(); // fail
node.runAction(action.repeatForever()); // right
```
*/
runAction(action: Action): Action;
/**
!#en Pause all actions running on the current node. Equals to `cc.director.getActionManager().pauseTarget(node)`.
!#zh 暂停本节点上所有正在运行的动作。和 `cc.director.getActionManager().pauseTarget(node);` 等价。
@example
```js
node.pauseAllActions();
```
*/
pauseAllActions(): void;
/**
!#en Resume all paused actions on the current node. Equals to `cc.director.getActionManager().resumeTarget(node)`.
!#zh 恢复运行本节点上所有暂停的动作。和 `cc.director.getActionManager().resumeTarget(node);` 等价。
@example
```js
node.resumeAllActions();
```
*/
resumeAllActions(): void;
/**
!#en Stops and removes all actions from the running action list .
!#zh 停止并且移除所有正在运行的动作列表。
@example
```js
node.stopAllActions();
```
*/
stopAllActions(): void;
/**
!#en Stops and removes an action from the running action list.
!#zh 停止并移除指定的动作。
@param action An action object to be removed.
@example
```js
var action = cc.scaleTo(0.2, 1, 0.6);
node.stopAction(action);
```
*/
stopAction(action: Action): void;
/**
!#en Removes an action from the running action list by its tag.
!#zh 停止并且移除指定标签的动作。
@param tag A tag that indicates the action to be removed.
@example
```js
node.stopActionByTag(1);
```
*/
stopActionByTag(tag: number): void;
/**
!#en Returns an action from the running action list by its tag.
!#zh 通过标签获取指定动作。
@param tag tag
@example
```js
var action = node.getActionByTag(1);
```
*/
getActionByTag(tag: number): Action;
/**
!#en
Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).<br/>
Composable actions are counted as 1 action. Example:<br/>
If you are running 1 Sequence of 7 actions, it will return 1. <br/>
If you are running 7 Sequences of 2 actions, it will return 7.</p>
!#zh
获取运行着的动作加上正在调度运行的动作的总数。<br/>
例如:<br/>
- 如果你正在运行 7 个动作中的 1 个 Sequence,它将返回 1。<br/>
- 如果你正在运行 2 个动作中的 7 个 Sequence,它将返回 7。<br/>
@example
```js
var count = node.getNumberOfRunningActions();
cc.log("Running Action Count: " + count);
```
*/
getNumberOfRunningActions(): number;
/**
!#en
Returns a copy of the position (x, y, z) of the node in its parent's coordinates.
You can pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.
!#zh
获取节点在父节点坐标系中的位置(x, y, z)。
你可以传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。
@param out The return value to receive position
@example
```js
cc.log("Node Position: " + node.getPosition());
```
*/
getPosition(out?: Vec2|Vec3): Vec2;
/**
!#en
Sets the position (x, y, z) of the node in its parent's coordinates.<br/>
Usually we use cc.v2(x, y) to compose cc.Vec2 object,<br/>
and passing two numbers (x, y) is more efficient than passing cc.Vec2 object.
For 3D node we can use cc.v3(x, y, z) to compose cc.Vec3 object,<br/>
and passing three numbers (x, y, z) is more efficient than passing cc.Vec3 object.
!#zh
设置节点在父节点坐标系中的位置。<br/>
可以通过下面的方式设置坐标点:<br/>
1. 传入 2 个数值 x, y。<br/>
2. 传入 cc.v2(x, y) 类型为 cc.Vec2 的对象。
3. 对于 3D 节点可以传入 3 个数值 x, y, z。<br/>
4. 对于 3D 节点可以传入 cc.v3(x, y, z) 类型为 cc.Vec3 的对象。
@param newPosOrX X coordinate for position or the position (x, y, z) of the node in coordinates
@param y Y coordinate for position
@param z Z coordinate for position
*/
setPosition(newPosOrX: Vec2|Vec3|number, y?: number, z?: number): void;
/**
!#en
Returns the scale factor of the node.
Need pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.
!#zh 获取节点的缩放,需要传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。
@param out out
@example
```js
cc.log("Node Scale: " + node.getScale(cc.v3()));
```
*/
getScale(out: Vec2|Vec3): Vec2;
/**
!#en
Sets the scale of axis in local coordinates of the node.
You can operate 2 axis in 2D node, and 3 axis in 3D node.
!#zh
设置节点在本地坐标系中坐标轴上的缩放比例。
2D 节点可以操作两个坐标轴,而 3D 节点可以操作三个坐标轴。
@param x scaleX or scale object
@param y y
@param z z
@example
```js
node.setScale(cc.v2(2, 2));
node.setScale(cc.v3(2, 2, 2)); // for 3D node
node.setScale(2);
```
*/
setScale(x: number|Vec2|Vec3, y?: number, z?: number): void;
/**
!#en
Get rotation of node (in quaternion).
Need pass a cc.Quat as the argument to receive the return values.
!#zh
获取该节点的 quaternion 旋转角度,需要传一个 cc.Quat 作为参数来接收返回值。
@param out out
*/
getRotation(out: Quat): Quat;
/**
!#en Set rotation of node (in quaternion).
!#zh 设置该节点的 quaternion 旋转角度。
@param quat Quaternion object represents the rotation or the x value of quaternion
@param y y value of quternion
@param z z value of quternion
@param w w value of quternion
*/
setRotation(quat: Quat|number, y?: number, z?: number, w?: number): void;
/**
!#en
Returns a copy the untransformed size of the node. <br/>
The contentSize remains the same no matter the node is scaled or rotated.<br/>
All nodes has a size. Layer and Scene has the same size of the screen by default. <br/>
!#zh 获取节点自身大小,不受该节点是否被缩放或者旋转的影响。
@example
```js
cc.log("Content Size: " + node.getContentSize());
```
*/
getContentSize(): Size;
/**
!#en
Sets the untransformed size of the node.<br/>
The contentSize remains the same no matter the node is scaled or rotated.<br/>
All nodes has a size. Layer and Scene has the same size of the screen.
!#zh 设置节点原始大小,不受该节点是否被缩放或者旋转的影响。
@param size The untransformed size of the node or The untransformed size's width of the node.
@param height The untransformed size's height of the node.
@example
```js
node.setContentSize(cc.size(100, 100));
node.setContentSize(100, 100);
```
*/
setContentSize(size: Size|number, height?: number): void;
/**
!#en
Returns a copy of the anchor point.<br/>
Anchor point is the point around which all transformations and positioning manipulations take place.<br/>
It's like a pin in the node where it is "attached" to its parent. <br/>
The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. <br/>
But you can use values higher than (1,1) and lower than (0,0) too. <br/>
The default anchor point is (0.5,0.5), so it starts at the center of the node.
!#zh
获取节点锚点,用百分比表示。<br/>
锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。<br/>
锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。<br/>
但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。<br/>
默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。<br/>
注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。
@example
```js
cc.log("Node AnchorPoint: " + node.getAnchorPoint());
```
*/
getAnchorPoint(): Vec2;
/**
!#en
Sets the anchor point in percent. <br/>
anchor point is the point around which all transformations and positioning manipulations take place. <br/>
It's like a pin in the node where it is "attached" to its parent. <br/>
The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.<br/>
But you can use values higher than (1,1) and lower than (0,0) too.<br/>
The default anchor point is (0.5,0.5), so it starts at the center of the node.
!#zh
设置锚点的百分比。<br/>
锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。<br/>
锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。<br/>
但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。<br/>
默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。<br/>
注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。
@param point The anchor point of node or The x axis anchor of node.
@param y The y axis anchor of node.
@example
```js
node.setAnchorPoint(cc.v2(1, 1));
node.setAnchorPoint(1, 1);
```
*/
setAnchorPoint(point: Vec2|number, y?: number): void;
/**
!#en Set rotation by lookAt target point, normally used by Camera Node
!#zh 通过观察目标来设置 rotation,一般用于 Camera Node 上
@param pos pos
@param up default is (0,1,0)
*/
lookAt(pos: Vec3, up?: Vec3): void;
/**
!#en
Get the local transform matrix (4x4), based on parent node coordinates
!#zh 返回局部空间坐标系的矩阵,基于父节点坐标系。
@param out The matrix object to be filled with data
@example
```js
let mat4 = cc.mat4();
node.getLocalMatrix(mat4);
```
*/
getLocalMatrix(out: Mat4): Mat4;
/**
!#en
Get the world transform matrix (4x4)
!#zh 返回世界空间坐标系的矩阵。
@param out The matrix object to be filled with data
@example
```js
let mat4 = cc.mat4();
node.getWorldMatrix(mat4);
```
*/
getWorldMatrix(out: Mat4): Mat4;
/**
!#en
Converts a Point to node (local) space coordinates.
!#zh
将一个点转换到节点 (局部) 空间坐标系。
@param worldPoint worldPoint
@param out out
@example
```js
var newVec2 = node.convertToNodeSpaceAR(cc.v2(100, 100));
var newVec3 = node.convertToNodeSpaceAR(cc.v3(100, 100, 100));
```
*/
convertToNodeSpaceAR<T extends cc.Vec2 | cc.Vec3>(worldPoint: T, out?: T): T;
/**
!#en
Converts a Point in node coordinates to world space coordinates.
!#zh
将节点坐标系下的一个点转换到世界空间坐标系。
@param nodePoint nodePoint
@param out out
@example
```js
var newVec2 = node.convertToWorldSpaceAR(cc.v2(100, 100));
var newVec3 = node.convertToWorldSpaceAR(cc.v3(100, 100, 100));
```
*/
convertToWorldSpaceAR<T extends cc.Vec2 | cc.Vec3>(nodePoint: T, out?: T): T;
/**
!#en Converts a Point to node (local) space coordinates then add the anchor point position.
So the return position will be related to the left bottom corner of the node's bounding box.
This equals to the API behavior of cocos2d-x, you probably want to use convertToNodeSpaceAR instead
!#zh 将一个点转换到节点 (局部) 坐标系,并加上锚点的坐标。<br/>
也就是说返回的坐标是相对于节点包围盒左下角的坐标。<br/>
这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToNodeSpaceAR。
@param worldPoint worldPoint
@example
```js
var newVec2 = node.convertToNodeSpace(cc.v2(100, 100));
```
*/
convertToNodeSpace(worldPoint: Vec2): Vec2;
/**
!#en Converts a Point related to the left bottom corner of the node's bounding box to world space coordinates.
This equals to the API behavior of cocos2d-x, you probably want to use convertToWorldSpaceAR instead
!#zh 将一个相对于节点左下角的坐标位置转换到世界空间坐标系。
这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToWorldSpaceAR
@param nodePoint nodePoint
@example
```js
var newVec2 = node.convertToWorldSpace(cc.v2(100, 100));
```
*/
convertToWorldSpace(nodePoint: Vec2): Vec2;
/**
!#en
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.<br/>
The matrix is in Pixels.
!#zh 返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。这个矩阵以像素为单位。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getNodeToParentTransform(affineTransform);
```
*/
getNodeToParentTransform(out?: AffineTransform): AffineTransform;
/**
!#en
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.<br/>
The matrix is in Pixels.<br/>
This method is AR (Anchor Relative).
!#zh
返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。<br/>
这个矩阵以像素为单位。<br/>
该方法基于节点坐标。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getNodeToParentTransformAR(affineTransform);
```
*/
getNodeToParentTransformAR(out?: AffineTransform): AffineTransform;
/**
!#en Returns the world affine transform matrix. The matrix is in Pixels.
!#zh 返回节点到世界坐标系的仿射变换矩阵。矩阵单位是像素。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getNodeToWorldTransform(affineTransform);
```
*/
getNodeToWorldTransform(out?: AffineTransform): AffineTransform;
/**
!#en
Returns the world affine transform matrix. The matrix is in Pixels.<br/>
This method is AR (Anchor Relative).
!#zh
返回节点到世界坐标仿射变换矩阵。矩阵单位是像素。<br/>
该方法基于节点坐标。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getNodeToWorldTransformAR(affineTransform);
```
*/
getNodeToWorldTransformAR(out?: AffineTransform): AffineTransform;
/**
!#en
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.<br/>
The matrix is in Pixels. The returned transform is readonly and cannot be changed.
!#zh
返回将父节点的坐标系转换成节点(局部)的空间坐标系的矩阵。<br/>
该矩阵以像素为单位。返回的矩阵是只读的,不能更改。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getParentToNodeTransform(affineTransform);
```
*/
getParentToNodeTransform(out?: AffineTransform): AffineTransform;
/**
!#en Returns the inverse world affine transform matrix. The matrix is in Pixels.
!#en 返回世界坐标系到节点坐标系的逆矩阵。
@param out The affine transform object to be filled with data
@example
```js
let affineTransform = cc.AffineTransform.create();
node.getWorldToNodeTransform(affineTransform);
```
*/
getWorldToNodeTransform(out?: AffineTransform): AffineTransform;
/**
!#en convenience methods which take a cc.Touch instead of cc.Vec2.
!#zh 将触摸点转换成本地坐标系中位置。
@param touch The touch object
@example
```js
var newVec2 = node.convertTouchToNodeSpace(touch);
```
*/
convertTouchToNodeSpace(touch: Touch): Vec2;
/**
!#en converts a cc.Touch (world coordinates) into a local coordinate. This method is AR (Anchor Relative).
!#zh 转换一个 cc.Touch(世界坐标)到一个局部坐标,该方法基于节点坐标。
@param touch The touch object
@example
```js
var newVec2 = node.convertTouchToNodeSpaceAR(touch);
```
*/
convertTouchToNodeSpaceAR(touch: Touch): Vec2;
/**
!#en
Returns a "local" axis aligned bounding box of the node. <br/>
The returned box is relative only to its parent.
!#zh 返回父节坐标系下的轴向对齐的包围盒。
@example
```js
var boundingBox = node.getBoundingBox();
```
*/
getBoundingBox(): Rect;
/**
!#en
Returns a "world" axis aligned bounding box of the node.<br/>
The bounding box contains self and active children's world bounding box.
!#zh
返回节点在世界坐标系下的对齐轴向的包围盒(AABB)。<br/>
该边框包含自身和已激活的子节点的世界边框。
@example
```js
var newRect = node.getBoundingBoxToWorld();
```
*/
getBoundingBoxToWorld(): Rect;
/**
!#en
Adds a child to the node with z order and name.
!#zh
添加子节点,并且可以修改该节点的 局部 Z 顺序和名字。
@param child A child node
@param zIndex Z order for drawing priority. Please refer to zIndex property
@param name A name to identify the node easily. Please refer to name property
@example
```js
node.addChild(newNode, 1, "node");
```
*/
addChild(child: Node, zIndex?: number, name?: string): void;
/**
!#en Stops all running actions and schedulers.
!#zh 停止所有正在播放的动作和计时器。
@example
```js
node.cleanup();
```
*/
cleanup(): void;
/**
!#en Sorts the children array depends on children's zIndex and arrivalOrder,
normally you won't need to invoke this function.
!#zh 根据子节点的 zIndex 和 arrivalOrder 进行排序,正常情况下开发者不需要手动调用这个函数。
*/
sortAllChildren(): void;
/**
!#en
Returns the displayed opacity of Node,
the difference between displayed opacity and opacity is that displayed opacity is calculated based on opacity and parent node's opacity when cascade opacity enabled.
!#zh
获取节点显示透明度,
显示透明度和透明度之间的不同之处在于当启用级连透明度时,
显示透明度是基于自身透明度和父节点透明度计算的。
*/
getDisplayedOpacity(): number;
/**
!#en
Returns the displayed color of Node,
the difference between displayed color and color is that displayed color is calculated based on color and parent node's color when cascade color enabled.
!#zh
获取节点的显示颜色,
显示颜色和颜色之间的不同之处在于当启用级连颜色时,
显示颜色是基于自身颜色和父节点颜色计算的。
*/
getDisplayedColor(): Color;
/** !#en Cascade opacity is removed from v2.0
Indicate whether node's opacity value affect its child nodes, default value is true.
!#zh 透明度级联功能从 v2.0 开始已移除
节点的不透明度值是否影响其子节点,默认值为 true。 */
cascadeOpacity: boolean;
/**
!#en Cascade opacity is removed from v2.0
Returns whether node's opacity value affect its child nodes.
!#zh 透明度级联功能从 v2.0 开始已移除
返回节点的不透明度值是否影响其子节点。
*/
isCascadeOpacityEnabled(): boolean;
/**
!#en Cascade opacity is removed from v2.0
Enable or disable cascade opacity, if cascade enabled, child nodes' opacity will be the multiplication of parent opacity and its own opacity.
!#zh 透明度级联功能从 v2.0 开始已移除
启用或禁用级连不透明度,如果级连启用,子节点的不透明度将是父不透明度乘上它自己的不透明度。
@param cascadeOpacityEnabled cascadeOpacityEnabled
*/
setCascadeOpacityEnabled(cascadeOpacityEnabled: boolean): void;
/**
!#en Opacity modify RGB have been removed since v2.0
Set whether color should be changed with the opacity value,
useless in ccsg.Node, but this function is override in some class to have such behavior.
!#zh 透明度影响颜色配置已经被废弃
设置更改透明度时是否修改RGB值,
@param opacityValue opacityValue
*/
setOpacityModifyRGB(opacityValue: boolean): void;
/**
!#en Opacity modify RGB have been removed since v2.0
Get whether color should be changed with the opacity value.
!#zh 透明度影响颜色配置已经被废弃
获取更改透明度时是否修改RGB值。
*/
isOpacityModifyRGB(): boolean;
}
/** !#en
Class of private entities in Cocos Creator scenes.<br/>
The PrivateNode is hidden in editor, and completely transparent to users.<br/>
It's normally used as Node's private content created by components in parent node.<br/>
So in theory private nodes are not children, they are part of the parent node.<br/>
Private node have two important characteristics:<br/>
1. It has the minimum z index and cannot be modified, because they can't be displayed over real children.<br/>
2. The positioning of private nodes is also special, they will consider the left bottom corner of the parent node's bounding box as the origin of local coordinates.<br/>
In this way, they can be easily kept inside the bounding box.<br/>
Currently, it's used by RichText component and TileMap component.
!#zh
Cocos Creator 场景中的私有节点类。<br/>
私有节点在编辑器中不可见,对用户透明。<br/>
通常私有节点是被一些特殊的组件创建出来作为父节点的一部分而存在的,理论上来说,它们不是子节点,而是父节点的组成部分。<br/>
私有节点有两个非常重要的特性:<br/>
1. 它有着最小的渲染排序的 Z 轴深度,并且无法被更改,因为它们不能被显示在其他正常子节点之上。<br/>
2. 它的定位也是特殊的,对于私有节点来说,父节点包围盒的左下角是它的局部坐标系原点,这个原点相当于父节点的位置减去它锚点的偏移。这样私有节点可以比较容易被控制在包围盒之中。<br/>
目前在引擎中,RichText 和 TileMap 都有可能生成私有节点。 */
export class PrivateNode extends Node {
/**
@param name name
*/
constructor(name?: string);
}
/** !#en
cc.Scene is a subclass of cc.Node that is used only as an abstract concept.<br/>
cc.Scene and cc.Node are almost identical with the difference that users can not modify cc.Scene manually.
!#zh
cc.Scene 是 cc.Node 的子类,仅作为一个抽象的概念。<br/>
cc.Scene 和 cc.Node 有点不同,用户不应直接修改 cc.Scene。 */
export class Scene extends Node {
/** !#en Indicates whether all (directly or indirectly) static referenced assets of this scene are releasable by default after scene unloading.
!#zh 指示该场景中直接或间接静态引用到的所有资源是否默认在场景切换后自动释放。 */
autoReleaseAssets: boolean;
}
/** !#en
Scheduler is responsible of triggering the scheduled callbacks.<br/>
You should not use NSTimer. Instead use this class.<br/>
<br/>
There are 2 different types of callbacks (selectors):<br/>
- update callback: the 'update' callback will be called every frame. You can customize the priority.<br/>
- custom callback: A custom callback will be called every frame, or with a custom interval of time<br/>
<br/>
The 'custom selectors' should be avoided when possible. It is faster,
and consumes less memory to use the 'update callback'. *
!#zh
Scheduler 是负责触发回调函数的类。<br/>
通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。<br/>
有两种不同类型的定时器:<br/>
- update 定时器:每一帧都会触发。您可以自定义优先级。<br/>
- 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。<br/>
如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。 */
export class Scheduler {
/**
!#en This method should be called for any target which needs to schedule tasks, and this method should be called before any scheduler API usage.
This method will add a `_id` property if it doesn't exist.
!#zh 任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法,并且应该在调用任何 Scheduler API 之前调用这个方法。
这个方法会给对象添加一个 `_id` 属性,如果这个属性不存在的话。
@param target target
*/
enableForTarget(target: any): void;
/**
!#en
Modifies the time of all scheduled callbacks.<br/>
You can use this property to create a 'slow motion' or 'fast forward' effect.<br/>
Default is 1.0. To create a 'slow motion' effect, use values below 1.0.<br/>
To create a 'fast forward' effect, use values higher than 1.0.<br/>
Note:It will affect EVERY scheduled selector / action.
!#zh
设置时间间隔的缩放比例。<br/>
您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。<br/>
默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。<br/>
要使用 “fast forward(快进)” 效果,使用值大于 1.0。<br/>
注意:它影响该 Scheduler 下管理的所有定时器。
@param timeScale timeScale
*/
setTimeScale(timeScale: number): void;
/**
!#en Returns time scale of scheduler.
!#zh 获取时间间隔的缩放比例。
*/
getTimeScale(): number;
/**
!#en 'update' the scheduler. (You should NEVER call this method, unless you know what you are doing.)
!#zh update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)
@param dt delta time
*/
update(dt: number): void;
/**
!#en
<p>
The scheduled method will be called every 'interval' seconds.<br/>
If paused is YES, then it won't be called until it is resumed.<br/>
If 'interval' is 0, it will be called every frame, but if so, it recommended to use 'scheduleUpdateForTarget:' instead.<br/>
If the callback function is already scheduled, then only the interval parameter will be updated without re-scheduling it again.<br/>
repeat let the action be repeated repeat + 1 times, use cc.macro.REPEAT_FOREVER to let the action run continuously<br/>
delay is the amount of time the action will wait before it'll start<br/>
</p>
!#zh
指定回调函数,调用对象等信息来添加一个新的定时器。<br/>
如果 paused 值为 true,那么直到 resume 被调用才开始计时。<br/>
当时间间隔达到指定值时,设置的回调函数将会被调用。<br/>
如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样,
建议使用 scheduleUpdateForTarget 代替。<br/>
如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。<br/>
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER
可以让定时器一直循环触发。<br/>
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。
@param callback callback
@param target target
@param interval interval
@param repeat repeat
@param delay delay
@param paused paused
@example
```js
//register a schedule to scheduler
cc.director.getScheduler().schedule(callback, this, interval, !this._isRunning);
```
*/
schedule(callback: Function, target: any, interval: number, repeat: number, delay: number, paused?: boolean): void;
schedule(callback: Function, target: any, interval: number, paused?: boolean): void;
/**
!#en
Schedules the update callback for a given target,
During every frame after schedule started, the "update" function of target will be invoked.
!#zh
使用指定的优先级为指定的对象设置 update 定时器。
update 定时器每一帧都会被触发,触发时自动调用指定对象的 "update" 函数。
优先级的值越低,定时器被触发的越早。
@param target target
@param priority priority
@param paused paused
*/
scheduleUpdate(target: any, priority: number, paused: boolean): void;
/**
!#en
Unschedules a callback for a callback and a given target.
If you want to unschedule the "update", use `unscheduleUpdate()`
!#zh
取消指定对象定时器。
如果需要取消 update 定时器,请使用 unscheduleUpdate()。
@param callback The callback to be unscheduled
@param target The target bound to the callback.
*/
unschedule(callback: Function, target: any): void;
/**
!#en Unschedules the update callback for a given target.
!#zh 取消指定对象的 update 定时器。
@param target The target to be unscheduled.
*/
unscheduleUpdate(target: any): void;
/**
!#en
Unschedules all scheduled callbacks for a given target.
This also includes the "update" callback.
!#zh 取消指定对象的所有定时器,包括 update 定时器。
@param target The target to be unscheduled.
*/
unscheduleAllForTarget(target: any): void;
/**
!#en
Unschedules all scheduled callbacks from all targets including the system callbacks.<br/>
You should NEVER call this method, unless you know what you are doing.
!#zh
取消所有对象的所有定时器,包括系统定时器。<br/>
不要调用此函数,除非你确定你在做什么。
*/
unscheduleAll(): void;
/**
!#en
Unschedules all callbacks from all targets with a minimum priority.<br/>
You should only call this with `PRIORITY_NON_SYSTEM_MIN` or higher.
!#zh
取消所有优先级的值大于指定优先级的定时器。<br/>
你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
@param minPriority The minimum priority of selector to be unscheduled. Which means, all selectors which
priority is higher than minPriority will be unscheduled.
*/
unscheduleAllWithMinPriority(minPriority: number): void;
/**
!#en Checks whether a callback for a given target is scheduled.
!#zh 检查指定的回调函数和回调对象组合是否存在定时器。
@param callback The callback to check.
@param target The target of the callback.
*/
isScheduled(callback: Function, target: any): boolean;
/**
!#en
Pause all selectors from all targets.<br/>
You should NEVER call this method, unless you know what you are doing.
!#zh
暂停所有对象的所有定时器。<br/>
不要调用这个方法,除非你知道你正在做什么。
*/
pauseAllTargets(): void;
/**
!#en
Pause all selectors from all targets with a minimum priority. <br/>
You should only call this with kCCPriorityNonSystemMin or higher.
!#zh
暂停所有优先级的值大于指定优先级的定时器。<br/>
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
@param minPriority minPriority
*/
pauseAllTargetsWithMinPriority(minPriority: number): void;
/**
!#en
Resume selectors on a set of targets.<br/>
This can be useful for undoing a call to pauseAllCallbacks.
!#zh
恢复指定数组中所有对象的定时器。<br/>
这个函数是 pauseAllCallbacks 的逆操作。
@param targetsToResume targetsToResume
*/
resumeTargets(targetsToResume: any[]): void;
/**
!#en
Pauses the target.<br/>
All scheduled selectors/update for a given target won't be 'ticked' until the target is resumed.<br/>
If the target is not present, nothing happens.
!#zh
暂停指定对象的定时器。<br/>
指定对象的所有定时器都会被暂停。<br/>
如果指定的对象没有定时器,什么也不会发生。
@param target target
*/
pauseTarget(target: any): void;
/**
!#en
Resumes the target.<br/>
The 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again.<br/>
If the target is not present, nothing happens.
!#zh
恢复指定对象的所有定时器。<br/>
指定对象的所有定时器将继续工作。<br/>
如果指定的对象没有定时器,什么也不会发生。
@param target target
*/
resumeTarget(target: any): void;
/**
!#en Returns whether or not the target is paused.
!#zh 返回指定对象的定时器是否暂停了。
@param target target
*/
isTargetPaused(target: any): boolean;
/** !#en Priority level reserved for system services.
!#zh 系统服务的优先级。 */
static PRIORITY_SYSTEM: number;
/** !#en Minimum priority level for user scheduling.
!#zh 用户调度最低优先级。 */
static PRIORITY_NON_SYSTEM: number;
}
/** Class for particle asset handling. */
export class ParticleAsset extends Asset {
}
/** Particle System base class. <br/>
Attributes of a Particle System:<br/>
- emmision rate of the particles<br/>
- Gravity Mode (Mode A): <br/>
- gravity <br/>
- direction <br/>
- speed +- variance <br/>
- tangential acceleration +- variance<br/>
- radial acceleration +- variance<br/>
- Radius Mode (Mode B): <br/>
- startRadius +- variance <br/>
- endRadius +- variance <br/>
- rotate +- variance <br/>
- Properties common to all modes: <br/>
- life +- life variance <br/>
- start spin +- variance <br/>
- end spin +- variance <br/>
- start size +- variance <br/>
- end size +- variance <br/>
- start color +- variance <br/>
- end color +- variance <br/>
- life +- variance <br/>
- blending function <br/>
- texture <br/>
<br/>
cocos2d also supports particles generated by Particle Designer (http://particledesigner.71squared.com/).<br/>
'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guarateed in cocos2d, <br/>
cocos2d uses a another approach, but the results are almost identical.<br/>
cocos2d supports all the variables used by Particle Designer plus a bit more: <br/>
- spinning particles (supported when using ParticleSystem) <br/>
- tangential acceleration (Gravity mode) <br/>
- radial acceleration (Gravity mode) <br/>
- radius direction (Radius mode) (Particle Designer supports outwards to inwards direction only) <br/>
It is possible to customize any of the above mentioned properties in runtime. Example: <br/> */
export class ParticleSystem extends RenderComponent implements BlendFunc {
/** !#en Play particle in edit mode.
!#zh 在编辑器模式下预览粒子,启用后选中粒子时,粒子将自动播放。 */
preview: boolean;
/** !#en
If set custom to true, then use custom properties insteadof read particle file.
!#zh 是否自定义粒子属性。 */
custom: boolean;
/** !#en The plist file.
!#zh plist 格式的粒子配置文件。 */
file: ParticleAsset;
/** !#en SpriteFrame used for particles display
!#zh 用于粒子呈现的 SpriteFrame */
spriteFrame: SpriteFrame;
/** !#en Texture of Particle System, readonly, please use spriteFrame to setup new texture。
!#zh 粒子贴图,只读属性,请使用 spriteFrame 属性来替换贴图。 */
texture: string;
/** !#en Current quantity of particles that are being simulated.
!#zh 当前播放的粒子数量。 */
particleCount: number;
/** !#en Indicate whether the system simulation have stopped.
!#zh 指示粒子播放是否完毕。 */
stopped: boolean;
/** !#en If set to true, the particle system will automatically start playing on onLoad.
!#zh 如果设置为 true 运行时会自动发射粒子。 */
playOnLoad: boolean;
/** !#en Indicate whether the owner node will be auto-removed when it has no particles left.
!#zh 粒子播放完毕后自动销毁所在的节点。 */
autoRemoveOnFinish: boolean;
/** !#en Indicate whether the particle system is activated.
!#zh 是否激活粒子。 */
active: boolean;
/** !#en Maximum particles of the system.
!#zh 粒子最大数量。 */
totalParticles: number;
/** !#en How many seconds the emitter wil run. -1 means 'forever'.
!#zh 发射器生存时间,单位秒,-1表示持续发射。 */
duration: number;
/** !#en Emission rate of the particles.
!#zh 每秒发射的粒子数目。 */
emissionRate: number;
/** !#en Life of each particle setter.
!#zh 粒子的运行时间。 */
life: number;
/** !#en Variation of life.
!#zh 粒子的运行时间变化范围。 */
lifeVar: number;
/** !#en Start color of each particle.
!#zh 粒子初始颜色。 */
startColor: Color;
/** !#en Variation of the start color.
!#zh 粒子初始颜色变化范围。 */
startColorVar: Color;
/** !#en Ending color of each particle.
!#zh 粒子结束颜色。 */
endColor: Color;
/** !#en Variation of the end color.
!#zh 粒子结束颜色变化范围。 */
endColorVar: Color;
/** !#en Angle of each particle setter.
!#zh 粒子角度。 */
angle: number;
/** !#en Variation of angle of each particle setter.
!#zh 粒子角度变化范围。 */
angleVar: number;
/** !#en Start size in pixels of each particle.
!#zh 粒子的初始大小。 */
startSize: number;
/** !#en Variation of start size in pixels.
!#zh 粒子初始大小的变化范围。 */
startSizeVar: number;
/** !#en End size in pixels of each particle.
!#zh 粒子结束时的大小。 */
endSize: number;
/** !#en Variation of end size in pixels.
!#zh 粒子结束大小的变化范围。 */
endSizeVar: number;
/** !#en Start angle of each particle.
!#zh 粒子开始自旋角度。 */
startSpin: number;
/** !#en Variation of start angle.
!#zh 粒子开始自旋角度变化范围。 */
startSpinVar: number;
/** !#en End angle of each particle.
!#zh 粒子结束自旋角度。 */
endSpin: number;
/** !#en Variation of end angle.
!#zh 粒子结束自旋角度变化范围。 */
endSpinVar: number;
/** !#en Source position of the emitter.
!#zh 发射器位置。 */
sourcePos: Vec2;
/** !#en Variation of source position.
!#zh 发射器位置的变化范围。(横向和纵向) */
posVar: Vec2;
/** !#en Particles movement type.
!#zh 粒子位置类型。 */
positionType: ParticleSystem.PositionType;
/** !#en Particles emitter modes.
!#zh 发射器类型。 */
emitterMode: ParticleSystem.EmitterMode;
/** !#en Gravity of the emitter.
!#zh 重力。 */
gravity: Vec2;
/** !#en Speed of the emitter.
!#zh 速度。 */
speed: number;
/** !#en Variation of the speed.
!#zh 速度变化范围。 */
speedVar: number;
/** !#en Tangential acceleration of each particle. Only available in 'Gravity' mode.
!#zh 每个粒子的切向加速度,即垂直于重力方向的加速度,只有在重力模式下可用。 */
tangentialAccel: number;
/** !#en Variation of the tangential acceleration.
!#zh 每个粒子的切向加速度变化范围。 */
tangentialAccelVar: number;
/** !#en Acceleration of each particle. Only available in 'Gravity' mode.
!#zh 粒子径向加速度,即平行于重力方向的加速度,只有在重力模式下可用。 */
radialAccel: number;
/** !#en Variation of the radial acceleration.
!#zh 粒子径向加速度变化范围。 */
radialAccelVar: number;
/** !#en Indicate whether the rotation of each particle equals to its direction. Only available in 'Gravity' mode.
!#zh 每个粒子的旋转是否等于其方向,只有在重力模式下可用。 */
rotationIsDir: boolean;
/** !#en Starting radius of the particles. Only available in 'Radius' mode.
!#zh 初始半径,表示粒子出生时相对发射器的距离,只有在半径模式下可用。 */
startRadius: number;
/** !#en Variation of the starting radius.
!#zh 初始半径变化范围。 */
startRadiusVar: number;
/** !#en Ending radius of the particles. Only available in 'Radius' mode.
!#zh 结束半径,只有在半径模式下可用。 */
endRadius: number;
/** !#en Variation of the ending radius.
!#zh 结束半径变化范围。 */
endRadiusVar: number;
/** !#en Number of degress to rotate a particle around the source pos per second. Only available in 'Radius' mode.
!#zh 粒子每秒围绕起始点的旋转角度,只有在半径模式下可用。 */
rotatePerS: number;
/** !#en Variation of the degress to rotate a particle around the source pos per second.
!#zh 粒子每秒围绕起始点的旋转角度变化范围。 */
rotatePerSVar: number;
/** !#en The Particle emitter lives forever.
!#zh 表示发射器永久存在 */
static DURATION_INFINITY: number;
/** !#en The starting size of the particle is equal to the ending size.
!#zh 表示粒子的起始大小等于结束大小。 */
static START_SIZE_EQUAL_TO_END_SIZE: number;
/** !#en The starting radius of the particle is equal to the ending radius.
!#zh 表示粒子的起始半径等于结束半径。 */
static START_RADIUS_EQUAL_TO_END_RADIUS: number;
/**
!#en Stop emitting particles. Running particles will continue to run until they die.
!#zh 停止发射器发射粒子,发射出去的粒子将继续运行,直至粒子生命结束。
@example
```js
// stop particle system.
myParticleSystem.stopSystem();
```
*/
stopSystem(): void;
/**
!#en Kill all living particles.
!#zh 杀死所有存在的粒子,然后重新启动粒子发射器。
@example
```js
// play particle system.
myParticleSystem.resetSystem();
```
*/
resetSystem(): void;
/**
!#en Whether or not the system is full.
!#zh 发射器中粒子是否大于等于设置的总粒子数量。
*/
isFull(): boolean;
/**
!#en Sets a new texture with a rect. The rect is in texture position and size.
Please use spriteFrame property instead, this function is deprecated since v1.9
!#zh 设置一张新贴图和关联的矩形。
请直接设置 spriteFrame 属性,这个函数从 v1.9 版本开始已经被废弃
@param texture texture
@param rect rect
*/
setTextureWithRect(texture: Texture2D, rect: Rect): void;
/** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost.
!#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */
srcBlendFactor: macro.BlendFactor;
/** !#en specify the destination Blend Factor.
!#zh 指定目标的混合模式 */
dstBlendFactor: macro.BlendFactor;
}
/** !#en cc.WebView is a component for display web pages in the game. Because different platforms have different authorization, API and control methods for WebView component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported.
!#zh WebView 组件,用于在游戏中显示网页。由于不同平台对于 WebView 组件的授权、API、控制方式都不同,还没有形成统一的标准,所以目前只支持 Web、iOS 和 Android 平台。 */
export class WebView extends Component {
/** !#en A given URL to be loaded by the WebView, it should have a http or https prefix.
!#zh 指定 WebView 加载的网址,它应该是一个 http 或者 https 开头的字符串 */
url: string;
/** !#en The webview's event callback , it will be triggered when certain webview event occurs.
!#zh WebView 的回调事件,当网页加载过程中,加载完成后或者加载出错时都会回调此函数 */
webviewLoadedEvents: Component.EventHandler[];
/**
!#en
Set javascript interface scheme (see also setOnJSCallback). <br/>
Note: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.<br/>
Please refer to the official documentation for more details.
!#zh
设置 JavaScript 接口方案(与 'setOnJSCallback' 配套使用)。<br/>
注意:只支持 Android 和 iOS ,Web 端用法请前往官方文档查看。<br/>
详情请参阅官方文档
@param scheme scheme
*/
setJavascriptInterfaceScheme(scheme: string): void;
/**
!#en
This callback called when load URL that start with javascript
interface scheme (see also setJavascriptInterfaceScheme). <br/>
Note: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.<br/>
Please refer to the official documentation for more details.
!#zh
当加载 URL 以 JavaScript 接口方案开始时调用这个回调函数。<br/>
注意:只支持 Android 和 iOS,Web 端用法请前往官方文档查看。
详情请参阅官方文档
@param callback callback
*/
setOnJSCallback(callback: Function): void;
/**
!#en
Evaluates JavaScript in the context of the currently displayed page. <br/>
Please refer to the official document for more details <br/>
Note: Cross domain issues need to be resolved by yourself <br/>
!#zh
执行 WebView 内部页面脚本(详情请参阅官方文档) <br/>
注意:需要自行解决跨域问题
@param str str
*/
evaluateJS(str: string): void;
/**
!#en if you don't need the WebView and it isn't in any running Scene, you should
call the destroy method on this component or the associated node explicitly.
Otherwise, the created DOM element won't be removed from web page.
!#zh
如果你不再使用 WebView,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。
这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。
@example
```js
webview.node.parent = null; // or webview.node.removeFromParent(false);
// when you don't need webview anymore
webview.node.destroy();
```
*/
destroy(): boolean;
}
/** !#en cc.VideoPlayer is a component for playing videos, you can use it for showing videos in your game. Because different platforms have different authorization, API and control methods for VideoPlayer component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported.
!#zh Video 组件,用于在游戏中播放视频。由于不同平台对于 VideoPlayer 组件的授权、API、控制方式都不同,还没有形成统一的标准,所以目前只支持 Web、iOS 和 Android 平台。 */
export class VideoPlayer extends Component {
/** !#en The resource type of videoplayer, REMOTE for remote url and LOCAL for local file path.
!#zh 视频来源:REMOTE 表示远程视频 URL,LOCAL 表示本地视频地址。 */
resourceType: VideoPlayer.ResourceType;
/** !#en The remote URL of video.
!#zh 远程视频的 URL */
remoteURL: string;
/** !#en The local video full path.
!#zh 本地视频的 URL */
clip: string;
/** !#en The current playback time of the now playing item in seconds, you could also change the start playback time.
!#zh 指定视频从什么时间点开始播放,单位是秒,也可以用来获取当前视频播放的时间进度。 */
currentTime: number;
/** !#en The volume of the video.
!#zh 视频的音量(0.0 ~ 1.0) */
volume: number;
/** !#en Mutes the VideoPlayer. Mute sets the volume=0, Un-Mute restore the original volume.
!#zh 是否静音视频。静音时设置音量为 0,取消静音是恢复原来的音量。 */
mute: boolean;
/** !#en Whether keep the aspect ration of the original video.
!#zh 是否保持视频原来的宽高比 */
keepAspectRatio: boolean;
/** !#en Whether play video in fullscreen mode.
!#zh 是否全屏播放视频 */
isFullscreen: boolean;
/** !#en Always below the game view (only useful on Web. Note: The specific effects are not guaranteed to be consistent, depending on whether each browser supports or restricts).
!#zh 永远在游戏视图最底层(这个属性只有在 Web 平台上有效果。注意:具体效果无法保证一致,跟各个浏览器是否支持与限制有关) */
stayOnBottom: boolean;
/** !#en the video player's callback, it will be triggered when certain event occurs, like: playing, paused, stopped and completed.
!#zh 视频播放回调函数,该回调函数会在特定情况被触发,比如播放中,暂时,停止和完成播放。 */
videoPlayerEvent: Component.EventHandler[];
/**
!#en If a video is paused, call this method could resume playing. If a video is stopped, call this method to play from scratch.
!#zh 如果视频被暂停播放了,调用这个接口可以继续播放。如果视频被停止播放了,调用这个接口可以从头开始播放。
*/
play(): void;
/**
!#en If a video is paused, call this method to resume playing.
!#zh 如果一个视频播放被暂停播放了,调用这个接口可以继续播放。
*/
resume(): void;
/**
!#en If a video is playing, call this method to pause playing.
!#zh 如果一个视频正在播放,调用这个接口可以暂停播放。
*/
pause(): void;
/**
!#en If a video is playing, call this method to stop playing immediately.
!#zh 如果一个视频正在播放,调用这个接口可以立马停止播放。
*/
stop(): void;
/**
!#en Gets the duration of the video
!#zh 获取视频文件的播放总时长
*/
getDuration(): number;
/**
!#en Determine whether video is playing or not.
!#zh 判断当前视频是否处于播放状态
*/
isPlaying(): boolean;
/**
!#en if you don't need the VideoPlayer and it isn't in any running Scene, you should
call the destroy method on this component or the associated node explicitly.
Otherwise, the created DOM element won't be removed from web page.
!#zh
如果你不再使用 VideoPlayer,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。
这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。
@example
```js
videoplayer.node.parent = null; // or videoplayer.node.removeFromParent(false);
// when you don't need videoplayer anymore
videoplayer.node.destroy();
```
*/
destroy(): boolean;
}
/** cc.TMXLayerInfo contains the information about the layers like:
- Layer name
- Layer size
- Layer opacity at creation time (it can be modified at runtime)
- Whether the layer is visible (if it's not visible, then the CocosNode won't be created)
This information is obtained from the TMX file. */
export class TMXLayerInfo {
/** Properties of the layer info. */
properties: any;
}
/** cc.TMXImageLayerInfo contains the information about the image layers.
This information is obtained from the TMX file. */
export class TMXImageLayerInfo {
}
/** <p>cc.TMXObjectGroupInfo contains the information about the object group like:
- group name
- group size
- group opacity at creation time (it can be modified at runtime)
- Whether the group is visible
This information is obtained from the TMX file.</p> */
export class TMXObjectGroupInfo {
/** Properties of the ObjectGroup info. */
properties: any[];
}
/** <p>cc.TMXTilesetInfo contains the information about the tilesets like: <br />
- Tileset name<br />
- Tileset spacing<br />
- Tileset margin<br />
- size of the tiles<br />
- Image used for the tiles<br />
- Image size<br />
This information is obtained from the TMX file. </p> */
export class TMXTilesetInfo {
/** Tileset name */
name: string;
/** First grid */
firstGid: number;
/** Spacing */
spacing: number;
/** Margin */
margin: number;
/** Texture containing the tiles (should be sprite sheet / texture atlas) */
sourceImage: any;
/** Size in pixels of the image */
imageSize: Size;
}
/** <p>cc.TMXMapInfo contains the information about the map like: <br/>
- Map orientation (hexagonal, isometric or orthogonal)<br/>
- Tile size<br/>
- Map size</p>
<p>And it also contains: <br/>
- Layers (an array of TMXLayerInfo objects)<br/>
- Tilesets (an array of TMXTilesetInfo objects) <br/>
- ObjectGroups (an array of TMXObjectGroupInfo objects) </p>
<p>This information is obtained from the TMX file. </p> */
export class TMXMapInfo {
/** Properties of the map info. */
properties: any[];
/** Map orientation. */
orientation: number;
/** Parent element. */
parentElement: any;
/** Parent GID. */
parentGID: number;
/** Layer attributes. */
layerAttrs: any;
/** Is reading storing characters stream. */
storingCharacters: boolean;
/** Current string stored from characters stream. */
currentString: string;
/** Width of the map */
mapWidth: number;
/** Height of the map */
mapHeight: number;
/** Width of a tile */
tileWidth: number;
/** Height of a tile */
tileHeight: number;
static ATTRIB_NONE: number;
static ATTRIB_BASE64: number;
static ATTRIB_GZIP: number;
static ATTRIB_ZLIB: number;
}
/** !#en Render the TMX layer.
!#zh 渲染 TMX layer。 */
export class TiledLayer extends Component {
/**
!#en enable or disable culling
!#zh 开启或关闭裁剪。
@param value value
*/
enableCulling(value: any): void;
/**
!#en Adds user's node into layer.
!#zh 添加用户节点。
@param node node
*/
addUserNode(node: Node): boolean;
/**
!#en Removes user's node.
!#zh 移除用户节点。
@param node node
*/
removeUserNode(node: Node): boolean;
/**
!#en Destroy user's node.
!#zh 销毁用户节点。
@param node node
*/
destroyUserNode(node: Node): void;
/**
!#en Gets the layer name.
!#zh 获取层的名称。
@example
```js
let layerName = tiledLayer.getLayerName();
cc.log(layerName);
```
*/
getLayerName(): string;
/**
!#en Set the layer name.
!#zh 设置层的名称
@param layerName layerName
@example
```js
tiledLayer.setLayerName("New Layer");
```
*/
SetLayerName(layerName: string): void;
/**
!#en Return the value for the specific property name.
!#zh 获取指定属性名的值。
@param propertyName propertyName
@example
```js
let property = tiledLayer.getProperty("info");
cc.log(property);
```
*/
getProperty(propertyName: string): any;
/**
!#en Returns the position in pixels of a given tile coordinate.
!#zh 获取指定 tile 的像素坐标。
@param pos position or x
@param y y
@example
```js
let pos = tiledLayer.getPositionAt(cc.v2(0, 0));
cc.log("Pos: " + pos);
let pos = tiledLayer.getPositionAt(0, 0);
cc.log("Pos: " + pos);
```
*/
getPositionAt(pos: Vec2|number, y?: number): Vec2;
/**
!#en
Sets the tiles gid (gid = tile global id) at a given tiles rect.
!#zh
设置给定区域的 tile 的 gid (gid = tile 全局 id),
@param gids an array contains gid
@param beginCol begin col number
@param beginRow begin row number
@param totalCols count of column
@example
```js
tiledLayer.setTilesGIDAt([1, 1, 1, 1], 10, 10, 2)
```
*/
setTilesGIDAt(gids: any[], beginCol: number, beginRow: number, totalCols: number): void;
/**
!#en
Sets the tile gid (gid = tile global id) at a given tile coordinate.<br />
The Tile GID can be obtained by using the method "tileGIDAt" or by using the TMX editor . Tileset Mgr +1.<br />
If a tile is already placed at that position, then it will be removed.
!#zh
设置给定坐标的 tile 的 gid (gid = tile 全局 id),
tile 的 GID 可以使用方法 “tileGIDAt” 来获得。<br />
如果一个 tile 已经放在那个位置,那么它将被删除。
@param gid gid
@param posOrX position or x
@param flagsOrY flags or y
@param flags flags
@example
```js
tiledLayer.setTileGIDAt(1001, 10, 10, 1)
```
*/
setTileGIDAt(gid: number, posOrX: Vec2|number, flagsOrY: number, flags?: number): void;
/**
!#en
Returns the tile gid at a given tile coordinate. <br />
if it returns 0, it means that the tile is empty. <br />
!#zh
通过给定的 tile 坐标、flags(可选)返回 tile 的 GID. <br />
如果它返回 0,则表示该 tile 为空。<br />
@param pos or x
@param y y
@example
```js
let tileGid = tiledLayer.getTileGIDAt(0, 0);
```
*/
getTileGIDAt(pos: Vec2|number, y?: number): number;
/**
!#en Layer orientation, which is the same as the map orientation.
!#zh 获取 Layer 方向(同地图方向)。
@example
```js
let orientation = tiledLayer.getLayerOrientation();
cc.log("Layer Orientation: " + orientation);
```
*/
getLayerOrientation(): number;
/**
!#en properties from the layer. They can be added using Tiled.
!#zh 获取 layer 的属性,可以使用 Tiled 编辑器添加属性。
@example
```js
let properties = tiledLayer.getProperties();
cc.log("Properties: " + properties);
```
*/
getProperties(): any;
/**
!#en
Get the TiledTile with the tile coordinate.<br/>
If there is no tile in the specified coordinate and forceCreate parameter is true, <br/>
then will create a new TiledTile at the coordinate.
The renderer will render the tile with the rotation, scale, position and color property of the TiledTile.
!#zh
通过指定的 tile 坐标获取对应的 TiledTile。 <br/>
如果指定的坐标没有 tile,并且设置了 forceCreate 那么将会在指定的坐标创建一个新的 TiledTile 。<br/>
在渲染这个 tile 的时候,将会使用 TiledTile 的节点的旋转、缩放、位移、颜色属性。<br/>
@param x x
@param y y
@param forceCreate forceCreate
@example
```js
let tile = tiledLayer.getTiledTileAt(100, 100, true);
cc.log(tile);
```
*/
getTiledTileAt(x: number, y: number, forceCreate: boolean): TiledTile;
/**
!#en
Change tile to TiledTile at the specified coordinate.
!#zh
将指定的 tile 坐标替换为指定的 TiledTile。
@param x x
@param y y
@param tiledTile tiledTile
*/
setTiledTileAt(x: number, y: number, tiledTile: TiledTile): TiledTile;
/**
!#en Return texture.
!#zh 获取纹理。
@param index The index of textures
*/
getTexture(index: any): Texture2D;
/**
!#en Return texture.
!#zh 获取纹理。
*/
getTextures(): Texture2D;
/**
!#en Set the texture.
!#zh 设置纹理。
@param texture texture
*/
setTexture(texture: Texture2D): void;
/**
!#en Set the texture.
!#zh 设置纹理。
@param textures textures
*/
setTexture(textures: Texture2D): void;
/**
!#en Gets layer size.
!#zh 获得层大小。
@example
```js
let size = tiledLayer.getLayerSize();
cc.log("layer size: " + size);
```
*/
getLayerSize(): Size;
/**
!#en Size of the map's tile (could be different from the tile's size).
!#zh 获取 tile 的大小( tile 的大小可能会有所不同)。
@example
```js
let mapTileSize = tiledLayer.getMapTileSize();
cc.log("MapTile size: " + mapTileSize);
```
*/
getMapTileSize(): Size;
/**
!#en Gets Tile set first information for the layer.
!#zh 获取 layer 索引位置为0的 Tileset 信息。
@param index The index of tilesets
*/
getTileSet(index: any): TMXTilesetInfo;
/**
!#en Gets tile set all information for the layer.
!#zh 获取 layer 所有的 Tileset 信息。
*/
getTileSet(): TMXTilesetInfo;
/**
!#en Sets tile set information for the layer.
!#zh 设置 layer 的 tileset 信息。
@param tileset tileset
*/
setTileSet(tileset: TMXTilesetInfo): void;
/**
!#en Sets Tile set information for the layer.
!#zh 设置 layer 的 Tileset 信息。
@param tilesets tilesets
*/
setTileSets(tilesets: TMXTilesetInfo): void;
}
/** !#en Renders a TMX Tile Map in the scene.
!#zh 在场景中渲染一个 tmx 格式的 Tile Map。 */
export class TiledMap extends Component {
/** !#en The TiledMap Asset.
!#zh TiledMap 资源。 */
tmxAsset: TiledMapAsset;
/**
!#en Gets the map size.
!#zh 获取地图大小。
@example
```js
let mapSize = tiledMap.getMapSize();
cc.log("Map Size: " + mapSize);
```
*/
getMapSize(): Size;
/**
!#en Gets the tile size.
!#zh 获取地图背景中 tile 元素的大小。
@example
```js
let tileSize = tiledMap.getTileSize();
cc.log("Tile Size: " + tileSize);
```
*/
getTileSize(): Size;
/**
!#en map orientation.
!#zh 获取地图方向。
@example
```js
let mapOrientation = tiledMap.getMapOrientation();
cc.log("Map Orientation: " + mapOrientation);
```
*/
getMapOrientation(): number;
/**
!#en object groups.
!#zh 获取所有的对象层。
@example
```js
let objGroups = titledMap.getObjectGroups();
for (let i = 0; i < objGroups.length; ++i) {
cc.log("obj: " + objGroups[i]);
}
```
*/
getObjectGroups(): TiledObjectGroup[];
/**
!#en Return the TMXObjectGroup for the specific group.
!#zh 获取指定的 TMXObjectGroup。
@param groupName groupName
@example
```js
let group = titledMap.getObjectGroup("Players");
cc.log("ObjectGroup: " + group);
```
*/
getObjectGroup(groupName: string): TiledObjectGroup;
/**
!#en enable or disable culling
!#zh 开启或关闭裁剪。
@param value value
*/
enableCulling(value: any): void;
/**
!#en Gets the map properties.
!#zh 获取地图的属性。
@example
```js
let properties = titledMap.getProperties();
for (let i = 0; i < properties.length; ++i) {
cc.log("Properties: " + properties[i]);
}
```
*/
getProperties(): any[];
/**
!#en Return All layers array.
!#zh 返回包含所有 layer 的数组。
@example
```js
let layers = titledMap.getLayers();
for (let i = 0; i < layers.length; ++i) {
cc.log("Layers: " + layers[i]);
}
```
*/
getLayers(): TiledLayer[];
/**
!#en return the cc.TiledLayer for the specific layer.
!#zh 获取指定名称的 layer。
@param layerName layerName
@example
```js
let layer = titledMap.getLayer("Player");
cc.log(layer);
```
*/
getLayer(layerName: string): TiledLayer;
/**
!#en Return the value for the specific property name.
!#zh 通过属性名称,获取指定的属性。
@param propertyName propertyName
@example
```js
let property = titledMap.getProperty("info");
cc.log("Property: " + property);
```
*/
getProperty(propertyName: string): string;
/**
!#en Return properties dictionary for tile GID.
!#zh 通过 GID ,获取指定的属性。
@param GID GID
@example
```js
let properties = titledMap.getPropertiesForGID(GID);
cc.log("Properties: " + properties);
```
*/
getPropertiesForGID(GID: number): any;
}
/** Class for tiled map asset handling. */
export class TiledMapAsset extends Asset {
textures: Texture2D[];
textureNames: string[];
textureSizes: Size[];
imageLayerTextures: Texture2D[];
imageLayerTextureNames: string[];
}
/** !#en Renders the TMX object group.
!#zh 渲染 tmx object group。 */
export class TiledObjectGroup extends Component {
/**
!#en Offset position of child objects.
!#zh 获取子对象的偏移位置。
@example
```js
let offset = tMXObjectGroup.getPositionOffset();
```
*/
getPositionOffset(): Vec2;
/**
!#en List of properties stored in a dictionary.
!#zh 以映射的形式获取属性列表。
@example
```js
let offset = tMXObjectGroup.getProperties();
```
*/
getProperties(): any;
/**
!#en Gets the Group name.
!#zh 获取组名称。
@example
```js
let groupName = tMXObjectGroup.getGroupName;
```
*/
getGroupName(): string;
/**
!#en
Return the object for the specific object name. <br />
It will return the 1st object found on the array for the given name.
!#zh 获取指定的对象。
@param objectName objectName
@example
```js
let object = tMXObjectGroup.getObject("Group");
```
*/
getObject(objectName: string): any;
/**
!#en Gets the objects.
!#zh 获取对象数组。
@example
```js
let objects = tMXObjectGroup.getObjects();
```
*/
getObjects(): any[];
}
/** !#en TiledTile can control the specified map tile.
It will apply the node rotation, scale, translate to the map tile.
You can change the TiledTile's gid to change the map tile's style.
!#zh TiledTile 可以单独对某一个地图块进行操作。
他会将节点的旋转,缩放,平移操作应用在这个地图块上,并可以通过更换当前地图块的 gid 来更换地图块的显示样式。 */
export class TiledTile extends Component {
/** !#en Specify the TiledTile horizontal coordinate,use map tile as the unit.
!#zh 指定 TiledTile 的横向坐标,以地图块为单位 */
x: number;
/** !#en Specify the TiledTile vertical coordinate,use map tile as the unit.
!#zh 指定 TiledTile 的纵向坐标,以地图块为单位 */
y: number;
/** !#en Specify the TiledTile gid.
!#zh 指定 TiledTile 的 gid 值 */
gid: number;
}
/** !#en
Base class for handling assets used in Creator.<br/>
You may want to override:<br/>
- createNode<br/>
- getset functions of _nativeAsset<br/>
- cc.Object._serialize<br/>
- cc.Object._deserialize<br/>
!#zh
Creator 中的资源基类。<br/>
您可能需要重写:<br/>
- createNode <br/>
- _nativeAsset 的 getset 方法<br/>
- cc.Object._serialize<br/>
- cc.Object._deserialize<br/> */
export class Asset extends Object {
/** !#en
Whether the asset is loaded or not.
!#zh
该资源是否已经成功加载。 */
loaded: boolean;
/** !#en
Returns the url of this asset's native object, if none it will returns an empty string.
!#zh
返回该资源对应的目标平台资源的 URL,如果没有将返回一个空字符串。 */
nativeUrl: string;
/** !#en
The number of reference
!#zh
引用的数量 */
refCount: number;
/** !#en Indicates whether its dependent raw assets can support deferred load if the owner scene (or prefab) is marked as `asyncLoadAssets`.
!#zh 当场景或 Prefab 被标记为 `asyncLoadAssets`,禁止延迟加载该资源所依赖的其它原始资源。 */
static preventDeferredLoadDependents: boolean;
/** !#en Indicates whether its native object should be preloaded from native url.
!#zh 禁止预加载原生对象。 */
static preventPreloadNativeObject: boolean;
/**
!#en
Returns the asset's url.
The `Asset` object overrides the `toString()` method of the `Object` object.
For `Asset` objects, the `toString()` method returns a string representation of the object.
JavaScript calls the `toString()` method automatically when an asset is to be represented as a text value or when a texture is referred to in a string concatenation.
!#zh
返回资源的 URL。
Asset 对象将会重写 Object 对象的 `toString()` 方法。
对于 Asset 对象,`toString()` 方法返回该对象的字符串表示形式。
当资源要表示为文本值时或在字符串连接时引用时,JavaScript 会自动调用 `toString()` 方法。
*/
toString(): string;
/**
!#en
Create a new node using this asset in the scene.<br/>
If this type of asset dont have its corresponding node type, this method should be null.
!#zh
使用该资源在场景中创建一个新节点。<br/>
如果这类资源没有相应的节点类型,该方法应该是空的。
@param callback callback
*/
createNode(callback: (error: string, node: any) => void): void;
/**
!#en
Add references of asset
!#zh
增加资源的引用
*/
addRef(): cc.Asset;
/**
!#en
Reduce references of asset and it will be auto released when refCount equals 0.
!#zh
减少资源的引用并尝试进行自动释放。
*/
decRef(): cc.Asset;
/** `cc.Asset.url` is deprecated, please use {{#crossLink "Asset/nativeUrl:property"}}{{/crossLink}} instead */
url: string;
}
/** !#en Class for audio data handling.
!#zh 音频资源类。 */
export class AudioClip extends Asset implements EventTarget {
/** !#en Get the audio clip duration
!#zh 获取音频剪辑的长度 */
duration: number;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Class for BitmapFont handling.
!#zh 位图字体资源类。 */
export class BitmapFont extends Font {
}
/** undefined */
export class BufferAsset extends Asset {
}
/** !#en Class for Font handling.
!#zh 字体资源类。 */
export class Font extends Asset {
}
/** !#en
Class for JSON file. When the JSON file is loaded, this object is returned.
The parsed JSON object can be accessed through the `json` attribute in it.<br>
If you want to get the original JSON text, you should modify the extname to `.txt`
so that it is loaded as a `TextAsset` instead of a `JsonAsset`.
!#zh
JSON 资源类。JSON 文件加载后,将会返回该对象。可以通过其中的 `json` 属性访问解析后的 JSON 对象。<br>
如果你想要获得 JSON 的原始文本,那么应该修改源文件的后缀为 `.txt`,这样就会加载为一个 `TextAsset` 而不是 `JsonAsset`。 */
export class JsonAsset extends Asset {
/** The loaded JSON object. */
json: any;
}
/** !#en Class for LabelAtlas handling.
!#zh 艺术数字字体资源类。 */
export class LabelAtlas extends BitmapFont {
}
/** !#en Class for prefab handling.
!#zh 预制资源类。 */
export class Prefab extends Asset {
/** the main cc.Node in the prefab */
data: Node;
/** !#zh
设置实例化这个 prefab 时所用的优化策略。根据使用情况设置为合适的值,能优化该 prefab 实例化所用的时间。
!#en
Indicates the optimization policy for instantiating this prefab.
Set to a suitable value based on usage, can optimize the time it takes to instantiate this prefab. */
optimizationPolicy: Prefab.OptimizationPolicy;
/** !#en Indicates the raw assets of this prefab can be load after prefab loaded.
!#zh 指示该 Prefab 依赖的资源可否在 Prefab 加载后再延迟加载。 */
asyncLoadAssets: boolean;
readonly: boolean;
/**
Dynamically translation prefab data into minimized code.<br/>
This method will be called automatically before the first time the prefab being instantiated,
but you can re-call to refresh the create function once you modified the original prefab data in script.
*/
compileCreateFunction(): void;
}
/** Render textures are textures that can be rendered to. */
export class RenderTexture extends Texture2D {
/**
!#en
Init the render texture with size.
!#zh
初始化 render texture
@param width width
@param height height
@param depthStencilFormat depthStencilFormat
*/
initWithSize(width?: number, height?: number, depthStencilFormat?: number): void;
/**
!#en
Get pixels from render texture, the pixels data stores in a RGBA Uint8Array.
It will return a new (width * height * 4) length Uint8Array by default。
You can specify a data to store the pixels to reuse the data,
you and can specify other params to specify the texture region to read.
!#zh
从 render texture 读取像素数据,数据类型为 RGBA 格式的 Uint8Array 数组。
默认每次调用此函数会生成一个大小为 (长 x 高 x 4) 的 Uint8Array。
你可以通过传入 data 来接收像素数据,也可以通过传参来指定需要读取的区域的像素。
@param data data
@param x x
@param y y
@param w w
@param h h
*/
readPixels(data?: Uint8Array, x?: number, y?: number, w?: number, h?: number): Uint8Array;
}
/** !#en Class for scene handling.
!#zh 场景资源类。 */
export class SceneAsset extends Asset {
scene: Scene;
/** !#en Indicates the raw assets of this scene can be load after scene launched.
!#zh 指示该场景依赖的资源可否在场景切换后再延迟加载。 */
asyncLoadAssets: boolean;
}
/** !#en Class for script handling.
!#zh Script 资源类。 */
export class _Script extends Asset {
}
/** !#en Class for JavaScript handling.
!#zh JavaScript 资源类。 */
export class _JavaScript extends Asset {
}
/** !#en Class for TypeScript handling.
!#zh TypeScript 资源类。 */
export class TypeScript extends Asset {
}
/** !#en Class for sprite atlas handling.
!#zh 精灵图集资源类。 */
export class SpriteAtlas extends Asset {
/**
Returns the texture of the sprite atlas
*/
getTexture(): Texture2D;
/**
Returns the sprite frame correspond to the given key in sprite atlas.
@param key key
*/
getSpriteFrame(key: string): SpriteFrame;
/**
Returns the sprite frames in sprite atlas.
*/
getSpriteFrames(): SpriteFrame[];
}
/** !#en
A cc.SpriteFrame has:<br/>
- texture: A cc.Texture2D that will be used by render components<br/>
- rectangle: A rectangle of the texture
!#zh
一个 SpriteFrame 包含:<br/>
- 纹理:会被渲染组件使用的 Texture2D 对象。<br/>
- 矩形:在纹理中的矩形区域。 */
export class SpriteFrame extends Asset implements EventTarget {
/** !#en Top border of the sprite
!#zh sprite 的顶部边框 */
insetTop: number;
/** !#en Bottom border of the sprite
!#zh sprite 的底部边框 */
insetBottom: number;
/** !#en Left border of the sprite
!#zh sprite 的左边边框 */
insetLeft: number;
/** !#en Right border of the sprite
!#zh sprite 的左边边框 */
insetRight: number;
/**
!#en
Constructor of SpriteFrame class.
!#zh
SpriteFrame 类的构造函数。
@param filename filename
@param rect rect
@param rotated Whether the frame is rotated in the texture
@param offset The offset of the frame in the texture
@param originalSize The size of the frame in the texture
*/
constructor(filename?: string|Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size);
/**
!#en Returns whether the texture have been loaded
!#zh 返回是否已加载纹理
*/
textureLoaded(): boolean;
/**
!#en Returns whether the sprite frame is rotated in the texture.
!#zh 获取 SpriteFrame 是否旋转
*/
isRotated(): boolean;
/**
!#en Set whether the sprite frame is rotated in the texture.
!#zh 设置 SpriteFrame 是否旋转
@param bRotated bRotated
*/
setRotated(bRotated: boolean): void;
/**
!#en Returns whether the sprite frame is flip x axis in the texture.
!#zh 获取 SpriteFrame 是否反转 x 轴
*/
isFlipX(): boolean;
/**
!#en Returns whether the sprite frame is flip y axis in the texture.
!#zh 获取 SpriteFrame 是否反转 y 轴
*/
isFlipY(): boolean;
/**
!#en Set whether the sprite frame is flip x axis in the texture.
!#zh 设置 SpriteFrame 是否翻转 x 轴
@param flipX flipX
*/
setFlipX(flipX: boolean): void;
/**
!#en Set whether the sprite frame is flip y axis in the texture.
!#zh 设置 SpriteFrame 是否翻转 y 轴
@param flipY flipY
*/
setFlipY(flipY: boolean): void;
/**
!#en Returns the rect of the sprite frame in the texture.
!#zh 获取 SpriteFrame 的纹理矩形区域
*/
getRect(): Rect;
/**
!#en Sets the rect of the sprite frame in the texture.
!#zh 设置 SpriteFrame 的纹理矩形区域
@param rect rect
*/
setRect(rect: Rect): void;
/**
!#en Returns the original size of the trimmed image.
!#zh 获取修剪前的原始大小
*/
getOriginalSize(): Size;
/**
!#en Sets the original size of the trimmed image.
!#zh 设置修剪前的原始大小
@param size size
*/
setOriginalSize(size: Size): void;
/**
!#en Returns the texture of the frame.
!#zh 获取使用的纹理实例
*/
getTexture(): Texture2D;
/**
!#en Returns the offset of the frame in the texture.
!#zh 获取偏移量
*/
getOffset(): Vec2;
/**
!#en Sets the offset of the frame in the texture.
!#zh 设置偏移量
@param offsets offsets
*/
setOffset(offsets: Vec2): void;
/**
!#en Clone the sprite frame.
!#zh 克隆 SpriteFrame
*/
clone(): SpriteFrame;
/**
!#en Set SpriteFrame with Texture, rect, rotated, offset and originalSize.<br/>
!#zh 通过 Texture,rect,rotated,offset 和 originalSize 设置 SpriteFrame。
@param texture texture
@param rect rect
@param rotated rotated
@param offset offset
@param originalSize originalSize
*/
setTexture(texture: Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size): boolean;
/**
!#en If a loading scene (or prefab) is marked as `asyncLoadAssets`, all the textures of the SpriteFrame which
associated by user's custom Components in the scene, will not preload automatically.
These textures will be load when Sprite component is going to render the SpriteFrames.
You can call this method if you want to load the texture early.
!#zh 当加载中的场景或 Prefab 被标记为 `asyncLoadAssets` 时,用户在场景中由自定义组件关联到的所有 SpriteFrame 的贴图都不会被提前加载。
只有当 Sprite 组件要渲染这些 SpriteFrame 时,才会检查贴图是否加载。如果你希望加载过程提前,你可以手工调用这个方法。
@example
```js
if (spriteFrame.textureLoaded()) {
this._onSpriteFrameLoaded();
}
else {
spriteFrame.once('load', this._onSpriteFrameLoaded, this);
spriteFrame.ensureLoadTexture();
}
```
*/
ensureLoadTexture(): void;
/**
!#en
If you do not need to use the SpriteFrame temporarily, you can call this method so that its texture could be garbage collected. Then when you need to render the SpriteFrame, you should call `ensureLoadTexture` manually to reload texture.
!#zh
当你暂时不再使用这个 SpriteFrame 时,可以调用这个方法来保证引用的贴图对象能被 GC。然后当你要渲染 SpriteFrame 时,你需要手动调用 `ensureLoadTexture` 来重新加载贴图。
*/
clearTexture(): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Class for TTFFont handling.
!#zh TTF 字体资源类。 */
export class TTFFont extends Font {
}
/** This class allows to easily create OpenGL or Canvas 2D textures from images or raw data. */
export class Texture2D extends Asset implements EventTarget {
/** !#en Sets whether generate mipmaps for the texture
!#zh 是否为纹理设置生成 mipmaps。 */
genMipmaps: boolean;
/** !#en
Sets whether texture can be packed into texture atlas.
If need use texture uv in custom Effect, please sets packable to false.
!#zh
设置纹理是否允许参与合图。
如果需要在自定义 Effect 中使用纹理 UV,需要禁止该选项。 */
packable: boolean;
/** !#en
Whether the texture is loaded or not
!#zh
贴图是否已经成功加载 */
loaded: boolean;
/** !#en
Texture width in pixel
!#zh
贴图像素宽度 */
width: number;
/** !#en
Texture height in pixel
!#zh
贴图像素高度 */
height: number;
/**
!#en
Get renderer texture implementation object
extended from render.Texture2D
!#zh 返回渲染器内部贴图对象
*/
getImpl(): void;
/**
Update texture options, not available in Canvas render mode.
image, format, premultiplyAlpha can not be updated in native.
@param options options
*/
update(options: {image: DOMImageElement; genMipmaps: boolean; format: Texture2D.PixelFormat; minFilter: Texture2D.Filter; magFilter: Texture2D.Filter; wrapS: WrapMode; wrapT: WrapMode; premultiplyAlpha: boolean; }): void;
/**
!#en
Init with HTML element.
!#zh 用 HTML Image 或 Canvas 对象初始化贴图。
@param element element
@example
```js
var img = new Image();
img.src = dataURL;
texture.initWithElement(img);
```
*/
initWithElement(element: HTMLImageElement|HTMLCanvasElement): void;
/**
!#en
Intializes with texture data in ArrayBufferView.
!#zh 使用一个存储在 ArrayBufferView 中的图像数据(raw data)初始化数据。
@param data data
@param pixelFormat pixelFormat
@param pixelsWidth pixelsWidth
@param pixelsHeight pixelsHeight
*/
initWithData(data: ArrayBufferView, pixelFormat: number, pixelsWidth: number, pixelsHeight: number): boolean;
/**
!#en
HTMLElement Object getter, available only on web.<br/>
Note: texture is packed into texture atlas by default<br/>
you should set texture.packable as false before getting Html element object.
!#zh 获取当前贴图对应的 HTML Image 或 Canvas 对象,只在 Web 平台下有效。<br/>
注意:<br/>
texture 默认参与动态合图,如果需要获取到正确的 Html 元素对象,需要先设置 texture.packable 为 false
*/
getHtmlElementObj(): HTMLImageElement;
/**
!#en
Destory this texture and immediately release its video memory. (Inherit from cc.Object.destroy)<br>
After destroy, this object is not usable anymore.
You can use cc.isValid(obj) to check whether the object is destroyed before accessing it.
!#zh
销毁该贴图,并立即释放它对应的显存。(继承自 cc.Object.destroy)<br/>
销毁后,该对象不再可用。您可以在访问对象之前使用 cc.isValid(obj) 来检查对象是否已被销毁。
*/
destroy(): boolean;
/**
!#en
Pixel format of the texture.
!#zh 获取纹理的像素格式。
*/
getPixelFormat(): number;
/**
!#en
Whether or not the texture has their Alpha premultiplied.
!#zh 检查纹理在上传 GPU 时预乘选项是否开启。
*/
hasPremultipliedAlpha(): boolean;
/**
!#en
Handler of texture loaded event.
Since v2.0, you don't need to invoke this function, it will be invoked automatically after texture loaded.
!#zh 贴图加载事件处理器。v2.0 之后你将不在需要手动执行这个函数,它会在贴图加载成功之后自动执行。
@param premultiplied premultiplied
*/
handleLoadedTexture(premultiplied?: boolean): void;
/**
!#en
Description of cc.Texture2D.
!#zh cc.Texture2D 描述。
*/
description(): string;
/**
!#en
Release texture, please use destroy instead.
!#zh 释放纹理,请使用 destroy 替代。
*/
releaseTexture(): void;
/**
!#en Sets the wrap s and wrap t options. <br/>
If the texture size is NPOT (non power of 2), then in can only use gl.CLAMP_TO_EDGE in gl.TEXTURE_WRAP_{S,T}.
!#zh 设置纹理包装模式。
若纹理贴图尺寸是 NPOT(non power of 2),则只能使用 Texture2D.WrapMode.CLAMP_TO_EDGE。
@param wrapS wrapS
@param wrapT wrapT
*/
setTexParameters(wrapS: Texture2D.WrapMode, wrapT: Texture2D.WrapMode): void;
/**
!#en Sets the minFilter and magFilter options
!#zh 设置纹理贴图缩小和放大过滤器算法选项。
@param minFilter minFilter
@param magFilter magFilter
*/
setFilters(minFilter: Texture2D.Filter, magFilter: Texture2D.Filter): void;
/**
!#en
Sets the flipY options
!#zh 设置贴图的纵向翻转选项。
@param flipY flipY
*/
setFlipY(flipY: boolean): void;
/**
!#en
Sets the premultiply alpha options
!#zh 设置贴图的预乘选项。
@param premultiply premultiply
*/
setPremultiplyAlpha(premultiply: boolean): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Class for text file.
!#zh 文本资源类。 */
export class TextAsset extends Asset {
/** The text contents of the resource. */
text: string;
}
/** !#en
This module controls asset's behaviors and information, include loading, releasing etc. it is a singleton
All member can be accessed with `cc.assetManager`.
!#zh
此模块管理资源的行为和信息,包括加载,释放等,这是一个单例,所有成员能够通过 `cc.assetManager` 调用 */
export class AssetManager {
/** !#en
Normal loading pipeline
!#zh
正常加载管线 */
pipeline: cc.AssetManager.Pipeline;
/** !#en
Fetching pipeline
!#zh
下载管线 */
fetchPipeline: cc.AssetManager.Pipeline;
/** !#en
Url transformer
!#zh
Url 转换器 */
transformPipeline: cc.AssetManager.Pipeline;
/** !#en
The collection of bundle which is already loaded, you can remove cache with {{#crossLink "AssetManager/removeBundle:method"}}{{/crossLink}}
!#zh
已加载 bundle 的集合, 你能通过 {{#crossLink "AssetManager/removeBundle:method"}}{{/crossLink}} 来移除缓存 */
bundles: AssetManager.Cache<AssetManager.Bundle>;
/** !#en
The collection of asset which is already loaded, you can remove cache with {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}}
!#zh
已加载资源的集合, 你能通过 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} 来移除缓存 */
assets: AssetManager.Cache<cc.Asset>;
/** !#en
Manage relationship between asset and its dependencies
!#zh
管理资源依赖关系 */
dependUtil: cc.AssetManager.DependUtil;
/** !#en
Whether or not cache the loaded asset
!#zh
是否缓存已加载的资源 */
cacheAsset: boolean;
/** !#en
Whether or not load asset forcely, if it is true, asset will be loaded regardless of error
!#zh
是否强制加载资源, 如果为 true ,加载资源将会忽略报错 */
force: boolean;
/** !#en
Some useful function
!#zh
一些有用的方法 */
utils: cc.AssetManager.Helper;
/** !#en
Manage all downloading task
!#zh
管理所有下载任务 */
downloader: cc.AssetManager.Downloader;
/** !#en
Manage all parsing task
!#zh
管理所有解析任务 */
parser: cc.AssetManager.Parser;
/** !#en
Manage internal asset
!#zh
管理内置资源 */
builtins: cc.AssetManager.Builtins;
/** !#en
Manage all packed asset
!#zh
管理所有合并后的资源 */
packManager: cc.AssetManager.PackManager;
/** !#en
Cache manager is a module which controls all caches downloaded from server in non-web platform.
!#zh
缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存 */
cacheManager: cc.AssetManager.CacheManager|null;
/** !#en
The preset of options
!#zh
可选参数的预设集 */
presets: Record<string, Record<string, any>>;
/** !#en
The builtin 'main' bundle
!#zh
内置 main 包 */
main: cc.AssetManager.Bundle;
/** !#en
The builtin 'resources' bundle
!#zh
内置 resources 包 */
resources: cc.AssetManager.Bundle;
/** !#en
The builtin 'internal' bundle
!#zh
内置 internal 包 */
internal: cc.AssetManager.Bundle;
/**
!#en
Initialize assetManager with options
!#zh
初始化资源管理器
@param options options
*/
init(options: Record<string, any>): void;
/**
!#en
Get the bundle which has been loaded
!#zh
获取已加载的分包
@param name The name of bundle
@example
```js
// ${project}/assets/test1
cc.assetManager.getBundle('test1');
cc.assetManager.getBundle('resources');
```
*/
getBundle (name: string): cc.AssetManager.Bundle;
/**
!#en
Remove this bundle. NOTE: The asset whthin this bundle will not be released automatically, you can call {{#crossLink "Bundle/releaseAll:method"}}{{/crossLink}} manually before remove it if you need
!#zh
移除此包, 注意:这个包内的资源不会自动释放, 如果需要的话你可以在摧毁之前手动调用 {{#crossLink "Bundle/releaseAll:method"}}{{/crossLink}} 进行释放
@param bundle The bundle to be removed
*/
removeBundle(bundle: cc.AssetManager.Bundle): void;
/**
!#en
General interface used to load assets with a progression callback and a complete callback. You can achieve almost all effect you want with combination of `requests` and `options`.
It is highly recommended that you use more simple API, such as `load`, `loadDir` etc. Every custom parameter in `options` will be distribute to each of `requests`.
if request already has same one, the parameter in request will be given priority. Besides, if request has dependencies, `options` will distribute to dependencies too.
Every custom parameter in `requests` will be tranfered to handler of `downloader` and `parser` as `options`.
You can register you own handler downloader or parser to collect these custom parameters for some effect.
Reserved Keyword: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame`
`maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`,
Please DO NOT use these words as custom options!
!#zh
通用加载资源接口,可传入进度回调以及完成回调,通过组合 `request` 和 `options` 参数,几乎可以实现和扩展所有想要的加载效果。非常建议你使用更简单的API,例如 `load`、`loadDir` 等。
`options` 中的自定义参数将会分发到 `requests` 的每一项中,如果request中已存在同名的参数则以 `requests` 中为准,同时如果有其他
依赖资源,则 `options` 中的参数会继续向依赖项中分发。request中的自定义参数都会以 `options` 形式传入加载流程中的 `downloader`, `parser` 的方法中, 你可以
扩展 `downloader`, `parser` 收集参数完成想实现的效果。
保留关键字: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame`
`maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`,
请不要使用这些字段为自定义参数!
@param requests The request you want to load
@param options Optional parameters
@param onProgress Callback invoked when progression change
@param onComplete Callback invoked when finish loading
@example
```js
cc.assetManager.loadAny({url: 'http://example.com/a.png'}, (err, img) => cc.log(img));
cc.assetManager.loadAny(['60sVXiTH1D/6Aft4MRt9VC'], (err, assets) => cc.log(assets));
cc.assetManager.loadAny([{ uuid: '0cbZa5Y71CTZAccaIFluuZ'}, {url: 'http://example.com/a.png'}], (err, assets) => cc.log(assets));
cc.assetManager.downloader.register('.asset', (url, options, onComplete) => {
url += '?userName=' + options.userName + "&password=" + options.password;
cc.assetManager.downloader.downloadFile(url, null, onComplete);
});
cc.assetManager.parser.register('.asset', (file, options, onComplete) => {
var json = JSON.parse(file);
var skin = json[options.skin];
var model = json[options.model];
onComplete(null, {skin, model});
});
cc.assetManager.loadAny({ url: 'http://example.com/my.asset', skin: 'xxx', model: 'xxx', userName: 'xxx', password: 'xxx' });
```
*/
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void;
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>, onComplete: (err: Error, data: any) => void): void;
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>): void;
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void;
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], onComplete: (err: Error, data: any) => void): void;
loadAny(requests: string | string[] | Record<string, any> | Record<string, any>[]): void;
/**
!#en
General interface used to preload assets with a progression callback and a complete callback.It is highly recommended that you use more simple API, such as `preloadRes`, `preloadResDir` etc.
Everything about preload is just likes `cc.assetManager.loadAny`, the difference is `cc.assetManager.preloadAny` will only download asset but not parse asset. You need to invoke `cc.assetManager.loadAny(preloadTask)`
to finish loading asset
!#zh
通用预加载资源接口,可传入进度回调以及完成回调,非常建议你使用更简单的 API ,例如 `preloadRes`, `preloadResDir` 等。`preloadAny` 和 `loadAny` 几乎一样,区别在于 `preloadAny` 只会下载资源,不会去解析资源,你需要调用 `cc.assetManager.loadAny(preloadTask)`
来完成资源加载。
@param requests The request you want to preload
@param options Optional parameters
@param onProgress Callback invoked when progression change
@param onComplete Callback invoked when finish preloading
@example
```js
cc.assetManager.preloadAny('0cbZa5Y71CTZAccaIFluuZ', (err) => cc.assetManager.loadAny('0cbZa5Y71CTZAccaIFluuZ'));
```
*/
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void;
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void;
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void;
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void;
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[], options: Record<string, any>): void;
preloadAny(requests: string | string[] | Record<string, any> | Record<string, any>[]): void;
/**
!#en
Load native file of asset, if you check the option 'Async Load Assets', you may need to load native file with this before you use the asset
!#zh
加载资源的原生文件,如果你勾选了'延迟加载资源'选项,你可能需要在使用资源之前调用此方法来加载原生文件
@param asset The asset
@param options Some optional parameters
@param onComplete Callback invoked when finish loading
@example
```js
cc.assetManager.postLoadNative(texture, (err) => console.log(err));
```
*/
postLoadNative(asset: cc.Asset, options: Record<string, any>, onComplete: (err: Error) => void): void;
postLoadNative(asset: cc.Asset, options: Record<string, any>): void;
postLoadNative(asset: cc.Asset, onComplete: (err: Error) => void): void;
postLoadNative(asset: cc.Asset): void;
/**
!#en
Load remote asset with url, such as audio, image, text and so on.
!#zh
使用 url 加载远程资源,例如音频,图片,文本等等。
@param url The url of asset
@param options Some optional parameters
@param onComplete Callback invoked when finish loading
@example
```js
cc.assetManager.loadRemote('http://www.cloud.com/test1.jpg', (err, texture) => console.log(err));
cc.assetManager.loadRemote('http://www.cloud.com/test2.mp3', (err, audioClip) => console.log(err));
```
*/
loadRemote<T extends cc.Asset>(url: string, options: Record<string, any>, onComplete: (err: Error, asset: T) => void): void;
loadRemote<T extends cc.Asset>(url: string, options: Record<string, any>): void;
loadRemote<T extends cc.Asset>(url: string, onComplete: (err: Error, asset: T) => void): void;
loadRemote<T extends cc.Asset>(url: string): void;
/**
!#en
Load script
!#zh
加载脚本
@param url Url of the script
@param options Some optional paramters
@param onComplete Callback when script loaded or failed
@example
```js
loadScript('http://localhost:8080/index.js', null, (err) => console.log(err));
```
*/
loadScript(url: string|string[], options: Record<string, any>, onComplete: (err: Error) => void): void;;
loadScript(url: string|string[], options: Record<string, any>): void;;
loadScript(url: string|string[], onComplete: (err: Error) => void): void;;
loadScript(url: string|string[]): void;;
/**
!#en
load bundle
!#zh
加载资源包
@param nameOrUrl The name or root path of bundle
@param options Some optional paramter, same like downloader.downloadFile
@param onComplete Callback when bundle loaded or failed
@example
```js
loadBundle('http://localhost:8080/test', null, (err, bundle) => console.log(err));
```
*/
loadBundle(nameOrUrl: string, options: Record<string, any>, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void;
loadBundle(nameOrUrl: string, options: Record<string, any>): void;
loadBundle(nameOrUrl: string, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void;
loadBundle(nameOrUrl: string): void;
/**
!#en
Release asset and it's dependencies.
This method will not only remove the cache of the asset in assetManager, but also clean up its content.
For example, if you release a texture, the texture asset and its gl texture data will be freed up.
Notice, this method may cause the texture to be unusable, if there are still other nodes use the same texture, they may turn to black and report gl errors.
!#zh
释放资源以及其依赖资源, 这个方法不仅会从 assetManager 中删除资源的缓存引用,还会清理它的资源内容。
比如说,当你释放一个 texture 资源,这个 texture 和它的 gl 贴图数据都会被释放。
注意,这个函数可能会导致资源贴图或资源所依赖的贴图不可用,如果场景中存在节点仍然依赖同样的贴图,它们可能会变黑并报 GL 错误。
@param asset The asset to be released
@example
```js
// release a texture which is no longer need
cc.assetManager.releaseAsset(texture);
```
*/
releaseAsset(asset: cc.Asset): void;
/**
!#en
Release all assets. Refer to {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} for detailed informations.
!#zh
释放所有资源。详细信息请参考 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}}
*/
releaseAll(): void;
}
/** `cc.loader` is deprecated, please backup your project and upgrade to {{#crossLink "AssetManager"}}{{/crossLink}} */
export class loader {
/** `cc.loader.onProgress` is deprecated, please transfer onProgress to API as a parameter */
static onProgress: any;
/**
`cc.loader.load` is deprecated, please use {{#crossLink "AssetManager/loadAny:method"}}{{/crossLink}} instead
@param resources Url list in an array
@param progressCallback Callback invoked when progression change
@param completeCallback Callback invoked when all resources loaded
*/
static load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, completeCallback?: Function): void;
static load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: Function|null): void;
/**
`cc.loader.getXMLHttpRequest` is deprecated, please use `XMLHttpRequest` directly
*/
static getXMLHttpRequest(): XMLHttpRequest;
/**
`cc.loader.getItem` is deprecated, please use `cc.assetManager.asset.get` instead
@param id The id of the item
*/
static getItem(id: any): any;
/**
`cc.loader.loadRes` is deprecated, please use {{#crossLink "Bundle/load:method"}}{{/crossLink}} instead
@param url Url of the target resource.
The url is relative to the "resources" folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param progressCallback Callback invoked when progression change.
@param completeCallback Callback invoked when the resource loaded.
*/
static loadRes(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void;
static loadRes(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any) => void): void;
static loadRes(url: string, type: typeof cc.Asset): void;
static loadRes(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void;
static loadRes(url: string, completeCallback: (error: Error, resource: any) => void): void;
static loadRes(url: string): void;
/**
`cc.loader.loadResArray` is deprecated, please use {{#crossLink "Bundle/load:method"}}{{/crossLink}} instead
@param urls Array of URLs of the target resource.
The url is relative to the "resources" folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param progressCallback Callback invoked when progression change.
@param completeCallback A callback which is called when all assets have been loaded, or an error occurs.
*/
static loadResArray(url: string[], type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void;
static loadResArray(url: string[], type: typeof cc.Asset, completeCallback: (error: Error, resource: any[]) => void): void;
static loadResArray(url: string[], type: typeof cc.Asset): void;
static loadResArray(url: string[], progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void;
static loadResArray(url: string[], completeCallback: (error: Error, resource: any[]) => void): void;
static loadResArray(url: string[]): void;
static loadResArray(url: string[], type: typeof cc.Asset[]): void;
/**
`cc.loader.loadResDir` is deprecated, please use {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} instead
@param url Url of the target folder.
The url is relative to the "resources" folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param progressCallback Callback invoked when progression change.
@param completeCallback A callback which is called when all assets have been loaded, or an error occurs.
*/
static loadResDir(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void;
static loadResDir(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void;
static loadResDir(url: string, type: typeof cc.Asset): void;
static loadResDir(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void;
static loadResDir(url: string, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void;
static loadResDir(url: string): void;
/**
`cc.loader.getRes` is deprecated, please use {{#crossLink "Bundle/get:method"}}{{/crossLink}} instead
@param url url
@param type Only asset of type will be returned if this argument is supplied.
*/
static getRes(url: string, type?: Function): any;
/**
`cc.loader.getDependsRecursively` is deprecated, please use use {{#crossLink "DependUtil/getDepsRecursively:method"}}{{/crossLink}} instead
@param owner The owner asset or the resource url or the asset's uuid
*/
static getDependsRecursively(owner: Asset|string): any[];
/** `cc.loader.assetLoader` was removed, assetLoader and md5Pipe were merged into {{#crossLink "AssetManager/transformPipeline:property"}}{{/crossLink}} */
static assetLoader: any;
/** `cc.loader.md5Pipe` is deprecated, assetLoader and md5Pipe were merged into {{#crossLink "AssetManager/transformPipeline:property"}}{{/crossLink}} */
static md5Pipe: any;
/** `cc.loader.downloader` is deprecated, please use {{#crossLink "AssetManager/downloader:property"}}{{/crossLink}} instead */
static downloader: any;
/** `cc.loader.loader` is deprecated, please use {{#crossLink "AssetManager/parser:property"}}{{/crossLink}} instead */
static loader: any;
/**
`cc.loader.addDownloadHandlers` is deprecated, please use `cc.assetManager.downloader.register` instead
@param extMap Custom supported types with corresponded handler
*/
static addDownloadHandlers(extMap: any): void;
/**
`cc.loader.addLoadHandlers` is deprecated, please use `cc.assetManager.parser.register` instead
@param extMap Custom supported types with corresponded handler
*/
static addLoadHandlers(extMap: any): void;
/**
`cc.loader.release` is deprecated, please use {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} instead
@param asset asset
*/
static release(asset: Asset|string|any[]): void;
/**
`cc.loader.releaseAsset` is deprecated, please use {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} instead
@param asset asset
*/
static releaseAsset(asset: Asset): void;
/**
`cc.loader.releaseRes` is deprecated, please use {{#crossLink "AssetManager/releaseRes:method"}}{{/crossLink}} instead
@param url url
@param type Only asset of type will be released if this argument is supplied.
*/
static releaseRes(url: string, type?: Function): void;
/**
`cc.loader.releaseResDir` was removed, please use {{#crossLink "AssetManager/releaseRes:method"}}{{/crossLink}} instead
*/
static releaseResDir(): void;
/**
`cc.loader.releaseAll` is deprecated, please use {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}} instead
*/
static releaseAll(): void;
/**
`cc.loader.removeItem` is deprecated, please use `cc.assetManager.assets.remove` instead
@param id The id of the item
*/
static removeItem(id: any): boolean;
/**
`cc.loader.setAutoRelease` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink "Asset/addRef:method"}}{{/crossLink}} instead
@param assetOrUrlOrUuid asset object or the raw asset's url or uuid
@param autoRelease indicates whether should release automatically
*/
static setAutoRelease(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void;
/**
`cc.loader.setAutoReleaseRecursively` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink "Asset/addRef:method"}}{{/crossLink}} instead
@param assetOrUrlOrUuid asset object or the raw asset's url or uuid
@param autoRelease indicates whether should release automatically
*/
static setAutoReleaseRecursively(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void;
/**
`cc.loader.isAutoRelease` is deprecated
@param assetOrUrl asset object or the raw asset's url
*/
static isAutoRelease(assetOrUrl: Asset|string): boolean;
}
/** `cc.url` is deprecated */
export class url {
/**
`cc.url.raw` is deprecated, please use `cc.resources.load` directly, or use `Asset.nativeUrl` instead.
@param url url
*/
static raw(url: string): string;
}
/** `cc.LoadingItems` was removed, please use {{#crossLink "Task"}}{{/crossLink}} instead */
export class LoadingItems {
}
/** Predefined constants */
export class macro {
/** `cc.macro.DOWNLOAD_MAX_CONCURRENT` is deprecated now, please use {{#crossLink "Downloader/maxConcurrency:property"}}{{/crossLink}} instead */
static DOWNLOAD_MAX_CONCURRENT: number;
/** PI / 180 */
static RAD: number;
/** One degree */
static DEG: number;
static REPEAT_FOREVER: number;
static FLT_EPSILON: number;
/** Minimum z index value for node */
static MIN_ZINDEX: number;
/** Maximum z index value for node */
static MAX_ZINDEX: number;
static ONE: number;
static ZERO: number;
static SRC_ALPHA: number;
static SRC_ALPHA_SATURATE: number;
static SRC_COLOR: number;
static DST_ALPHA: number;
static DST_COLOR: number;
static ONE_MINUS_SRC_ALPHA: number;
static ONE_MINUS_SRC_COLOR: number;
static ONE_MINUS_DST_ALPHA: number;
static ONE_MINUS_DST_COLOR: number;
static ONE_MINUS_CONSTANT_ALPHA: number;
static ONE_MINUS_CONSTANT_COLOR: number;
/** Oriented vertically */
static ORIENTATION_PORTRAIT: number;
/** Oriented horizontally */
static ORIENTATION_LANDSCAPE: number;
/** Oriented automatically */
static ORIENTATION_AUTO: number;
/** <p>
If enabled, the texture coordinates will be calculated by using this formula: <br/>
- texCoord.left = (rect.x*2+1) / (texture.wide*2); <br/>
- texCoord.right = texCoord.left + (rect.width*2-2)/(texture.wide*2); <br/>
<br/>
The same for bottom and top. <br/>
<br/>
This formula prevents artifacts by using 99% of the texture. <br/>
The "correct" way to prevent artifacts is by expand the texture's border with the same color by 1 pixel<br/>
<br/>
Affected component: <br/>
- cc.TMXLayer <br/>
<br/>
Enabled by default. To disabled set it to 0. <br/>
To modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h
</p> */
static FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: number;
/** Position of the FPS (Default: 0,0 (bottom-left corner))<br/>
To modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h */
static DIRECTOR_STATS_POSITION: Vec2;
/** <p>
If enabled, actions that alter the position property (eg: CCMoveBy, CCJumpBy, CCBezierBy, etc..) will be stacked. <br/>
If you run 2 or more 'position' actions at the same time on a node, then end position will be the sum of all the positions. <br/>
If disabled, only the last run action will take effect.
</p> */
static ENABLE_STACKABLE_ACTIONS: number;
/** !#en
The timeout to determine whether a touch is no longer active and should be removed.
The reason to add this timeout is due to an issue in X5 browser core,
when X5 is presented in wechat on Android, if a touch is glissed from the bottom up, and leave the page area,
no touch cancel event is triggered, and the touch will be considered active forever.
After multiple times of this action, our maximum touches number will be reached and all new touches will be ignored.
So this new mechanism can remove the touch that should be inactive if it's not updated during the last 5000 milliseconds.
Though it might remove a real touch if it's just not moving for the last 5 seconds which is not easy with the sensibility of mobile touch screen.
You can modify this value to have a better behavior if you find it's not enough.
!#zh
用于甄别一个触点对象是否已经失效并且可以被移除的延时时长
添加这个时长的原因是 X5 内核在微信浏览器中出现的一个 bug。
在这个环境下,如果用户将一个触点从底向上移出页面区域,将不会触发任何 touch cancel 或 touch end 事件,而这个触点会被永远当作停留在页面上的有效触点。
重复这样操作几次之后,屏幕上的触点数量将达到我们的事件系统所支持的最高触点数量,之后所有的触摸事件都将被忽略。
所以这个新的机制可以在触点在一定时间内没有任何更新的情况下视为失效触点并从事件系统中移除。
当然,这也可能移除一个真实的触点,如果用户的触点真的在一定时间段内完全没有移动(这在当前手机屏幕的灵敏度下会很难)。
你可以修改这个值来获得你需要的效果,默认值是 5000 毫秒。 */
static TOUCH_TIMEOUT: number;
/** !#en
The maximum vertex count for a single batched draw call.
!#zh
最大可以被单次批处理渲染的顶点数量。 */
static BATCH_VERTEX_COUNT: number;
/** !#en
Whether or not enabled tiled map auto culling. If you set the TiledMap skew or rotation, then need to manually disable this, otherwise, the rendering will be wrong.
!#zh
是否开启瓦片地图的自动裁减功能。瓦片地图如果设置了 skew, rotation 或者采用了摄像机的话,需要手动关闭,否则渲染会出错。 */
static ENABLE_TILEDMAP_CULLING: boolean;
/** !#en
Boolean that indicates if the canvas contains an alpha channel, default sets to false for better performance.
Though if you want to make your canvas background transparent and show other dom elements at the background,
you can set it to true before `cc.game.run`.
Web only.
!#zh
用于设置 Canvas 背景是否支持 alpha 通道,默认为 false,这样可以有更高的性能表现。
如果你希望 Canvas 背景是透明的,并显示背后的其他 DOM 元素,你可以在 `cc.game.run` 之前将这个值设为 true。
仅支持 Web */
static ENABLE_TRANSPARENT_CANVAS: boolean;
/** !#en
Boolean that indicates if the WebGL context is created with `antialias` option turned on, default value is false.
Set it to true could make your game graphics slightly smoother, like texture hard edges when rotated.
Whether to use this really depend on your game design and targeted platform,
device with retina display usually have good detail on graphics with or without this option,
you probably don't want antialias if your game style is pixel art based.
Also, it could have great performance impact with some browser / device using software MSAA.
You can set it to true before `cc.game.run`.
Web only.
!#zh
用于设置在创建 WebGL Context 时是否开启抗锯齿选项,默认值是 false。
将这个选项设置为 true 会让你的游戏画面稍稍平滑一些,比如旋转硬边贴图时的锯齿。是否开启这个选项很大程度上取决于你的游戏和面向的平台。
在大多数拥有 retina 级别屏幕的设备上用户往往无法区分这个选项带来的变化;如果你的游戏选择像素艺术风格,你也多半不会想开启这个选项。
同时,在少部分使用软件级别抗锯齿算法的设备或浏览器上,这个选项会对性能产生比较大的影响。
你可以在 `cc.game.run` 之前设置这个值,否则它不会生效。
仅支持 Web */
static ENABLE_WEBGL_ANTIALIAS: boolean;
/** !#en
Whether or not enable auto culling.
This feature have been removed in v2.0 new renderer due to overall performance consumption.
We have no plan currently to re-enable auto culling.
If your game have more dynamic objects, we suggest to disable auto culling.
If your game have more static objects, we suggest to enable auto culling.
!#zh
是否开启自动裁减功能,开启裁减功能将会把在屏幕外的物体从渲染队列中去除掉。
这个功能在 v2.0 的新渲染器中被移除了,因为它在大多数游戏中所带来的损耗要高于性能的提升,目前我们没有计划重新支持自动裁剪。
如果游戏中的动态物体比较多的话,建议将此选项关闭。
如果游戏中的静态物体比较多的话,建议将此选项打开。 */
static ENABLE_CULLING: boolean;
/** !#en
Whether to clear the original image cache after uploaded a texture to GPU. If cleared, [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) will not be supported.
Normally you don't need to enable this option on the web platform, because Image object doesn't consume too much memory.
But on WeChat Game platform, the current version cache decoded data in Image object, which has high memory usage.
So we enabled this option by default on WeChat, so that we can release Image cache immediately after uploaded to GPU.
!#zh
是否在将贴图上传至 GPU 之后删除原始图片缓存,删除之后图片将无法进行 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。
在 Web 平台,你通常不需要开启这个选项,因为在 Web 平台 Image 对象所占用的内存很小。
但是在微信小游戏平台的当前版本,Image 对象会缓存解码后的图片数据,它所占用的内存空间很大。
所以我们在微信平台默认开启了这个选项,这样我们就可以在上传 GL 贴图之后立即释放 Image 对象的内存,避免过高的内存占用。 */
static CLEANUP_IMAGE_CACHE: boolean;
/** !#en
Whether or not show mesh wire frame.
!#zh
是否显示网格的线框。 */
static SHOW_MESH_WIREFRAME: boolean;
/** !#en
Whether or not show mesh normal.
!#zh
是否显示网格的法线。 */
static SHOW_MESH_NORMAL: boolean;
/** !#en
Whether to enable multi-touch.
!#zh
是否开启多点触摸 */
static ENABLE_MULTI_TOUCH: boolean;
/** References:
https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap
!#en
Whether to use image bitmap first. If enabled, memory usage will increase.
!#zh
是否优先使用 image bitmap,启用之后,内存占用会变高 */
static ALLOW_IMAGE_BITMAP: boolean;
/** !#en
The image format supported by the engine defaults, and the supported formats may differ in different build platforms and device types.
Currently all platform and device support ['.webp', '.jpg', '.jpeg', '.bmp', '.png'], The iOS mobile platform also supports the PVR format。
!#zh
引擎默认支持的图片格式,支持的格式可能在不同的构建平台和设备类型上有所差别。
目前所有平台和设备支持的格式有 ['.webp', '.jpg', '.jpeg', '.bmp', '.png']. 另外 Ios 手机平台还额外支持了 PVR 格式。 */
static SUPPORT_TEXTURE_FORMATS: string[];
}
/** !#en The Light Component
!#zh 光源组件 */
export class Light extends Component {
}
/** !#en
Camera is usefull when making reel game or other games which need scroll screen.
Using camera will be more efficient than moving node to scroll screen.
Camera
!#zh
摄像机在制作卷轴或是其他需要移动屏幕的游戏时比较有用,使用摄像机将会比移动节点来移动屏幕更加高效。 */
export class Camera extends Component {
/** !#en
The camera zoom ratio, only support 2D camera.
!#zh
摄像机缩放比率, 只支持 2D camera。 */
zoomRatio: number;
/** !#en
Field of view. The width of the Camera’s view angle, measured in degrees along the local Y axis.
!#zh
决定摄像机视角的宽度,当摄像机处于透视投影模式下这个属性才会生效。 */
fov: number;
/** !#en
The viewport size of the Camera when set to orthographic projection.
!#zh
摄像机在正交投影模式下的视窗大小。 */
orthoSize: number;
/** !#en
The near clipping plane.
!#zh
摄像机的近剪裁面。 */
nearClip: number;
/** !#en
The far clipping plane.
!#zh
摄像机的远剪裁面。 */
farClip: number;
/** !#en
Is the camera orthographic (true) or perspective (false)?
!#zh
设置摄像机的投影模式是正交还是透视模式。 */
ortho: boolean;
/** !#en
Four values (0 ~ 1) that indicate where on the screen this camera view will be drawn.
!#zh
决定摄像机绘制在屏幕上哪个位置,值为(0 ~ 1)。 */
rect: Rect;
/** !#en
This is used to render parts of the scene selectively.
!#zh
决定摄像机会渲染场景的哪一部分。 */
cullingMask: number;
/** !#en
Determining what to clear when camera rendering.
!#zh
决定摄像机渲染时会清除哪些状态。 */
clearFlags: Camera.ClearFlags;
/** !#en
The color with which the screen will be cleared.
!#zh
摄像机用于清除屏幕的背景色。 */
backgroundColor: Color;
/** !#en
Camera's depth in the camera rendering order. Cameras with higher depth are rendered after cameras with lower depth.
!#zh
摄像机深度。用于决定摄像机的渲染顺序,值越大渲染在越上层。 */
depth: number;
/** !#en
Destination render texture.
Usually cameras render directly to screen, but for some effects it is useful to make a camera render into a texture.
!#zh
摄像机渲染的目标 RenderTexture。
一般摄像机会直接渲染到屏幕上,但是有一些效果可以使用摄像机渲染到 RenderTexture 上再对 RenderTexture 进行处理来实现。 */
targetTexture: RenderTexture;
/** !#en
Sets the camera's render stages.
!#zh
设置摄像机渲染的阶段 */
renderStages: number;
/** !#en Whether auto align camera viewport to screen
!#zh 是否自动将摄像机的视口对准屏幕 */
alignWithScreen: boolean;
/** !#en
The primary camera in the scene. Returns the rear most rendered camera, which is the camera with the lowest depth.
!#zh
当前场景中激活的主摄像机。将会返回渲染在屏幕最底层,也就是 depth 最小的摄像机。 */
static main: Camera;
/** !#en
All enabled cameras.
!#zh
当前激活的所有摄像机。 */
static cameras: Camera[];
/**
!#en
Get the first camera which the node belong to.
!#zh
获取节点所在的第一个摄像机。
@param node node
*/
static findCamera(node: Node): Camera;
/**
!#en
Get the screen to world matrix, only support 2D camera which alignWithScreen is true.
!#zh
获取屏幕坐标系到世界坐标系的矩阵,只适用于 alignWithScreen 为 true 的 2D 摄像机。
@param out the matrix to receive the result
*/
getScreenToWorldMatrix2D(out: Mat4): Mat4;
/**
!#en
Get the world to camera matrix, only support 2D camera which alignWithScreen is true.
!#zh
获取世界坐标系到摄像机坐标系的矩阵,只适用于 alignWithScreen 为 true 的 2D 摄像机。
@param out the matrix to receive the result
*/
getWorldToScreenMatrix2D(out: Mat4): Mat4;
/**
!#en
Convert point from screen to world.
!#zh
将坐标从屏幕坐标系转换到世界坐标系。
@param screenPosition screenPosition
@param out out
*/
getScreenToWorldPoint(screenPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3;
/**
!#en
Convert point from world to screen.
!#zh
将坐标从世界坐标系转化到屏幕坐标系。
@param worldPosition worldPosition
@param out out
*/
getWorldToScreenPoint(worldPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3;
/**
!#en
Get a ray from screen position
!#zh
从屏幕坐标获取一条射线
@param screenPos screenPos
*/
getRay(screenPos: Vec2): geomUtils.Ray;
/**
!#en
Check whether the node is in the camera.
!#zh
检测节点是否被此摄像机影响
@param node the node which need to check
*/
containsNode(node: Node): boolean;
/**
!#en
Render the camera manually.
!#zh
手动渲染摄像机。
@param rootNode rootNode
*/
render(rootNode?: Node): void;
/**
!#en
Returns the matrix that transform the node's (local) space coordinates into the camera's space coordinates.
!#zh
返回一个将节点坐标系转换到摄像机坐标系下的矩阵
@param node the node which should transform
*/
getNodeToCameraTransform(node: Node): AffineTransform;
/**
!#en
Conver a camera coordinates point to world coordinates.
!#zh
将一个摄像机坐标系下的点转换到世界坐标系下。
@param point the point which should transform
@param out the point to receive the result
*/
getCameraToWorldPoint(point: Vec2, out?: Vec2): Vec2;
/**
!#en
Conver a world coordinates point to camera coordinates.
!#zh
将一个世界坐标系下的点转换到摄像机坐标系下。
@param point point
@param out the point to receive the result
*/
getWorldToCameraPoint(point: Vec2, out?: Vec2): Vec2;
/**
!#en
Get the camera to world matrix
!#zh
获取摄像机坐标系到世界坐标系的矩阵
@param out the matrix to receive the result
*/
getCameraToWorldMatrix(out: Mat4): Mat4;
/**
!#en
Get the world to camera matrix
!#zh
获取世界坐标系到摄像机坐标系的矩阵
@param out the matrix to receive the result
*/
getWorldToCameraMatrix(out: Mat4): Mat4;
}
/** !#en
EventTarget is an object to which an event is dispatched when something has occurred.
Entity are the most common event targets, but other objects can be event targets too.
Event targets are an important part of the Fireball event model.
The event target serves as the focal point for how events flow through the scene graph.
When an event such as a mouse click or a keypress occurs, Fireball dispatches an event object
into the event flow from the root of the hierarchy. The event object then makes its way through
the scene graph until it reaches the event target, at which point it begins its return trip through
the scene graph. This round-trip journey to the event target is conceptually divided into three phases:
- The capture phase comprises the journey from the root to the last node before the event target's node
- The target phase comprises only the event target node
- The bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the tree
See also: http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
Event targets can implement the following methods:
- _getCapturingTargets
- _getBubblingTargets
!#zh
事件目标是事件触发时,分派的事件对象,Node 是最常见的事件目标,
但是其他对象也可以是事件目标。<br/> */
export class EventTarget extends CallbacksInvoker {
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Base class of all kinds of events.
!#zh 包含事件相关信息的对象。 */
export class Event {
/**
@param type The name of the event (case-sensitive), e.g. "click", "fire", or "submit"
@param bubbles A boolean indicating whether the event bubbles up through the tree or not
*/
constructor(type: string, bubbles: boolean);
/** !#en The name of the event (case-sensitive), e.g. "click", "fire", or "submit".
!#zh 事件类型。 */
type: string;
/** !#en Indicate whether the event bubbles up through the tree or not.
!#zh 表示该事件是否进行冒泡。 */
bubbles: boolean;
/** !#en A reference to the target to which the event was originally dispatched.
!#zh 最初事件触发的目标 */
target: any;
/** !#en A reference to the currently registered target for the event.
!#zh 当前目标 */
currentTarget: any;
/** !#en
Indicates which phase of the event flow is currently being evaluated.
Returns an integer value represented by 4 constants:
- Event.NONE = 0
- Event.CAPTURING_PHASE = 1
- Event.AT_TARGET = 2
- Event.BUBBLING_PHASE = 3
The phases are explained in the [section 3.1, Event dispatch and DOM event flow]
(http://www.w3.org/TR/DOM-Level-3-Events/#event-flow), of the DOM Level 3 Events specification.
!#zh 事件阶段 */
eventPhase: number;
/**
!#en Reset the event for being stored in the object pool.
!#zh 重置对象池中存储的事件。
*/
unuse(): string;
/**
!#en Reuse the event for being used again by the object pool.
!#zh 用于对象池再次使用的事件。
*/
reuse(): string;
/**
!#en Stops propagation for current event.
!#zh 停止传递当前事件。
*/
stopPropagation(): void;
/**
!#en Stops propagation for current event immediately,
the event won't even be dispatched to the listeners attached in the current target.
!#zh 立即停止当前事件的传递,事件甚至不会被分派到所连接的当前目标。
*/
stopPropagationImmediate(): void;
/**
!#en Checks whether the event has been stopped.
!#zh 检查该事件是否已经停止传递.
*/
isStopped(): boolean;
/**
!#en
<p>
Gets current target of the event <br/>
note: It only be available when the event listener is associated with node. <br/>
It returns 0 when the listener is associated with fixed priority.
</p>
!#zh 获取当前目标节点
*/
getCurrentTarget(): Node;
/**
!#en Gets the event type.
!#zh 获取事件类型
*/
getType(): string;
/** !#en Code for event without type.
!#zh 没有类型的事件 */
static NO_TYPE: string;
/** !#en The type code of Touch event.
!#zh 触摸事件类型 */
static TOUCH: string;
/** !#en The type code of Mouse event.
!#zh 鼠标事件类型 */
static MOUSE: string;
/** !#en The type code of Keyboard event.
!#zh 键盘事件类型 */
static KEYBOARD: string;
/** !#en The type code of Acceleration event.
!#zh 加速器事件类型 */
static ACCELERATION: string;
/** !#en Events not currently dispatched are in this phase
!#zh 尚未派发事件阶段 */
static NONE: number;
/** !#en
The capturing phase comprises the journey from the root to the last node before the event target's node
see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
!#zh 捕获阶段,包括事件目标节点之前从根节点到最后一个节点的过程。 */
static CAPTURING_PHASE: number;
/** !#en
The target phase comprises only the event target node
see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
!#zh 目标阶段仅包括事件目标节点。 */
static AT_TARGET: number;
/** !#en
The bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the hierarchy
see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
!#zh 冒泡阶段, 包括回程遇到到层次根节点的任何后续节点。 */
static BUBBLING_PHASE: number;
}
/** !#en
The System event, it currently supports keyboard events and accelerometer events.<br>
You can get the SystemEvent instance with cc.systemEvent.<br>
!#zh
系统事件,它目前支持按键事件和重力感应事件。<br>
你可以通过 cc.systemEvent 获取到 SystemEvent 的实例。<br> */
export class SystemEvent extends EventTarget {
/**
!#en whether enable accelerometer event
!#zh 是否启用加速度计事件
@param isEnable isEnable
*/
setAccelerometerEnabled(isEnable: boolean): void;
/**
!#en set accelerometer interval value
!#zh 设置加速度计间隔值
@param interval interval
*/
setAccelerometerInterval(interval: number): void;
}
/** !#en Box Collider.
!#zh 包围盒碰撞组件 */
export class BoxCollider extends Collider implements Collider.Box {
/** !#en
Collider info in world coordinate.
!#zh
碰撞体的世界坐标系下的信息。 */
world: ColliderInfo;
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Box size
!#zh 包围盒大小 */
size: Size;
}
/** !#en Circle Collider.
!#zh 圆形碰撞组件 */
export class CircleCollider extends Collider implements Collider.Circle {
/** !#en
Collider info in world coordinate.
!#zh
碰撞体的世界坐标系下的信息。 */
world: ColliderInfo;
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Circle radius
!#zh 圆形半径 */
radius: number;
}
/** !#en Collider component base class.
!#zh 碰撞组件基类 */
export class Collider extends Component {
/** !#en Tag. If a node has several collider components, you can judge which type of collider is collided according to the tag.
!#zh 标签。当一个节点上有多个碰撞组件时,在发生碰撞后,可以使用此标签来判断是节点上的哪个碰撞组件被碰撞了。 */
tag: number;
}
/** !#en
Collider Info.
!#zh
碰撞体信息。 */
export class ColliderInfo {
/** !#en
Collider aabb information of last frame
!#zh
碰撞体上一帧的 aabb 信息 */
preAabb: Rect;
/** !#en
Collider aabb information of current frame
!#zh
碰撞体当前帧的 aabb 信息 */
aabb: Rect;
/** !#en
Collider matrix
!#zh
碰撞体的矩阵信息 */
matrix: Mat4;
/** !#en
Collider radius (for CircleCollider)
!#zh
碰撞体的半径(只对 CircleCollider 有效) */
radius: number;
/** !#en
Collider position (for CircleCollider)
!#zh
碰撞体的位置(只对 CircleCollider 有效) */
position: Vec2;
/** !#en
Collider points (for BoxCollider and PolygonCollider)
!#zh
碰撞体的顶点信息(只对 BoxCollider 和 PolygonCollider 有效) */
points: Vec2[];
}
/** !#en
A simple collision manager class.
It will calculate whether the collider collides other colliders, if collides then call the callbacks.
!#zh
一个简单的碰撞组件管理类,用于处理节点之间的碰撞组件是否产生了碰撞,并调用相应回调函数。 */
export class CollisionManager implements EventTarget {
/** !#en
!#zh
是否开启碰撞管理,默认为不开启 */
enabled: boolean;
/** !#en
!#zh
是否绘制碰撞组件的包围盒,默认为不绘制 */
enabledDrawBoundingBox: boolean;
/** !#en
!#zh
是否绘制碰撞组件的形状,默认为不绘制 */
enabledDebugDraw: boolean;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Intersection helper class
!#zh 辅助类,用于测试形状与形状是否相交 */
export class Intersection {
/**
!#en Test line and line
!#zh 测试线段与线段是否相交
@param a1 The start point of the first line
@param a2 The end point of the first line
@param b1 The start point of the second line
@param b2 The end point of the second line
*/
static lineLine(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2): boolean;
/**
!#en Test line and rect
!#zh 测试线段与矩形是否相交
@param a1 The start point of the line
@param a2 The end point of the line
@param b The rect
*/
static lineRect(a1: Vec2, a2: Vec2, b: Rect): boolean;
/**
!#en Test line and polygon
!#zh 测试线段与多边形是否相交
@param a1 The start point of the line
@param a2 The end point of the line
@param b The polygon, a set of points
*/
static linePolygon(a1: Vec2, a2: Vec2, b: Vec2[]): boolean;
/**
!#en Test rect and rect
!#zh 测试矩形与矩形是否相交
@param a The first rect
@param b The second rect
*/
static rectRect(a: Rect, b: Rect): boolean;
/**
!#en Test rect and polygon
!#zh 测试矩形与多边形是否相交
@param a The rect
@param b The polygon, a set of points
*/
static rectPolygon(a: Rect, b: Vec2[]): boolean;
/**
!#en Test polygon and polygon
!#zh 测试多边形与多边形是否相交
@param a The first polygon, a set of points
@param b The second polygon, a set of points
*/
static polygonPolygon(a: Vec2[], b: Vec2[]): boolean;
/**
!#en Test circle and circle
!#zh 测试圆形与圆形是否相交
@param a Object contains position and radius
@param b Object contains position and radius
*/
static circleCircle(a: {position: Vec2, radius: number}, b: {position: Vec2, radius: number}): boolean;
/**
!#en Test polygon and circle
!#zh 测试矩形与圆形是否相交
@param polygon The Polygon, a set of points
@param circle Object contains position and radius
*/
static polygonCircle(polygon: Vec2[], circle: {position: Vec2, radius: number}): boolean;
/**
!#en Test whether the point is in the polygon
!#zh 测试一个点是否在一个多边形中
@param point The point
@param polygon The polygon, a set of points
*/
static pointInPolygon(point: Vec2, polygon: Vec2[]): boolean;
/**
!#en Calculate the distance of point to line.
!#zh 计算点到直线的距离。如果这是一条线段并且垂足不在线段内,则会计算点到线段端点的距离。
@param point The point
@param start The start point of line
@param end The end point of line
@param isSegment whether this line is a segment
*/
static pointLineDistance(point: Vec2, start: Vec2, end: Vec2, isSegment: boolean): number;
}
/** !#en Polygon Collider.
!#zh 多边形碰撞组件 */
export class PolygonCollider extends Collider implements Collider.Polygon {
/** !#en
Collider info in world coordinate.
!#zh
碰撞体的世界坐标系下的信息。 */
world: ColliderInfo;
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Polygon points
!#zh 多边形顶点数组 */
points: Vec2[];
}
/** !#en The touch event class
!#zh 封装了触摸相关的信息。 */
export class Touch {
/**
!#en Returns the current touch location in OpenGL coordinates.、
!#zh 获取当前触点位置。
*/
getLocation(): Vec2;
/**
!#en Returns X axis location value.
!#zh 获取当前触点 X 轴位置。
*/
getLocationX(): number;
/**
!#en Returns Y axis location value.
!#zh 获取当前触点 Y 轴位置。
*/
getLocationY(): number;
/**
!#en Returns the previous touch location in OpenGL coordinates.
!#zh 获取触点在上一次事件时的位置对象,对象包含 x 和 y 属性。
*/
getPreviousLocation(): Vec2;
/**
!#en Returns the start touch location in OpenGL coordinates.
!#zh 获取触点落下时的位置对象,对象包含 x 和 y 属性。
*/
getStartLocation(): Vec2;
/**
!#en Returns the delta distance from the previous touche to the current one in screen coordinates.
!#zh 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性。
*/
getDelta(): Vec2;
/**
!#en Returns the current touch location in screen coordinates.
!#zh 获取当前事件在游戏窗口内的坐标位置对象,对象包含 x 和 y 属性。
*/
getLocationInView(): Vec2;
/**
!#en Returns the previous touch location in screen coordinates.
!#zh 获取触点在上一次事件时在游戏窗口中的位置对象,对象包含 x 和 y 属性。
*/
getPreviousLocationInView(): Vec2;
/**
!#en Returns the start touch location in screen coordinates.
!#zh 获取触点落下时在游戏窗口中的位置对象,对象包含 x 和 y 属性。
*/
getStartLocationInView(): Vec2;
/**
!#en Returns the id of cc.Touch.
!#zh 触点的标识 ID,可以用来在多点触摸中跟踪触点。
*/
getID(): number;
/**
!#en Sets information to touch.
!#zh 设置触摸相关的信息。用于监控触摸事件。
@param id id
@param x x
@param y y
*/
setTouchInfo(id: number, x: number, y: number): void;
}
/** !#en The animation component is used to play back animations.
Animation provide several events to register:
- play : Emit when begin playing animation
- stop : Emit when stop playing animation
- pause : Emit when pause animation
- resume : Emit when resume animation
- lastframe : If animation repeat count is larger than 1, emit when animation play to the last frame
- finished : Emit when finish playing animation
!#zh Animation 组件用于播放动画。
Animation 提供了一系列可注册的事件:
- play : 开始播放时
- stop : 停止播放时
- pause : 暂停播放时
- resume : 恢复播放时
- lastframe : 假如动画循环次数大于 1,当动画播放到最后一帧时
- finished : 动画播放完成时 */
export class Animation extends Component implements EventTarget {
/** !#en Animation will play the default clip when start game.
!#zh 在勾选自动播放或调用 play() 时默认播放的动画剪辑。 */
defaultClip: AnimationClip;
/** !#en Current played clip.
!#zh 当前播放的动画剪辑。 */
currentClip: AnimationClip;
/** !#en Whether the animation should auto play the default clip when start game.
!#zh 是否在运行游戏后自动播放默认动画剪辑。 */
playOnLoad: boolean;
/**
!#en Get all the clips used in this animation.
!#zh 获取动画组件上的所有动画剪辑。
*/
getClips(): AnimationClip[];
/**
!#en Plays an animation and stop other animations.
!#zh 播放指定的动画,并且停止当前正在播放动画。如果没有指定动画,则播放默认动画。
@param name The name of animation to play. If no name is supplied then the default animation will be played.
@param startTime play an animation from startTime
@example
```js
var animCtrl = this.node.getComponent(cc.Animation);
animCtrl.play("linear");
```
*/
play(name?: string, startTime?: number): AnimationState;
/**
!#en
Plays an additive animation, it will not stop other animations.
If there are other animations playing, then will play several animations at the same time.
!#zh 播放指定的动画(将不会停止当前播放的动画)。如果没有指定动画,则播放默认动画。
@param name The name of animation to play. If no name is supplied then the default animation will be played.
@param startTime play an animation from startTime
@example
```js
// linear_1 and linear_2 at the same time playing.
var animCtrl = this.node.getComponent(cc.Animation);
animCtrl.playAdditive("linear_1");
animCtrl.playAdditive("linear_2");
```
*/
playAdditive(name?: string, startTime?: number): AnimationState;
/**
!#en Stops an animation named name. If no name is supplied then stops all playing animations that were started with this Animation. <br/>
Stopping an animation also Rewinds it to the Start.
!#zh 停止指定的动画。如果没有指定名字,则停止当前正在播放的动画。
@param name The animation to stop, if not supplied then stops all playing animations.
*/
stop(name?: string): void;
/**
!#en Pauses an animation named name. If no name is supplied then pauses all playing animations that were started with this Animation.
!#zh 暂停当前或者指定的动画。如果没有指定名字,则暂停当前正在播放的动画。
@param name The animation to pauses, if not supplied then pauses all playing animations.
*/
pause(name?: string): void;
/**
!#en Resumes an animation named name. If no name is supplied then resumes all paused animations that were started with this Animation.
!#zh 重新播放指定的动画,如果没有指定名字,则重新播放当前正在播放的动画。
@param name The animation to resumes, if not supplied then resumes all paused animations.
*/
resume(name?: string): void;
/**
!#en Make an animation named name go to the specified time. If no name is supplied then make all animations go to the specified time.
!#zh 设置指定动画的播放时间。如果没有指定名字,则设置当前播放动画的播放时间。
@param time The time to go to
@param name Specified animation name, if not supplied then make all animations go to the time.
*/
setCurrentTime(time?: number, name?: string): void;
/**
!#en Returns the animation state named name. If no animation with the specified name, the function will return null.
!#zh 获取当前或者指定的动画状态,如果未找到指定动画剪辑则返回 null。
@param name name
*/
getAnimationState(name: string): AnimationState;
/**
!#en Adds a clip to the animation with name newName. If a clip with that name already exists it will be replaced with the new clip.
!#zh 添加动画剪辑,并且可以重新设置该动画剪辑的名称。
@param clip the clip to add
@param newName newName
*/
addClip(clip: AnimationClip, newName?: string): AnimationState;
/**
!#en
Remove clip from the animation list. This will remove the clip and any animation states based on it.
If there are animation states depand on the clip are playing or clip is defaultClip, it will not delete the clip.
But if force is true, then will always remove the clip and any animation states based on it. If clip is defaultClip, defaultClip will be reset to null
!#zh
从动画列表中移除指定的动画剪辑,<br/>
如果依赖于 clip 的 AnimationState 正在播放或者 clip 是 defaultClip 的话,默认是不会删除 clip 的。
但是如果 force 参数为 true,则会强制停止该动画,然后移除该动画剪辑和相关的动画。这时候如果 clip 是 defaultClip,defaultClip 将会被重置为 null。
@param clip clip
@param force If force is true, then will always remove the clip and any animation states based on it.
*/
removeClip(clip: AnimationClip, force?: boolean): void;
/**
!#en
Samples animations at the current state.<br/>
This is useful when you explicitly want to set up some animation state, and sample it once.
!#zh 对指定或当前动画进行采样。你可以手动将动画设置到某一个状态,然后采样一次。
@param name name
*/
sample(name: string): void;
/**
!#en
Register animation event callback.
The event arguments will provide the AnimationState which emit the event.
When play an animation, will auto register the event callback to the AnimationState, and unregister the event callback from the AnimationState when animation stopped.
!#zh
注册动画事件回调。
回调的事件里将会附上发送事件的 AnimationState。
当播放一个动画时,会自动将事件注册到对应的 AnimationState 上,停止播放时会将事件从这个 AnimationState 上取消注册。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param state state
@param target The target (this object) to invoke the callback, can be null
@param useCapture When set to true, the capture argument prevents callback
from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE.
When false, callback will NOT be invoked when event's eventPhase attribute value is CAPTURING_PHASE.
Either way, callback will be invoked when event's eventPhase attribute value is AT_TARGET.
@example
```js
onPlay: function (type, state) {
// callback
}
// register event to all animation
animation.on('play', this.onPlay, this);
```
*/
on(type: string, callback: (event: Event.EventCustom) => void, target?: any, useCapture?: boolean): (event: Event.EventCustom) => void;
on<T>(type: string, callback: (event: T) => void, target?: any, useCapture?: boolean): (event: T) => void;
on(type: string, callback: (type: string, state: cc.AnimationState) => void, target?: any, useCapture?: boolean): (type: string, state: cc.AnimationState) => void;
/**
!#en
Unregister animation event callback.
!#zh
取消注册动画事件回调。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@param useCapture Specifies whether the callback being removed was registered as a capturing callback or not.
If not specified, useCapture defaults to false. If a callback was registered twice,
one with capture and one without, each must be removed separately. Removal of a capturing callback
does not affect a non-capturing version of the same listener, and vice versa.
@example
```js
// unregister event to all animation
animation.off('play', this.onPlay, this);
```
*/
off(type: string, callback?: Function, target?: any, useCapture?: boolean): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en Audio Source.
!#zh 音频源组件,能对音频剪辑。 */
export class AudioSource extends Component {
/** !#en
Is the audio source playing (Read Only). <br/>
Note: isPlaying is not supported for Native platforms.
!#zh
该音频剪辑是否正播放(只读)。<br/>
注意:Native 平台暂时不支持 isPlaying。 */
isPlaying: boolean;
/** !#en The clip of the audio source to play.
!#zh 要播放的音频剪辑。 */
clip: AudioClip;
/** !#en The volume of the audio source.
!#zh 音频源的音量(0.0 ~ 1.0)。 */
volume: number;
/** !#en Is the audio source mute?
!#zh 是否静音音频源。Mute 是设置音量为 0,取消静音是恢复原来的音量。 */
mute: boolean;
/** !#en Is the audio source looping?
!#zh 音频源是否循环播放? */
loop: boolean;
/** !#en If set to true, the audio source will automatically start playing on onEnable.
!#zh 如果设置为 true,音频源将在 onEnable 时自动播放。 */
playOnLoad: boolean;
/**
!#en Plays the clip.
!#zh 播放音频剪辑。
*/
play(): void;
/**
!#en Stops the clip.
!#zh 停止当前音频剪辑。
*/
stop(): void;
/**
!#en Pause the clip.
!#zh 暂停当前音频剪辑。
*/
pause(): void;
/**
!#en Resume the clip.
!#zh 恢复播放。
*/
resume(): void;
/**
!#en Rewind playing music.
!#zh 从头开始播放。
*/
rewind(): void;
/**
!#en Get current time
!#zh 获取当前的播放时间
*/
getCurrentTime(): number;
/**
!#en Set current time
!#zh 设置当前的播放时间
@param time time
*/
setCurrentTime(time: number): number;
/**
!#en Get audio duration
!#zh 获取当前音频的长度
*/
getDuration(): number;
}
/** !#en
This component will block all input events (mouse and touch) within the bounding box of the node, preventing the input from penetrating into the underlying node, typically for the background of the top UI.<br>
This component does not have any API interface and can be added directly to the scene to take effect.
!#zh
该组件将拦截所属节点 bounding box 内的所有输入事件(鼠标和触摸),防止输入穿透到下层节点,一般用于上层 UI 的背景。<br>
该组件没有任何 API 接口,直接添加到场景即可生效。 */
export class BlockInputEvents extends Component {
}
/** !#en
Button has 4 Transition types<br/>
When Button state changed:<br/>
If Transition type is Button.Transition.NONE, Button will do nothing<br/>
If Transition type is Button.Transition.COLOR, Button will change target's color<br/>
If Transition type is Button.Transition.SPRITE, Button will change target Sprite's sprite<br/>
If Transition type is Button.Transition.SCALE, Button will change target node's scale<br/>
Button will trigger 5 events:<br/>
Button.EVENT_TOUCH_DOWN<br/>
Button.EVENT_TOUCH_UP<br/>
Button.EVENT_HOVER_IN<br/>
Button.EVENT_HOVER_MOVE<br/>
Button.EVENT_HOVER_OUT<br/>
User can get the current clicked node with 'event.target' from event object which is passed as parameter in the callback function of click event.
!#zh
按钮组件。可以被按下,或者点击。
按钮可以通过修改 Transition 来设置按钮状态过渡的方式:
- Button.Transition.NONE // 不做任何过渡
- Button.Transition.COLOR // 进行颜色之间过渡
- Button.Transition.SPRITE // 进行精灵之间过渡
- Button.Transition.SCALE // 进行缩放过渡
按钮可以绑定事件(但是必须要在按钮的 Node 上才能绑定事件):<br/>
以下事件可以在全平台上都触发:
- cc.Node.EventType.TOUCH_START // 按下时事件
- cc.Node.EventType.TOUCH_Move // 按住移动后事件
- cc.Node.EventType.TOUCH_END // 按下后松开后事件
- cc.Node.EventType.TOUCH_CANCEL // 按下取消事件
以下事件只在 PC 平台上触发:
- cc.Node.EventType.MOUSE_DOWN // 鼠标按下时事件
- cc.Node.EventType.MOUSE_MOVE // 鼠标按住移动后事件
- cc.Node.EventType.MOUSE_ENTER // 鼠标进入目标事件
- cc.Node.EventType.MOUSE_LEAVE // 鼠标离开目标事件
- cc.Node.EventType.MOUSE_UP // 鼠标松开事件
- cc.Node.EventType.MOUSE_WHEEL // 鼠标滚轮事件
用户可以通过获取 __点击事件__ 回调函数的参数 event 的 target 属性获取当前点击对象。 */
export class Button extends Component implements GraySpriteState {
/** !#en
Whether the Button is disabled.
If true, the Button will trigger event and do transition.
!#zh
按钮事件是否被响应,如果为 false,则按钮将被禁用。 */
interactable: boolean;
/** !#en When this flag is true, Button target sprite will turn gray when interactable is false.
!#zh 如果这个标记为 true,当 button 的 interactable 属性为 false 的时候,会使用内置 shader 让 button 的 target 节点的 sprite 组件变灰 */
enableAutoGrayEffect: boolean;
/** !#en Transition type
!#zh 按钮状态改变时过渡方式。 */
transition: Button.Transition;
/** !#en Normal state color.
!#zh 普通状态下按钮所显示的颜色。 */
normalColor: Color;
/** !#en Pressed state color
!#zh 按下状态时按钮所显示的颜色。 */
pressedColor: Color;
/** !#en Hover state color
!#zh 悬停状态下按钮所显示的颜色。 */
hoverColor: Color;
/** !#en Disabled state color
!#zh 禁用状态下按钮所显示的颜色。 */
disabledColor: Color;
/** !#en Color and Scale transition duration
!#zh 颜色过渡和缩放过渡时所需时间 */
duration: number;
/** !#en When user press the button, the button will zoom to a scale.
The final scale of the button equals (button original scale * zoomScale)
!#zh 当用户点击按钮后,按钮会缩放到一个值,这个值等于 Button 原始 scale * zoomScale */
zoomScale: number;
/** !#en Normal state sprite
!#zh 普通状态下按钮所显示的 Sprite 。 */
normalSprite: SpriteFrame;
/** !#en Pressed state sprite
!#zh 按下状态时按钮所显示的 Sprite 。 */
pressedSprite: SpriteFrame;
/** !#en Hover state sprite
!#zh 悬停状态下按钮所显示的 Sprite 。 */
hoverSprite: SpriteFrame;
/** !#en Disabled state sprite
!#zh 禁用状态下按钮所显示的 Sprite 。 */
disabledSprite: SpriteFrame;
/** !#en
Transition target.
When Button state changed:
If Transition type is Button.Transition.NONE, Button will do nothing
If Transition type is Button.Transition.COLOR, Button will change target's color
If Transition type is Button.Transition.SPRITE, Button will change target Sprite's sprite
!#zh
需要过渡的目标。
当前按钮状态改变规则:
-如果 Transition type 选择 Button.Transition.NONE,按钮不做任何过渡。
-如果 Transition type 选择 Button.Transition.COLOR,按钮会对目标颜色进行颜色之间的过渡。
-如果 Transition type 选择 Button.Transition.Sprite,按钮会对目标 Sprite 进行 Sprite 之间的过渡。 */
target: Node;
/** !#en If Button is clicked, it will trigger event's handler
!#zh 按钮的点击事件列表。 */
clickEvents: Component.EventHandler[];
/** !#en The normal material.
!#zh 正常状态的材质。 */
normalMaterial: Material;
/** !#en The gray material.
!#zh 置灰状态的材质。 */
grayMaterial: Material;
}
/** !#zh: 作为 UI 根节点,为所有子节点提供视窗四边的位置信息以供对齐,另外提供屏幕适配策略接口,方便从编辑器设置。
注:由于本节点的尺寸会跟随屏幕拉伸,所以 anchorPoint 只支持 (0.5, 0.5),否则适配不同屏幕时坐标会有偏差。 */
export class Canvas extends Component {
/** !#en Current active canvas, the scene should only have one active canvas at the same time.
!#zh 当前激活的画布组件,场景同一时间只能有一个激活的画布。 */
static instance: Canvas;
/** !#en The desigin resolution for current scene.
!#zh 当前场景设计分辨率。 */
designResolution: Size;
/** !#en TODO
!#zh: 是否优先将设计分辨率高度撑满视图高度。 */
fitHeight: boolean;
/** !#en TODO
!#zh: 是否优先将设计分辨率宽度撑满视图宽度。 */
fitWidth: boolean;
}
/** !#en
Base class for everything attached to Node(Entity).<br/>
<br/>
NOTE: Not allowed to use construction parameters for Component's subclasses,
because Component is created by the engine.
!#zh
所有附加到节点的基类。<br/>
<br/>
注意:不允许使用组件的子类构造参数,因为组件是由引擎创建的。 */
export class Component extends Object {
/** !#en The node this component is attached to. A component is always attached to a node.
!#zh 该组件被附加到的节点。组件总会附加到一个节点。 */
node: Node;
/** !#en The uuid for editor.
!#zh 组件的 uuid,用于编辑器。 */
uuid: string;
/** !#en indicates whether this component is enabled or not.
!#zh 表示该组件自身是否启用。 */
enabled: boolean;
/** !#en indicates whether this component is enabled and its node is also active in the hierarchy.
!#zh 表示该组件是否被启用并且所在的节点也处于激活状态。 */
enabledInHierarchy: boolean;
/** !#en Returns a value which used to indicate the onLoad get called or not.
!#zh 返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。 */
_isOnLoadCalled: number;
/**
!#en Update is called every frame, if the Component is enabled.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh 如果该组件启用,则每帧调用 update。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
@param dt the delta time in seconds it took to complete the last frame
*/
protected update(dt: number): void;
/**
!#en LateUpdate is called every frame, if the Component is enabled.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh 如果该组件启用,则每帧调用 LateUpdate。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
@param dt the delta time in seconds it took to complete the last frame
*/
protected lateUpdate(dt: number): void;
/**
!#en
When attaching to an active node or its node first activated.
onLoad is always called before any start functions, this allows you to order initialization of scripts.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh
当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
*/
protected onLoad(): void;
/**
!#en
Called before all scripts' update if the Component is enabled the first time.
Usually used to initialize some logic which need to be called after all components' `onload` methods called.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh
如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
*/
protected start(): void;
/**
!#en Called when this component becomes enabled and its node is active.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh 当该组件被启用,并且它的节点也激活时。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
*/
protected onEnable(): void;
/**
!#en Called when this component becomes disabled or its node becomes inactive.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh 当该组件被禁用或节点变为无效时调用。<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
*/
protected onDisable(): void;
/**
!#en Called when this component will be destroyed.<br/>
This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere.
!#zh 当该组件被销毁时调用<br/>
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
*/
protected onDestroy(): void;
protected onFocusInEditor(): void;
protected onLostFocusInEditor(): void;
/**
!#en Called to initialize the component or node’s properties when adding the component the first time or when the Reset command is used. This function is only called in editor.
!#zh 用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
*/
protected resetInEditor(): void;
/**
!#en Adds a component class to the node. You can also add component to node by passing in the name of the script.
!#zh 向节点添加一个组件类,你还可以通过传入脚本的名称来添加组件。
@param typeOrClassName the constructor or the class name of the component to add
@example
```js
var sprite = node.addComponent(cc.Sprite);
var test = node.addComponent("Test");
```
*/
addComponent<T extends Component>(type: {new(): T}): T;
addComponent(className: string): any;
/**
!#en
Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
You can also get component in the node by passing in the name of the script.
!#zh
获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
传入参数也可以是脚本的名称。
@param typeOrClassName typeOrClassName
@example
```js
// get sprite component.
var sprite = node.getComponent(cc.Sprite);
// get custom test calss.
var test = node.getComponent("Test");
```
*/
getComponent<T extends Component>(type: {prototype: T}): T;
getComponent(className: string): any;
/**
!#en Returns all components of supplied Type in the node.
!#zh 返回节点上指定类型的所有组件。
@param typeOrClassName typeOrClassName
@example
```js
var sprites = node.getComponents(cc.Sprite);
var tests = node.getComponents("Test");
```
*/
getComponents<T extends Component>(type: {prototype: T}): T[];
getComponents(className: string): any[];
/**
!#en Returns the component of supplied type in any of its children using depth first search.
!#zh 递归查找所有子节点中第一个匹配指定类型的组件。
@param typeOrClassName typeOrClassName
@example
```js
var sprite = node.getComponentInChildren(cc.Sprite);
var Test = node.getComponentInChildren("Test");
```
*/
getComponentInChildren<T extends Component>(type: {prototype: T}): T;
getComponentInChildren(className: string): any;
/**
!#en Returns the components of supplied type in self or any of its children using depth first search.
!#zh 递归查找自身或所有子节点中指定类型的组件
@param typeOrClassName typeOrClassName
@example
```js
var sprites = node.getComponentsInChildren(cc.Sprite);
var tests = node.getComponentsInChildren("Test");
```
*/
getComponentsInChildren<T extends Component>(type: {prototype: T}): T[];
getComponentsInChildren(className: string): any[];
/**
!#en
If the component's bounding box is different from the node's, you can implement this method to supply
a custom axis aligned bounding box (AABB), so the editor's scene view can perform hit test properly.
!#zh
如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB),
以便编辑器的场景视图可以正确地执行点选测试。
@param out_rect the Rect to receive the bounding box
*/
_getLocalBounds(out_rect: Rect): void;
/**
!#en
onRestore is called after the user clicks the Reset item in the Inspector's context menu or performs
an undo operation on this component.<br/>
<br/>
If the component contains the "internal state", short for "temporary member variables which not included<br/>
in its CCClass properties", then you may need to implement this function.<br/>
<br/>
The editor will call the getset accessors of your component to record/restore the component's state<br/>
for undo/redo operation. However, in extreme cases, it may not works well. Then you should implement<br/>
this function to manually synchronize your component's "internal states" with its public properties.<br/>
Once you implement this function, all the getset accessors of your component will not be called when<br/>
the user performs an undo/redo operation. Which means that only the properties with default value<br/>
will be recorded or restored by editor.<br/>
<br/>
Similarly, the editor may failed to reset your component correctly in extreme cases. Then if you need<br/>
to support the reset menu, you should manually synchronize your component's "internal states" with its<br/>
properties in this function. Once you implement this function, all the getset accessors of your component<br/>
will not be called during reset operation. Which means that only the properties with default value<br/>
will be reset by editor.
This function is only called in editor mode.
!#zh
onRestore 是用户在检查器菜单点击 Reset 时,对此组件执行撤消操作后调用的。<br/>
<br/>
如果组件包含了“内部状态”(不在 CCClass 属性中定义的临时成员变量),那么你可能需要实现该方法。<br/>
<br/>
编辑器执行撤销/重做操作时,将调用组件的 get set 来录制和还原组件的状态。然而,在极端的情况下,它可能无法良好运作。<br/>
那么你就应该实现这个方法,手动根据组件的属性同步“内部状态”。一旦你实现这个方法,当用户撤销或重做时,组件的所有 get set 都不会再被调用。这意味着仅仅指定了默认值的属性将被编辑器记录和还原。<br/>
<br/>
同样的,编辑可能无法在极端情况下正确地重置您的组件。如果你需要支持组件重置菜单,则需要在该方法中手工同步组件属性到“内部状态”。一旦你实现这个方法,组件的所有 get set 都不会在重置操作时被调用。这意味着仅仅指定了默认值的属性将被编辑器重置。
<br/>
此方法仅在编辑器下会被调用。
*/
onRestore(): void;
/**
!#en
Schedules a custom selector.<br/>
If the selector is already scheduled, then the interval parameter will be updated without scheduling it again.
!#zh
调度一个自定义的回调函数。<br/>
如果回调函数已调度,那么将不会重复调度它,只会更新时间间隔参数。
@param callback The callback function
@param interval Tick interval in seconds. 0 means tick every frame.
@param repeat The selector will be executed (repeat + 1) times, you can use cc.macro.REPEAT_FOREVER for tick infinitely.
@param delay The amount of time that the first tick will wait before execution. Unit: s
@example
```js
var timeCallback = function (dt) {
cc.log("time: " + dt);
}
this.schedule(timeCallback, 1);
```
*/
schedule(callback: Function, interval?: number, repeat?: number, delay?: number): void;
/**
!#en Schedules a callback function that runs only once, with a delay of 0 or larger.
!#zh 调度一个只运行一次的回调函数,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。
@param callback A function wrapped as a selector
@param delay The amount of time that the first tick will wait before execution. Unit: s
@example
```js
var timeCallback = function (dt) {
cc.log("time: " + dt);
}
this.scheduleOnce(timeCallback, 2);
```
*/
scheduleOnce(callback: Function, delay?: number): void;
/**
!#en Unschedules a custom callback function.
!#zh 取消调度一个自定义的回调函数。
@param callback_fn A function wrapped as a selector
@example
```js
this.unschedule(_callback);
```
*/
unschedule(callback_fn: Function): void;
/**
!#en
unschedule all scheduled callback functions: custom callback functions, and the 'update' callback function.<br/>
Actions are not affected by this method.
!#zh 取消调度所有已调度的回调函数:定制的回调函数以及 `update` 回调函数。动作不受此方法影响。
@example
```js
this.unscheduleAllCallbacks();
```
*/
unscheduleAllCallbacks(): void;
}
/** !#en The Label Component.
!#zh 文字标签组件 */
export class Label extends RenderComponent {
/** !#en Content string of label.
!#zh 标签显示的文本内容。 */
string: string;
/** !#en Horizontal Alignment of label.
!#zh 文本内容的水平对齐方式。 */
horizontalAlign: Label.HorizontalAlign;
/** !#en Vertical Alignment of label.
!#zh 文本内容的垂直对齐方式。 */
verticalAlign: Label.VerticalAlign;
/** !#en The actual rendering font size in shrink mode
!#zh SHRINK 模式下面文本实际渲染的字体大小 */
actualFontSize: number;
/** !#en Font size of label.
!#zh 文本字体大小。 */
fontSize: number;
/** !#en Font family of label, only take effect when useSystemFont property is true.
!#zh 文本字体名称, 只在 useSystemFont 属性为 true 的时候生效。 */
fontFamily: string;
/** !#en Line Height of label.
!#zh 文本行高。 */
lineHeight: number;
/** !#en Overflow of label.
!#zh 文字显示超出范围时的处理方式。 */
overflow: Label.Overflow;
/** !#en Whether auto wrap label when string width is large than label width.
!#zh 是否自动换行。 */
enableWrapText: boolean;
/** !#en The font of label.
!#zh 文本字体。 */
font: Font;
/** !#en Whether use system font name or not.
!#zh 是否使用系统字体。 */
useSystemFont: boolean;
/** !#en The spacing of the x axis between characters, only take Effect when using bitmap fonts.
!#zh 文字之间 x 轴的间距,仅在使用位图字体时生效。 */
spacingX: number;
/** !#en The cache mode of label. This mode only supports system fonts.
!#zh 文本缓存模式, 该模式只支持系统字体。 */
cacheMode: Label.CacheMode;
/** !#en Whether enable bold.
!#zh 是否启用黑体。 */
enableBold: boolean;
/** !#en Whether enable italic.
!#zh 是否启用黑体。 */
enableItalic: boolean;
/** !#en Whether enable underline.
!#zh 是否启用下划线。 */
enableUnderline: boolean;
/** !#en The height of underline.
!#zh 下划线高度。 */
underlineHeight: number;
/**
!#zh 需要保证当前场景中没有使用CHAR缓存的Label才可以清除,否则已渲染的文字没有重新绘制会不显示
!#en It can be cleared that need to ensure there is not use the CHAR cache in the current scene. Otherwise, the rendered text will not be displayed without repainting.
*/
static clearCharCache(): void;
}
/** !#en Outline effect used to change the display, only for system fonts or TTF fonts
!#zh 描边效果组件,用于字体描边,只能用于系统字体 */
export class LabelOutline extends Component {
/** !#en outline color
!#zh 改变描边的颜色 */
color: Color;
/** !#en Change the outline width
!#zh 改变描边的宽度 */
width: number;
}
/** !#en Shadow effect for Label component, only for system fonts or TTF fonts
!#zh 用于给 Label 组件添加阴影效果,只能用于系统字体或 ttf 字体 */
export class LabelShadow extends Component {
/** !#en The shadow color
!#zh 阴影的颜色 */
color: Color;
/** !#en Offset between font and shadow
!#zh 字体与阴影的偏移 */
offset: Vec2;
/** !#en A non-negative float specifying the level of shadow blur
!#zh 阴影的模糊程度 */
blur: number;
}
/** !#en
The Layout is a container component, use it to arrange child elements easily.<br>
Note:<br>
1.Scaling and rotation of child nodes are not considered.<br>
2.After setting the Layout, the results need to be updated until the next frame,
unless you manually call {{#crossLink "Layout/updateLayout:method"}}{{/crossLink}}。
!#zh
Layout 组件相当于一个容器,能自动对它的所有子节点进行统一排版。<br>
注意:<br>
1.不会考虑子节点的缩放和旋转。<br>
2.对 Layout 设置后结果需要到下一帧才会更新,除非你设置完以后手动调用 {{#crossLink "Layout/updateLayout:method"}}{{/crossLink}}。 */
export class Layout extends Component {
/** !#en The layout type.
!#zh 布局类型 */
type: Layout.Type;
/** !#en
The are three resize modes for Layout.
None, resize Container and resize children.
!#zh 缩放模式 */
resizeMode: Layout.ResizeMode;
/** !#en The cell size for grid layout.
!#zh 每个格子的大小,只有布局类型为 GRID 的时候才有效。 */
cellSize: Size;
/** !#en
The start axis for grid layout. If you choose horizontal, then children will layout horizontally at first,
and then break line on demand. Choose vertical if you want to layout vertically at first .
!#zh 起始轴方向类型,可进行水平和垂直布局排列,只有布局类型为 GRID 的时候才有效。 */
startAxis: Layout.AxisDirection;
/** !#en The left padding of layout, it only effect the layout in one direction.
!#zh 容器内左边距,只会在一个布局方向上生效。 */
paddingLeft: number;
/** !#en The right padding of layout, it only effect the layout in one direction.
!#zh 容器内右边距,只会在一个布局方向上生效。 */
paddingRight: number;
/** !#en The top padding of layout, it only effect the layout in one direction.
!#zh 容器内上边距,只会在一个布局方向上生效。 */
paddingTop: number;
/** !#en The bottom padding of layout, it only effect the layout in one direction.
!#zh 容器内下边距,只会在一个布局方向上生效。 */
paddingBottom: number;
/** !#en The distance in x-axis between each element in layout.
!#zh 子节点之间的水平间距。 */
spacingX: number;
/** !#en The distance in y-axis between each element in layout.
!#zh 子节点之间的垂直间距。 */
spacingY: number;
/** !#en
Only take effect in Vertical layout mode.
This option changes the start element's positioning.
!#zh 垂直排列子节点的方向。 */
verticalDirection: Layout.VerticalDirection;
/** !#en
Only take effect in Horizontal layout mode.
This option changes the start element's positioning.
!#zh 水平排列子节点的方向。 */
horizontalDirection: Layout.HorizontalDirection;
/** !#en Adjust the layout if the children scaled.
!#zh 子节点缩放比例是否影响布局。 */
affectedByScale: boolean;
/**
!#en Perform the layout update
!#zh 立即执行更新布局
@example
```js
layout.type = cc.Layout.HORIZONTAL;
layout.node.addChild(childNode);
cc.log(childNode.x); // not yet changed
layout.updateLayout();
cc.log(childNode.x); // changed
```
*/
updateLayout(): void;
}
/** !#en The Mask Component
!#zh 遮罩组件 */
export class Mask extends RenderComponent {
/** !#en The mask type.
!#zh 遮罩类型 */
type: Mask.Type;
/** !#en The mask image
!#zh 遮罩所需要的贴图 */
spriteFrame: SpriteFrame;
/** !#en
The alpha threshold.(Not supported Canvas Mode) <br/>
The content is drawn only where the stencil have pixel with alpha greater than the alphaThreshold. <br/>
Should be a float between 0 and 1. <br/>
This default to 0.1.
When it's set to 1, the stencil will discard all pixels, nothing will be shown.
!#zh
Alpha 阈值(不支持 Canvas 模式)<br/>
只有当模板的像素的 alpha 大于等于 alphaThreshold 时,才会绘制内容。<br/>
该数值 0 ~ 1 之间的浮点数,默认值为 0.1
当被设置为 1 时,会丢弃所有蒙版像素,所以不会显示任何内容 */
alphaThreshold: number;
/** !#en Reverse mask (Not supported Canvas Mode)
!#zh 反向遮罩(不支持 Canvas 模式) */
inverted: boolean;
/** TODO: remove segments, not supported by graphics
!#en The segements for ellipse mask.
!#zh 椭圆遮罩的曲线细分数 */
segements: number;
}
/** !#en
cc.MotionStreak manages a Ribbon based on it's motion in absolute space. <br/>
You construct it with a fadeTime, minimum segment size, texture path, texture <br/>
length and color. The fadeTime controls how long it takes each vertex in <br/>
the streak to fade out, the minimum segment size it how many pixels the <br/>
streak will move before adding a new ribbon segment, and the texture <br/>
length is the how many pixels the texture is stretched across. The texture <br/>
is vertically aligned along the streak segment.
!#zh 运动轨迹,用于游戏对象的运动轨迹上实现拖尾渐隐效果。 */
export class MotionStreak extends Component implements BlendFunc {
/** !#en
!#zh 在编辑器模式下预览拖尾效果。 */
preview: boolean;
/** !#en The fade time to fade.
!#zh 拖尾的渐隐时间,以秒为单位。 */
fadeTime: number;
/** !#en The minimum segment size.
!#zh 拖尾之间最小距离。 */
minSeg: number;
/** !#en The stroke's width.
!#zh 拖尾的宽度。 */
stroke: number;
/** !#en The texture of the MotionStreak.
!#zh 拖尾的贴图。 */
texture: Texture2D;
/** !#en The color of the MotionStreak.
!#zh 拖尾的颜色 */
color: Color;
/** !#en The fast Mode.
!#zh 是否启用了快速模式。当启用快速模式,新的点会被更快地添加,但精度较低。 */
fastMode: boolean;
/**
!#en Remove all living segments of the ribbon.
!#zh 删除当前所有的拖尾片段。
@example
```js
// Remove all living segments of the ribbon.
myMotionStreak.reset();
```
*/
reset(): void;
/** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost.
!#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */
srcBlendFactor: macro.BlendFactor;
/** !#en specify the destination Blend Factor.
!#zh 指定目标的混合模式 */
dstBlendFactor: macro.BlendFactor;
}
/** !#en The PageView control
!#zh 页面视图组件 */
export class PageView extends ScrollView {
/** !#en Specify the size type of each page in PageView.
!#zh 页面视图中每个页面大小类型 */
sizeMode: PageView.SizeMode;
/** !#en The page view direction
!#zh 页面视图滚动类型 */
direction: PageView.Direction;
/** !#en
The scroll threshold value, when drag exceeds this value,
release the next page will automatically scroll, less than the restore
!#zh 滚动临界值,默认单位百分比,当拖拽超出该数值时,松开会自动滚动下一页,小于时则还原。 */
scrollThreshold: number;
/** !#en
Auto page turning velocity threshold. When users swipe the PageView quickly,
it will calculate a velocity based on the scroll distance and time,
if the calculated velocity is larger than the threshold, then it will trigger page turning.
!#zh
快速滑动翻页临界值。
当用户快速滑动时,会根据滑动开始和结束的距离与时间计算出一个速度值,
该值与此临界值相比较,如果大于临界值,则进行自动翻页。 */
autoPageTurningThreshold: number;
/** !#en Change the PageTurning event timing of PageView.
!#zh 设置 PageView PageTurning 事件的发送时机。 */
pageTurningEventTiming: number;
/** !#en The Page View Indicator
!#zh 页面视图指示器组件 */
indicator: PageViewIndicator;
/** !#en The time required to turn over a page. unit: second
!#zh 每个页面翻页时所需时间。单位:秒 */
pageTurningSpeed: number;
/** !#en PageView events callback
!#zh 滚动视图的事件回调函数 */
pageEvents: Component.EventHandler[];
/**
!#en Returns current page index
!#zh 返回当前页面索引
*/
getCurrentPageIndex(): number;
/**
!#en Set current page index
!#zh 设置当前页面索引
@param index index
*/
setCurrentPageIndex(index: number): void;
/**
!#en Returns all pages of pageview
!#zh 返回视图中的所有页面
*/
getPages(): Node[];
/**
!#en At the end of the current page view to insert a new view
!#zh 在当前页面视图的尾部插入一个新视图
@param page page
*/
addPage(page: Node): void;
/**
!#en Inserts a page in the specified location
!#zh 将页面插入指定位置中
@param page page
@param index index
*/
insertPage(page: Node, index: number): void;
/**
!#en Removes a page from PageView.
!#zh 移除指定页面
@param page page
*/
removePage(page: Node): void;
/**
!#en Removes a page at index of PageView.
!#zh 移除指定下标的页面
@param index index
*/
removePageAtIndex(index: number): void;
/**
!#en Removes all pages from PageView
!#zh 移除所有页面
*/
removeAllPages(): void;
/**
!#en Scroll PageView to index.
!#zh 滚动到指定页面
@param idx index of page.
@param timeInSecond scrolling time
*/
scrollToPage(idx: number, timeInSecond: number): void;
}
/** !#en The Page View Indicator Component
!#zh 页面视图每页标记组件 */
export class PageViewIndicator extends Component {
/** !#en The spriteFrame for each element.
!#zh 每个页面标记显示的图片 */
spriteFrame: SpriteFrame;
/** !#en The location direction of PageViewIndicator.
!#zh 页面标记摆放方向 */
direction: PageViewIndicator.Direction;
/** !#en The cellSize for each element.
!#zh 每个页面标记的大小 */
cellSize: Size;
/** !#en The distance between each element.
!#zh 每个页面标记之间的边距 */
spacing: number;
/**
!#en Set Page View
!#zh 设置页面视图
@param target target
*/
setPageView(target: PageView): void;
}
/** !#en
Visual indicator of progress in some operation.
Displays a bar to the user representing how far the operation has progressed.
!#zh
进度条组件,可用于显示加载资源时的进度。 */
export class ProgressBar extends Component {
/** !#en The targeted Sprite which will be changed progressively.
!#zh 用来显示进度条比例的 Sprite 对象。 */
barSprite: Sprite;
/** !#en The progress mode, there are two modes supported now: horizontal and vertical.
!#zh 进度条的模式 */
mode: ProgressBar.Mode;
/** !#en The total width or height of the bar sprite.
!#zh 进度条实际的总长度 */
totalLength: number;
/** !#en The current progress of the bar sprite. The valid value is between 0-1.
!#zh 当前进度值,该数值的区间是 0-1 之间。 */
progress: number;
/** !#en Whether reverse the progress direction of the bar sprite.
!#zh 进度条是否进行反方向变化。 */
reverse: boolean;
}
/** !#en
Base class for components which supports rendering features.
!#zh
所有支持渲染的组件的基类 */
export class RenderComponent extends Component {
/** !#en The materials used by this render component.
!#zh 渲染组件使用的材质。 */
sharedMaterials: Material[];
/**
!#en Get the material by index.
!#zh 根据指定索引获取材质
@param index index
*/
getMaterial(index: number): MaterialVariant;
/**
!#en Gets all the materials.
!#zh 获取所有材质。
*/
getMaterials(): MaterialVariant[];
/**
!#en Set the material by index.
!#zh 根据指定索引设置材质
@param index index
@param material material
*/
setMaterial(index: number, material: Material): Material;
}
/** !#en The RichText Component.
!#zh 富文本组件 */
export class RichText extends Component {
/** !#en Content string of RichText.
!#zh 富文本显示的文本内容。 */
string: string;
/** !#en Horizontal Alignment of each line in RichText.
!#zh 文本内容的水平对齐方式。 */
horizontalAlign: macro.TextAlignment;
/** !#en Font size of RichText.
!#zh 富文本字体大小。 */
fontSize: number;
/** !#en Custom System font of RichText
!#zh 富文本定制系统字体 */
fontFamily: string;
/** !#en Custom TTF font of RichText
!#zh 富文本定制字体 */
font: TTFFont;
/** !#en Whether use system font name or not.
!#zh 是否使用系统字体。 */
useSystemFont: boolean;
/** !#en The cache mode of label. This mode only supports system fonts.
!#zh 文本缓存模式, 该模式只支持系统字体。 */
cacheMode: Label.CacheMode;
/** !#en The maximize width of the RichText
!#zh 富文本的最大宽度 */
maxWidth: number;
/** !#en Line Height of RichText.
!#zh 富文本行高。 */
lineHeight: number;
/** !#en The image atlas for the img tag. For each src value in the img tag, there should be a valid spriteFrame in the image atlas.
!#zh 对于 img 标签里面的 src 属性名称,都需要在 imageAtlas 里面找到一个有效的 spriteFrame,否则 img tag 会判定为无效。 */
imageAtlas: SpriteAtlas;
/** !#en
Once checked, the RichText will block all input events (mouse and touch) within
the bounding box of the node, preventing the input from penetrating into the underlying node.
!#zh
选中此选项后,RichText 将阻止节点边界框中的所有输入事件(鼠标和触摸),从而防止输入事件穿透到底层节点。 */
handleTouchEvent: boolean;
}
/** !#en
This component is used to adjust the layout of current node to respect the safe area of a notched mobile device such as the iPhone X.
It is typically used for the top node of the UI interaction area. For specific usage, refer to the official [example-cases/02_ui/16_safeArea/SafeArea.fire](https://github.com/cocos-creator/example-cases).
The concept of safe area is to give you a fixed inner rectangle in which you can safely display content that will be drawn on screen.
You are strongly discouraged from providing controls outside of this area. But your screen background could embellish edges.
This component internally uses the API `cc.sys.getSafeAreaRect();` to obtain the safe area of the current iOS or Android device,
and implements the adaptation by using the Widget component and set anchor.
!#zh
该组件会将所在节点的布局适配到 iPhone X 等异形屏手机的安全区域内,通常用于 UI 交互区域的顶层节点,具体用法可参考官方范例 [example-cases/02_ui/16_safeArea/SafeArea.fire](https://github.com/cocos-creator/example-cases)。
该组件内部通过 API `cc.sys.getSafeAreaRect();` 获取到当前 iOS 或 Android 设备的安全区域,并通过 Widget 组件实现适配。 */
export class SafeArea extends Component {
/**
!#en Adapt to safe area
!#zh 立即适配安全区域
@example
```js
let safeArea = this.node.addComponent(cc.SafeArea);
safeArea.updateArea();
```
*/
updateArea(): void;
}
/** !#en
The Scrollbar control allows the user to scroll an image or other view that is too large to see completely
!#zh 滚动条组件 */
export class Scrollbar extends Component {
/** !#en The "handle" part of the scrollbar.
!#zh 作为当前滚动区域位置显示的滑块 Sprite。 */
handle: Sprite;
/** !#en The direction of scrollbar.
!#zh ScrollBar 的滚动方向。 */
direction: Scrollbar.Direction;
/** !#en Whether enable auto hide or not.
!#zh 是否在没有滚动动作时自动隐藏 ScrollBar。 */
enableAutoHide: boolean;
/** !#en
The time to hide scrollbar when scroll finished.
Note: This value is only useful when enableAutoHide is true.
!#zh
没有滚动动作后经过多久会自动隐藏。
注意:只要当 “enableAutoHide” 为 true 时,才有效。 */
autoHideTime: number;
}
/** !#en
Layout container for a view hierarchy that can be scrolled by the user,
allowing it to be larger than the physical display.
!#zh
滚动视图组件 */
export class ScrollView extends Component {
/** !#en This is a reference to the UI element to be scrolled.
!#zh 可滚动展示内容的节点。 */
content: Node;
/** !#en Enable horizontal scroll.
!#zh 是否开启水平滚动。 */
horizontal: boolean;
/** !#en Enable vertical scroll.
!#zh 是否开启垂直滚动。 */
vertical: boolean;
/** !#en When inertia is set, the content will continue to move when touch ended.
!#zh 是否开启滚动惯性。 */
inertia: boolean;
/** !#en
It determines how quickly the content stop moving. A value of 1 will stop the movement immediately.
A value of 0 will never stop the movement until it reaches to the boundary of scrollview.
!#zh
开启惯性后,在用户停止触摸后滚动多快停止,0表示永不停止,1表示立刻停止。 */
brake: number;
/** !#en When elastic is set, the content will be bounce back when move out of boundary.
!#zh 是否允许滚动内容超过边界,并在停止触摸后回弹。 */
elastic: boolean;
/** !#en The elapse time of bouncing back. A value of 0 will bounce back immediately.
!#zh 回弹持续的时间,0 表示将立即反弹。 */
bounceDuration: number;
/** !#en The horizontal scrollbar reference.
!#zh 水平滚动的 ScrollBar。 */
horizontalScrollBar: Scrollbar;
/** !#en The vertical scrollbar reference.
!#zh 垂直滚动的 ScrollBar。 */
verticalScrollBar: Scrollbar;
/** !#en Scrollview events callback
!#zh 滚动视图的事件回调函数 */
scrollEvents: Component.EventHandler[];
/** !#en If cancelInnerEvents is set to true, the scroll behavior will cancel touch events on inner content nodes
It's set to true by default.
!#zh 如果这个属性被设置为 true,那么滚动行为会取消子节点上注册的触摸事件,默认被设置为 true。
注意,子节点上的 touchstart 事件仍然会触发,触点移动距离非常短的情况下 touchmove 和 touchend 也不会受影响。 */
cancelInnerEvents: boolean;
/**
!#en Scroll the content to the bottom boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图底部。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the bottom boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the bottom of the view.
scrollView.scrollToBottom(0.1);
```
*/
scrollToBottom(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the top boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图顶部。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the top boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the top of the view.
scrollView.scrollToTop(0.1);
```
*/
scrollToTop(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the left boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图左边。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the left boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the left of the view.
scrollView.scrollToLeft(0.1);
```
*/
scrollToLeft(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the right boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图右边。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the right boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the right of the view.
scrollView.scrollToRight(0.1);
```
*/
scrollToRight(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the top left boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图左上角。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the top left boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the upper left corner of the view.
scrollView.scrollToTopLeft(0.1);
```
*/
scrollToTopLeft(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the top right boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图右上角。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the top right boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the top right corner of the view.
scrollView.scrollToTopRight(0.1);
```
*/
scrollToTopRight(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the bottom left boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图左下角。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the bottom left boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the lower left corner of the view.
scrollView.scrollToBottomLeft(0.1);
```
*/
scrollToBottomLeft(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the bottom right boundary of ScrollView.
!#zh 视图内容将在规定时间内滚动到视图右下角。
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the bottom right boundary immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to the lower right corner of the view.
scrollView.scrollToBottomRight(0.1);
```
*/
scrollToBottomRight(timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll with an offset related to the ScrollView's top left origin, if timeInSecond is omitted, then it will jump to the
specific offset immediately.
!#zh 视图内容在规定时间内将滚动到 ScrollView 相对左上角原点的偏移位置, 如果 timeInSecond参数不传,则立即滚动到指定偏移位置。
@param offset A Vec2, the value of which each axis between 0 and maxScrollOffset
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the specific offset of ScrollView immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to middle position in 0.1 second in x-axis
let maxScrollOffset = this.getMaxScrollOffset();
scrollView.scrollToOffset(cc.v2(maxScrollOffset.x / 2, 0), 0.1);
```
*/
scrollToOffset(offset: Vec2, timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Get the positive offset value corresponds to the content's top left boundary.
!#zh 获取滚动视图相对于左上角原点的当前滚动偏移
*/
getScrollOffset(): Vec2;
/**
!#en Get the maximize available scroll offset
!#zh 获取滚动视图最大可以滚动的偏移量
*/
getMaxScrollOffset(): Vec2;
/**
!#en Scroll the content to the horizontal percent position of ScrollView.
!#zh 视图内容在规定时间内将滚动到 ScrollView 水平方向的百分比位置上。
@param percent A value between 0 and 1.
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the horizontal percent position of ScrollView immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Scroll to middle position.
scrollView.scrollToBottomRight(0.5, 0.1);
```
*/
scrollToPercentHorizontal(percent: number, timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the percent position of ScrollView in any direction.
!#zh 视图内容在规定时间内进行垂直方向和水平方向的滚动,并且滚动到指定百分比位置上。
@param anchor A point which will be clamp between cc.v2(0,0) and cc.v2(1,1).
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the percent position of ScrollView immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
@example
```js
// Vertical scroll to the bottom of the view.
scrollView.scrollTo(cc.v2(0, 1), 0.1);
// Horizontal scroll to view right.
scrollView.scrollTo(cc.v2(1, 0), 0.1);
```
*/
scrollTo(anchor: Vec2, timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Scroll the content to the vertical percent position of ScrollView.
!#zh 视图内容在规定时间内滚动到 ScrollView 垂直方向的百分比位置上。
@param percent A value between 0 and 1.
@param timeInSecond Scroll time in second, if you don't pass timeInSecond,
the content will jump to the vertical percent position of ScrollView immediately.
@param attenuated Whether the scroll acceleration attenuated, default is true.
// Scroll to middle position.
scrollView.scrollToPercentVertical(0.5, 0.1);
*/
scrollToPercentVertical(percent: number, timeInSecond?: number, attenuated?: boolean): void;
/**
!#en Stop auto scroll immediately
!#zh 停止自动滚动, 调用此 API 可以让 Scrollview 立即停止滚动
*/
stopAutoScroll(): void;
/**
!#en Modify the content position.
!#zh 设置当前视图内容的坐标点。
@param position The position in content's parent space.
*/
setContentPosition(position: Vec2): void;
/**
!#en Query the content's position in its parent space.
!#zh 获取当前视图内容的坐标点。
*/
getContentPosition(): Vec2;
/**
!#en Query whether the user is currently dragging the ScrollView to scroll it
!#zh 用户是否在拖拽当前滚动视图
*/
isScrolling(): boolean;
/**
!#en Query whether the ScrollView is currently scrolling because of a bounceback or inertia slowdown.
!#zh 当前滚动视图是否在惯性滚动
*/
isAutoScrolling(): boolean;
}
/** !#en The Slider Control
!#zh 滑动器组件 */
export class Slider extends Component {
/** !#en The "handle" part of the slider
!#zh 滑动器滑块按钮部件 */
handle: Button;
/** !#en The slider direction
!#zh 滑动器方向 */
direction: Slider.Direction;
/** !#en The current progress of the slider. The valid value is between 0-1
!#zh 当前进度值,该数值的区间是 0-1 之间 */
progress: number;
/** !#en The slider slide events' callback array
!#zh 滑动器组件滑动事件回调函数数组 */
slideEvents: Component.EventHandler[];
}
/** !#en Renders a sprite in the scene.
!#zh 该组件用于在场景中渲染精灵。 */
export class Sprite extends RenderComponent implements BlendFunc {
/** !#en The sprite frame of the sprite.
!#zh 精灵的精灵帧 */
spriteFrame: SpriteFrame;
/** !#en The sprite render type.
!#zh 精灵渲染类型 */
type: Sprite.Type;
/** !#en
The fill type, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”.
!#zh
精灵填充类型,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */
fillType: Sprite.FillType;
/** !#en
The fill Center, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”.
!#zh
填充中心点,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */
fillCenter: Vec2;
/** !#en
The fill Start, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”.
!#zh
填充起始点,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */
fillStart: number;
/** !#en
The fill Range, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”.
!#zh
填充范围,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */
fillRange: number;
/** !#en specify the frame is trimmed or not.
!#zh 是否使用裁剪模式 */
trim: boolean;
/** !#en specify the size tracing mode.
!#zh 精灵尺寸调整模式 */
sizeMode: Sprite.SizeMode;
/**
Change the state of sprite.
@param state NORMAL or GRAY State.
*/
setState(state: Sprite.State): void;
/**
Gets the current state.
*/
getState(): Sprite.State;
/** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost.
!#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */
srcBlendFactor: macro.BlendFactor;
/** !#en specify the destination Blend Factor.
!#zh 指定目标的混合模式 */
dstBlendFactor: macro.BlendFactor;
}
/** !#en The toggle component is a CheckBox, when it used together with a ToggleGroup, it
could be treated as a RadioButton.
!#zh Toggle 是一个 CheckBox,当它和 ToggleGroup 一起使用的时候,可以变成 RadioButton。 */
export class Toggle extends Button implements GraySpriteState {
/** !#en When this value is true, the check mark component will be enabled, otherwise
the check mark component will be disabled.
!#zh 如果这个设置为 true,则 check mark 组件会处于 enabled 状态,否则处于 disabled 状态。 */
isChecked: boolean;
/** !#en The toggle group which the toggle belongs to, when it is null, the toggle is a CheckBox.
Otherwise, the toggle is a RadioButton.
!#zh Toggle 所属的 ToggleGroup,这个属性是可选的。如果这个属性为 null,则 Toggle 是一个 CheckBox,
否则,Toggle 是一个 RadioButton。 */
toggleGroup: ToggleGroup;
/** !#en The image used for the checkmark.
!#zh Toggle 处于选中状态时显示的图片 */
checkMark: Sprite;
/** !#en If Toggle is clicked, it will trigger event's handler
!#zh Toggle 按钮的点击事件列表。 */
checkEvents: Component.EventHandler[];
/**
!#en Make the toggle button checked.
!#zh 使 toggle 按钮处于选中状态
*/
check(): void;
/**
!#en Make the toggle button unchecked.
!#zh 使 toggle 按钮处于未选中状态
*/
uncheck(): void;
/** !#en The normal material.
!#zh 正常状态的材质。 */
normalMaterial: Material;
/** !#en The gray material.
!#zh 置灰状态的材质。 */
grayMaterial: Material;
}
/** !#en ToggleContainer is not a visiable UI component but a way to modify the behavior of a set of Toggles. <br/>
Toggles that belong to the same group could only have one of them to be switched on at a time.<br/>
Note: All the first layer child node containing the toggle component will auto be added to the container
!#zh ToggleContainer 不是一个可见的 UI 组件,它可以用来修改一组 Toggle 组件的行为。<br/>
当一组 Toggle 属于同一个 ToggleContainer 的时候,任何时候只能有一个 Toggle 处于选中状态。<br/>
注意:所有包含 Toggle 组件的一级子节点都会自动被添加到该容器中 */
export class ToggleContainer extends Component {
/** !#en If this setting is true, a toggle could be switched off and on when pressed.
If it is false, it will make sure there is always only one toggle could be switched on
and the already switched on toggle can't be switched off.
!#zh 如果这个设置为 true, 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */
allowSwitchOff: boolean;
/** !#en If Toggle is clicked, it will trigger event's handler
!#zh Toggle 按钮的点击事件列表。 */
checkEvents: Component.EventHandler[];
/** !#en Read only property, return the toggle items array reference managed by ToggleContainer.
!#zh 只读属性,返回 ToggleContainer 管理的 toggle 数组引用 */
toggleItems: Toggle[];
}
/** !#en ToggleGroup is not a visiable UI component but a way to modify the behavior of a set of Toggles.
Toggles that belong to the same group could only have one of them to be switched on at a time.
!#zh ToggleGroup 不是一个可见的 UI 组件,它可以用来修改一组 Toggle 组件的行为。当一组 Toggle 属于同一个 ToggleGroup 的时候,
任何时候只能有一个 Toggle 处于选中状态。 */
export class ToggleGroup extends Component {
/** !#en If this setting is true, a toggle could be switched off and on when pressed.
If it is false, it will make sure there is always only one toggle could be switched on
and the already switched on toggle can't be switched off.
!#zh 如果这个设置为 true, 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */
allowSwitchOff: boolean;
/** !#en Read only property, return the toggle items array reference managed by toggleGroup.
!#zh 只读属性,返回 toggleGroup 管理的 toggle 数组引用 */
toggleItems: any[];
}
/** !#en
Handling touch events in a ViewGroup takes special care,
because it's common for a ViewGroup to have children that are targets for different touch events than the ViewGroup itself.
To make sure that each view correctly receives the touch events intended for it,
ViewGroup should register capture phase event and handle the event propagation properly.
Please refer to Scrollview for more information.
!#zh
ViewGroup的事件处理比较特殊,因为 ViewGroup 里面的子节点关心的事件跟 ViewGroup 本身可能不一样。
为了让子节点能够正确地处理事件,ViewGroup 需要注册 capture 阶段的事件,并且合理地处理 ViewGroup 之间的事件传递。
请参考 ScrollView 的实现来获取更多信息。 */
export class ViewGroup extends Component {
}
/** !#en
Stores and manipulate the anchoring based on its parent.
Widget are used for GUI but can also be used for other things.
Widget will adjust current node's position and size automatically, but the results after adjustment can not be obtained until the next frame unless you call {{#crossLink "Widget/updateAlignment:method"}}{{/crossLink}} manually.
!#zh
Widget 组件,用于设置和适配其相对于父节点的边距,Widget 通常被用于 UI 界面,也可以用于其他地方。
Widget 会自动调整当前节点的坐标和宽高,不过目前调整后的结果要到下一帧才能在脚本里获取到,除非你先手动调用 {{#crossLink "Widget/updateAlignment:method"}}{{/crossLink}}。 */
export class Widget extends Component {
/** !#en Specifies an alignment target that can only be one of the parent nodes of the current node.
The default value is null, and when null, indicates the current parent.
!#zh 指定一个对齐目标,只能是当前节点的其中一个父节点,默认为空,为空时表示当前父节点。 */
target: Node;
/** !#en Whether to align the top.
!#zh 是否对齐上边。 */
isAlignTop: boolean;
/** !#en
Vertically aligns the midpoint, This will open the other vertical alignment options cancel.
!#zh
是否垂直方向对齐中点,开启此项会将垂直方向其他对齐选项取消。 */
isAlignVerticalCenter: boolean;
/** !#en Whether to align the bottom.
!#zh 是否对齐下边。 */
isAlignBottom: boolean;
/** !#en Whether to align the left.
!#zh 是否对齐左边 */
isAlignLeft: boolean;
/** !#en
Horizontal aligns the midpoint. This will open the other horizontal alignment options canceled.
!#zh
是否水平方向对齐中点,开启此选项会将水平方向其他对齐选项取消。 */
isAlignHorizontalCenter: boolean;
/** !#en Whether to align the right.
!#zh 是否对齐右边。 */
isAlignRight: boolean;
/** !#en
Whether the stretched horizontally, when enable the left and right alignment will be stretched horizontally,
the width setting is invalid (read only).
!#zh
当前是否水平拉伸。当同时启用左右对齐时,节点将会被水平拉伸,此时节点的宽度只读。 */
isStretchWidth: boolean;
/** !#en
Whether the stretched vertically, when enable the left and right alignment will be stretched vertically,
then height setting is invalid (read only)
!#zh
当前是否垂直拉伸。当同时启用上下对齐时,节点将会被垂直拉伸,此时节点的高度只读。 */
isStretchHeight: boolean;
/** !#en
The margins between the top of this node and the top of parent node,
the value can be negative, Only available in 'isAlignTop' open.
!#zh
本节点顶边和父节点顶边的距离,可填写负值,只有在 isAlignTop 开启时才有作用。 */
top: number;
/** !#en
The margins between the bottom of this node and the bottom of parent node,
the value can be negative, Only available in 'isAlignBottom' open.
!#zh
本节点底边和父节点底边的距离,可填写负值,只有在 isAlignBottom 开启时才有作用。 */
bottom: number;
/** !#en
The margins between the left of this node and the left of parent node,
the value can be negative, Only available in 'isAlignLeft' open.
!#zh
本节点左边和父节点左边的距离,可填写负值,只有在 isAlignLeft 开启时才有作用。 */
left: number;
/** !#en
The margins between the right of this node and the right of parent node,
the value can be negative, Only available in 'isAlignRight' open.
!#zh
本节点右边和父节点右边的距离,可填写负值,只有在 isAlignRight 开启时才有作用。 */
right: number;
/** !#en
Horizontal aligns the midpoint offset value,
the value can be negative, Only available in 'isAlignHorizontalCenter' open.
!#zh 水平居中的偏移值,可填写负值,只有在 isAlignHorizontalCenter 开启时才有作用。 */
horizontalCenter: number;
/** !#en
Vertical aligns the midpoint offset value,
the value can be negative, Only available in 'isAlignVerticalCenter' open.
!#zh 垂直居中的偏移值,可填写负值,只有在 isAlignVerticalCenter 开启时才有作用。 */
verticalCenter: number;
/** !#en If true, horizontalCenter is pixel margin, otherwise is percentage (0 - 1) margin.
!#zh 如果为 true,"horizontalCenter" 将会以像素作为偏移值,反之为百分比(0 到 1)。 */
isAbsoluteHorizontalCenter: boolean;
/** !#en If true, verticalCenter is pixel margin, otherwise is percentage (0 - 1) margin.
!#zh 如果为 true,"verticalCenter" 将会以像素作为偏移值,反之为百分比(0 到 1)。 */
isAbsoluteVerticalCenter: boolean;
/** !#en
If true, top is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height.
!#zh
如果为 true,"top" 将会以像素作为边距,否则将会以相对父物体高度的百分比(0 到 1)作为边距。 */
isAbsoluteTop: boolean;
/** !#en
If true, bottom is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height.
!#zh
如果为 true,"bottom" 将会以像素作为边距,否则将会以相对父物体高度的百分比(0 到 1)作为边距。 */
isAbsoluteBottom: boolean;
/** !#en
If true, left is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width.
!#zh
如果为 true,"left" 将会以像素作为边距,否则将会以相对父物体宽度的百分比(0 到 1)作为边距。 */
isAbsoluteLeft: boolean;
/** !#en
If true, right is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width.
!#zh
如果为 true,"right" 将会以像素作为边距,否则将会以相对父物体宽度的百分比(0 到 1)作为边距。 */
isAbsoluteRight: boolean;
/** !#en Specifies the alignment mode of the Widget, which determines when the widget should refresh.
!#zh 指定 Widget 的对齐模式,用于决定 Widget 应该何时刷新。 */
alignMode: Widget.AlignMode;
/**
!#en
Immediately perform the widget alignment. You need to manually call this method only if
you need to get the latest results after the alignment before the end of current frame.
!#zh
立刻执行 widget 对齐操作。这个接口一般不需要手工调用。
只有当你需要在当前帧结束前获得 widget 对齐后的最新结果时才需要手动调用这个方法。
@example
```js
widget.top = 10; // change top margin
cc.log(widget.node.y); // not yet changed
widget.updateAlignment();
cc.log(widget.node.y); // changed
```
*/
updateAlignment(): void;
/** !#en
When turned on, it will only be aligned once at the end of the onEnable frame,
then immediately disables the current component.
This will allow the script or animation to continue controlling the current node.
Note: It will still be aligned at the frame when onEnable is called.
!#zh
开启后仅会在 onEnable 的当帧结束时对齐一次,然后立刻禁用当前组件。
这样便于脚本或动画继续控制当前节点。
注意:onEnable 时所在的那一帧仍然会进行对齐。 */
isAlignOnce: boolean;
}
/** !#en SubContextView is a view component which controls open data context viewport in minigame platform.<br/>
The component's node size decide the viewport of the sub context content in main context,
the entire sub context texture will be scaled to the node's bounding box area.<br/>
This component provides multiple important features:<br/>
1. Sub context could use its own resolution size and policy.<br/>
2. Sub context could be minized to smallest size it needed.<br/>
3. Resolution of sub context content could be increased.<br/>
4. User touch input is transformed to the correct viewport.<br/>
5. Texture update is handled by this component. User don't need to worry.<br/>
One important thing to be noted, whenever the node's bounding box change,
!#zh SubContextView 可以用来控制小游戏平台开放数据域在主域中的视窗的位置。<br/>
这个组件的节点尺寸决定了开放数据域内容在主域中的尺寸,整个开放数据域会被缩放到节点的包围盒范围内。<br/>
在这个组件的控制下,用户可以更自由得控制开放数据域:<br/>
1. 子域中可以使用独立的设计分辨率和适配模式<br/>
2. 子域区域尺寸可以缩小到只容纳内容即可<br/>
3. 子域的分辨率也可以被放大,以便获得更清晰的显示效果<br/>
4. 用户输入坐标会被自动转换到正确的子域视窗中<br/>
5. 子域内容贴图的更新由组件负责,用户不需要处理<br/> */
export class SubContextView extends Component {
/**
!#en Reset open data context size and viewport
!#zh 重置开放数据域的尺寸和视窗
*/
reset(): void;
/**
!#en Update the sub context viewport manually, it should be called whenever the node's bounding box changes.
!#zh 更新开放数据域相对于主域的 viewport,这个函数应该在节点包围盒改变时手动调用。
*/
updateSubContextViewport(): void;
}
/** !#en WXSubContextView is deprecated since v2.4.1, please use SubContextView instead.
!#zh 自 v2.4.1 起,WXSubContextView 已经废弃,请使用 SubContextView */
export class WXSubContextView extends Component {
}
/** !#en SwanSubContextView is deprecated since v2.4.1, please use SubContextView instead.
!#zh 自 v2.4.1 起,SwanSubContextView 已经废弃,请使用 SubContextView */
export class SwanSubContextView extends Component {
}
/** undefined */
export class Graphics extends RenderComponent {
/** !#en
Current line width.
!#zh
当前线条宽度 */
lineWidth: number;
/** !#en
lineJoin determines how two connecting segments (of lines, arcs or curves) with non-zero lengths in a shape are joined together.
!#zh
lineJoin 用来设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性。 */
lineJoin: Graphics.LineJoin;
/** !#en
lineCap determines how the end points of every line are drawn.
!#zh
lineCap 指定如何绘制每一条线段末端。 */
lineCap: Graphics.LineCap;
/** !#en
stroke color
!#zh
线段颜色 */
strokeColor: Color;
/** !#en
fill color
!#zh
填充颜色 */
fillColor: Color;
/** !#en
Sets the miter limit ratio
!#zh
设置斜接面限制比例 */
miterLimit: number;
/**
!#en Move path start point to (x,y).
!#zh 移动路径起点到坐标(x, y)
@param x The x axis of the coordinate for the end point.
@param y The y axis of the coordinate for the end point.
*/
moveTo(x?: number, y?: number): void;
/**
!#en Adds a straight line to the path
!#zh 绘制直线路径
@param x The x axis of the coordinate for the end point.
@param y The y axis of the coordinate for the end point.
*/
lineTo(x?: number, y?: number): void;
/**
!#en Adds a cubic Bézier curve to the path
!#zh 绘制三次贝赛尔曲线路径
@param c1x The x axis of the coordinate for the first control point.
@param c1y The y axis of the coordinate for first control point.
@param c2x The x axis of the coordinate for the second control point.
@param c2y The y axis of the coordinate for the second control point.
@param x The x axis of the coordinate for the end point.
@param y The y axis of the coordinate for the end point.
*/
bezierCurveTo(c1x?: number, c1y?: number, c2x?: number, c2y?: number, x?: number, y?: number): void;
/**
!#en Adds a quadratic Bézier curve to the path
!#zh 绘制二次贝赛尔曲线路径
@param cx The x axis of the coordinate for the control point.
@param cy The y axis of the coordinate for the control point.
@param x The x axis of the coordinate for the end point.
@param y The y axis of the coordinate for the end point.
*/
quadraticCurveTo(cx?: number, cy?: number, x?: number, y?: number): void;
/**
!#en Adds an arc to the path which is centered at (cx, cy) position with radius r starting at startAngle and ending at endAngle going in the given direction by counterclockwise (defaulting to false).
!#zh 绘制圆弧路径。圆弧路径的圆心在 (cx, cy) 位置,半径为 r ,根据 counterclockwise (默认为false)指定的方向从 startAngle 开始绘制,到 endAngle 结束。
@param cx The x axis of the coordinate for the center point.
@param cy The y axis of the coordinate for the center point.
@param r The arc's radius.
@param startAngle The angle at which the arc starts, measured clockwise from the positive x axis and expressed in radians.
@param endAngle The angle at which the arc ends, measured clockwise from the positive x axis and expressed in radians.
@param counterclockwise An optional Boolean which, if true, causes the arc to be drawn counter-clockwise between the two angles. By default it is drawn clockwise.
*/
arc(cx?: number, cy?: number, r?: number, startAngle?: number, endAngle?: number, counterclockwise?: boolean): void;
/**
!#en Adds an ellipse to the path.
!#zh 绘制椭圆路径。
@param cx The x axis of the coordinate for the center point.
@param cy The y axis of the coordinate for the center point.
@param rx The ellipse's x-axis radius.
@param ry The ellipse's y-axis radius.
*/
ellipse(cx?: number, cy?: number, rx?: number, ry?: number): void;
/**
!#en Adds an circle to the path.
!#zh 绘制圆形路径。
@param cx The x axis of the coordinate for the center point.
@param cy The y axis of the coordinate for the center point.
@param r The circle's radius.
*/
circle(cx?: number, cy?: number, r?: number): void;
/**
!#en Adds an rectangle to the path.
!#zh 绘制矩形路径。
@param x The x axis of the coordinate for the rectangle starting point.
@param y The y axis of the coordinate for the rectangle starting point.
@param w The rectangle's width.
@param h The rectangle's height.
*/
rect(x?: number, y?: number, w?: number, h?: number): void;
/**
!#en Adds an round corner rectangle to the path.
!#zh 绘制圆角矩形路径。
@param x The x axis of the coordinate for the rectangle starting point.
@param y The y axis of the coordinate for the rectangle starting point.
@param w The rectangles width.
@param h The rectangle's height.
@param r The radius of the rectangle.
*/
roundRect(x?: number, y?: number, w?: number, h?: number, r?: number): void;
/**
!#en Draws a filled rectangle.
!#zh 绘制填充矩形。
@param x The x axis of the coordinate for the rectangle starting point.
@param y The y axis of the coordinate for the rectangle starting point.
@param w The rectangle's width.
@param h The rectangle's height.
*/
fillRect(x?: number, y?: number, w?: number, h?: number): void;
/**
!#en Erasing any previously drawn content.
!#zh 擦除之前绘制的所有内容的方法。
@param clean Whether to clean the graphics inner cache.
*/
clear(clean?: boolean): void;
/**
!#en Causes the point of the pen to move back to the start of the current path. It tries to add a straight line from the current point to the start.
!#zh 将笔点返回到当前路径起始点的。它尝试从当前点到起始点绘制一条直线。
*/
close(): void;
/**
!#en Strokes the current or given path with the current stroke style.
!#zh 根据当前的画线样式,绘制当前或已经存在的路径。
*/
stroke(): void;
/**
!#en Fills the current or given path with the current fill style.
!#zh 根据当前的画线样式,填充当前或已经存在的路径。
*/
fill(): void;
}
/** !#en The renderer object which provide access to render system APIs,
detailed APIs will be available progressively.
!#zh 提供基础渲染接口的渲染器对象,渲染层的基础接口将逐步开放给用户 */
export class renderer {
/** !#en The render engine is available only after cc.game.EVENT_ENGINE_INITED event.<br/>
Normally it will be inited as the webgl render engine, but in wechat open context domain,
it will be inited as the canvas render engine. Canvas render engine is no longer available for other use case since v2.0.
!#zh 基础渲染引擎对象只在 cc.game.EVENT_ENGINE_INITED 事件触发后才可获取。<br/>
大多数情况下,它都会是 WebGL 渲染引擎实例,但是在微信开放数据域当中,它会是 Canvas 渲染引擎实例。请注意,从 2.0 开始,我们在其他平台和环境下都废弃了 Canvas 渲染器。 */
static renderEngine: any;
/** !#en The total draw call count in last rendered frame.
!#zh 上一次渲染帧所提交的渲染批次总数。 */
static drawCalls: number;
}
/** !#en Mesh Asset.
!#zh 网格资源。 */
export class Mesh extends Asset implements EventTarget {
/** !#en Get ir set the sub meshes.
!#zh 设置或者获取子网格。 */
subMeshes: InputAssembler[];
/**
!#en
Init vertex buffer according to the vertex format.
!#zh
根据顶点格式初始化顶点内存。
@param vertexFormat vertex format
@param vertexCount how much vertex should be create in this buffer.
@param dynamic whether or not to use dynamic buffer.
@param index index
*/
init(vertexFormat: gfx.VertexFormat, vertexCount: number, dynamic?: boolean, index?: boolean): void;
/**
!#en
Set the vertex values.
!#zh
设置顶点数据
@param name the attribute name, e.g. gfx.ATTR_POSITION
@param values the vertex values
*/
setVertices(name: string, values: Vec2[]|Vec3[]|Color[]|number[]|Uint8Array|Float32Array): void;
/**
!#en
Set the sub mesh indices.
!#zh
设置子网格索引。
@param indices the sub mesh indices.
@param index sub mesh index.
@param dynamic whether or not to use dynamic buffer.
*/
setIndices(indices: number[]|Uint16Array|Uint8Array, index?: number, dynamic?: boolean): void;
/**
!#en
Set the sub mesh primitive type.
!#zh
设置子网格绘制线条的方式。
@param type type
@param index index
*/
setPrimitiveType(type: number, index: number): void;
/**
!#en
Clear the buffer data.
!#zh
清除网格创建的内存数据。
*/
clear(): void;
/**
!#en Set mesh bounding box
!#zh 设置网格的包围盒
@param min min
@param max max
*/
setBoundingBox(min: Vec3, max: Vec3): void;
/**
!#en Read the specified attributes of the subgrid into the target buffer.
!#zh 读取子网格的指定属性到目标缓冲区中。
@param primitiveIndex The subgrid index.
@param attributeName attribute name.
@param buffer The target buffer.
@param stride The byte interval between adjacent attributes in the target buffer.
@param offset The offset of the first attribute in the target buffer.
*/
copyAttribute(primitiveIndex: number, attributeName: string, buffer: ArrayBuffer, stride: number, offset: number): boolean;
/**
!#en Read the index data of the subgrid into the target array.
!#zh 读取子网格的索引数据到目标数组中。
@param primitiveIndex The subgrid index.
@param outputArray The target array.
*/
copyIndices(primitiveIndex: number, outputArray: DataView): boolean;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en
Mesh Renderer Component
!#zh
网格渲染组件 */
export class MeshRenderer extends RenderComponent {
/** !#en
The mesh which the renderer uses.
!#zh
设置使用的网格 */
mesh: Mesh;
/** !#en
Whether the mesh should receive shadows.
!#zh
网格是否接受光源投射的阴影 */
receiveShadows: boolean;
/** !#en
Shadow Casting Mode
!#zh
网格投射阴影的模式 */
shadowCastingMode: MeshRenderer.ShadowCastingMode;
/** !#en
Enable auto merge mesh, only support when mesh's VertexFormat, PrimitiveType, materials are all the same
!#zh
开启自动合并 mesh 功能,只有在网格的 顶点格式,PrimitiveType, 使用的材质 都一致的情况下才会有效 */
enableAutoBatch: boolean;
}
/** The class BufferRange denotes a range of the buffer. */
export class BufferRange {
/** The offset of the range. */
offset: number;
/** The length of the range. */
length: number;
}
/** undefined */
export class VertexFormat {
/** The data range of this bundle.
This range of data is essentially mapped to a GPU vertex buffer. */
data: BufferRange;
/** The attribute formats. */
formats: VertexFormat;
/** The vertex bundle that the primitive use. */
vertexBundleIndices: number[];
/** The data range of the primitive.
This range of data is essentially mapped to a GPU indices buffer. */
data: BufferRange;
/** The type of this primitive's indices. */
indexUnit: number;
/** The primitive's topology. */
topology: number;
}
/** undefined */
export class WorldManifold {
/** !#en
world contact point (point of intersection)
!#zh
碰撞点集合 */
points: Vec2[];
/** !#en
world vector pointing from A to B
!#zh
世界坐标系下由 A 指向 B 的向量 */
normal: Vec2;
}
/** !#en
A manifold point is a contact point belonging to a contact manifold.
It holds details related to the geometry and dynamics of the contact points.
Note: the impulses are used for internal caching and may not
provide reliable contact forces, especially for high speed collisions.
!#zh
ManifoldPoint 是接触信息中的接触点信息。它拥有关于几何和接触点的详细信息。
注意:信息中的冲量用于系统内部缓存,提供的接触力可能不是很准确,特别是高速移动中的碰撞信息。 */
export class ManifoldPoint {
/** !#en
The local point usage depends on the manifold type:
-e_circles: the local center of circleB
-e_faceA: the local center of circleB or the clip point of polygonB
-e_faceB: the clip point of polygonA
!#zh
本地坐标点的用途取决于 manifold 的类型
- e_circles: circleB 的本地中心点
- e_faceA: circleB 的本地中心点 或者是 polygonB 的截取点
- e_faceB: polygonB 的截取点 */
localPoint: Vec2;
/** !#en
Normal impulse.
!#zh
法线冲量。 */
normalImpulse: number;
/** !#en
Tangent impulse.
!#zh
切线冲量。 */
tangentImpulse: number;
}
/** undefined */
export class Manifold {
/** !#en
Manifold type : 0: e_circles, 1: e_faceA, 2: e_faceB
!#zh
Manifold 类型 : 0: e_circles, 1: e_faceA, 2: e_faceB */
type: number;
/** !#en
The local point usage depends on the manifold type:
-e_circles: the local center of circleA
-e_faceA: the center of faceA
-e_faceB: the center of faceB
!#zh
用途取决于 manifold 类型
-e_circles: circleA 的本地中心点
-e_faceA: faceA 的本地中心点
-e_faceB: faceB 的本地中心点 */
localPoint: Vec2;
/** !#en
-e_circles: not used
-e_faceA: the normal on polygonA
-e_faceB: the normal on polygonB
!#zh
-e_circles: 没被使用到
-e_faceA: polygonA 的法向量
-e_faceB: polygonB 的法向量 */
localNormal: Vec2;
/** !#en
the points of contact.
!#zh
接触点信息。 */
points: ManifoldPoint[];
}
/** !#en
Contact impulses for reporting.
!#zh
用于返回给回调的接触冲量。 */
export class PhysicsImpulse {
/** !#en
Normal impulses.
!#zh
法线方向的冲量 */
normalImpulses: any;
/** !#en
Tangent impulses
!#zh
切线方向的冲量 */
tangentImpulses: any;
}
/** !#en
PhysicsContact will be generated during begin and end collision as a parameter of the collision callback.
Note that contacts will be reused for speed up cpu time, so do not cache anything in the contact.
!#zh
物理接触会在开始和结束碰撞之间生成,并作为参数传入到碰撞回调函数中。
注意:传入的物理接触会被系统进行重用,所以不要在使用中缓存里面的任何信息。 */
export class PhysicsContact {
/**
!#en
Get the world manifold.
!#zh
获取世界坐标系下的碰撞信息。
*/
getWorldManifold(): WorldManifold;
/**
!#en
Get the manifold.
!#zh
获取本地(局部)坐标系下的碰撞信息。
*/
getManifold(): Manifold;
/**
!#en
Get the impulses.
Note: PhysicsImpulse can only used in onPostSolve callback.
!#zh
获取冲量信息
注意:这个信息只有在 onPostSolve 回调中才能获取到
*/
getImpulse(): PhysicsImpulse;
/** !#en
One of the collider that collided
!#zh
发生碰撞的碰撞体之一 */
colliderA: Collider;
/** !#en
One of the collider that collided
!#zh
发生碰撞的碰撞体之一 */
colliderB: Collider;
/** !#en
If set disabled to true, the contact will be ignored until contact end.
If you just want to disabled contact for current time step or sub-step, please use disabledOnce.
!#zh
如果 disabled 被设置为 true,那么直到接触结束此接触都将被忽略。
如果只是希望在当前时间步或子步中忽略此接触,请使用 disabledOnce 。 */
disabled: boolean;
/** !#en
Disabled contact for current time step or sub-step.
!#zh
在当前时间步或子步中忽略此接触。 */
disabledOnce: boolean;
/**
!#en
Is this contact touching?
!#zh
返回碰撞体是否已经接触到。
*/
isTouching(): boolean;
/**
!#en
Set the desired tangent speed for a conveyor belt behavior.
!#zh
为传送带设置期望的切线速度
@param tangentSpeed tangentSpeed
*/
setTangentSpeed(tangentSpeed: number): void;
/**
!#en
Get the desired tangent speed.
!#zh
获取切线速度
*/
getTangentSpeed(): number;
/**
!#en
Override the default friction mixture. You can call this in onPreSolve callback.
!#zh
覆盖默认的摩擦力系数。你可以在 onPreSolve 回调中调用此函数。
@param friction friction
*/
setFriction(friction: number): void;
/**
!#en
Get the friction.
!#zh
获取当前摩擦力系数
*/
getFriction(): number;
/**
!#en
Reset the friction mixture to the default value.
!#zh
重置摩擦力系数到默认值
*/
resetFriction(): void;
/**
!#en
Override the default restitution mixture. You can call this in onPreSolve callback.
!#zh
覆盖默认的恢复系数。你可以在 onPreSolve 回调中调用此函数。
@param restitution restitution
*/
setRestitution(restitution: number): void;
/**
!#en
Get the restitution.
!#zh
获取当前恢复系数
*/
getRestitution(): number;
/**
!#en
Reset the restitution mixture to the default value.
!#zh
重置恢复系数到默认值
*/
resetRestitution(): void;
}
/** !#en
Physics manager uses box2d as the inner physics system, and hide most box2d implement details(creating rigidbody, synchronize rigidbody info to node).
You can visit some common box2d function through physics manager(hit testing, raycast, debug info).
Physics manager distributes the collision information to each collision callback when collision is produced.
Note: You need first enable the collision listener in the rigidbody.
!#zh
物理系统将 box2d 作为内部物理系统,并且隐藏了大部分 box2d 实现细节(比如创建刚体,同步刚体信息到节点中等)。
你可以通过物理系统访问一些 box2d 常用的功能,比如点击测试,射线测试,设置测试信息等。
物理系统还管理碰撞信息的分发,她会在产生碰撞时,将碰撞信息分发到各个碰撞回调中。
注意:你需要先在刚体中开启碰撞接听才会产生相应的碰撞回调。<br>
支持的物理系统指定绘制信息事件,请参阅 {{#crossLink "PhysicsManager.DrawBits"}}{{/crossLink}} */
export class PhysicsManager implements EventTarget {
/** !#en
The ratio transform between physics unit and pixel unit, generally is 32.
!#zh
物理单位与像素单位互相转换的比率,一般是 32。 */
static PTM_RATIO: number;
/** !#en
The velocity iterations for the velocity constraint solver.
!#zh
速度更新迭代数 */
static VELOCITY_ITERATIONS: number;
/** !#en
The position Iterations for the position constraint solver.
!#zh
位置迭代更新数 */
static POSITION_ITERATIONS: number;
/** !#en
Specify the fixed time step.
Need enabledAccumulator to make it work.
!#zh
指定固定的物理更新间隔时间,需要开启 enabledAccumulator 才有效。 */
static FIXED_TIME_STEP: number;
/** !#en
Specify the max accumulator time.
Need enabledAccumulator to make it work.
!#zh
每次可用于更新物理系统的最大时间,需要开启 enabledAccumulator 才有效。 */
static MAX_ACCUMULATOR: number;
/** !#en
If enabled accumulator, then will call step function with the fixed time step FIXED_TIME_STEP.
And if the update dt is bigger than the time step, then will call step function several times.
If disabled accumulator, then will call step function with a time step calculated with the frame rate.
!#zh
如果开启此选项,那么将会以固定的间隔时间 FIXED_TIME_STEP 来更新物理引擎,如果一个 update 的间隔时间大于 FIXED_TIME_STEP,则会对物理引擎进行多次更新。
如果关闭此选项,那么将会根据设定的 frame rate 计算出一个间隔时间来更新物理引擎。 */
enabledAccumulator: boolean;
/**
!#en
Test which collider contains the given world point
!#zh
获取包含给定世界坐标系点的碰撞体
@param point the world point
*/
testPoint(point: Vec2): PhysicsCollider;
/**
!#en
Test which colliders intersect the given world rect
!#zh
获取与给定世界坐标系矩形相交的碰撞体
@param rect the world rect
*/
testAABB(rect: Rect): PhysicsCollider[];
/**
!#en
Raycast the world for all colliders in the path of the ray.
The raycast ignores colliders that contain the starting point.
!#zh
检测哪些碰撞体在给定射线的路径上,射线检测将忽略包含起始点的碰撞体。
@param p1 start point of the raycast
@param p2 end point of the raycast
@param type optional, default is RayCastType.Closest
*/
rayCast(p1: Vec2, p2: Vec2, type: RayCastType): PhysicsRayCastResult[];
/** !#en
Enabled the physics manager?
!#zh
指定是否启用物理系统? */
enabled: boolean;
/** !#en
Debug draw flags.
!#zh
设置调试绘制标志 */
debugDrawFlags: number;
/** !#en
The physics world gravity.
!#zh
物理世界重力值 */
gravity: Vec2;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** undefined */
export class PhysicsRayCastResult {
/** !#en
The PhysicsCollider which intersects with the raycast
!#zh
与射线相交的碰撞体 */
collider: PhysicsCollider;
/** !#en
The intersection point
!#zh
射线与碰撞体相交的点 */
point: Vec2;
/** !#en
The normal vector at the point of intersection
!#zh
射线与碰撞体相交的点的法向量 */
normal: Vec2;
/** !#en
The fraction of the raycast path at the point of intersection
!#zh
射线与碰撞体相交的点占射线长度的分数 */
fraction: number;
}
/** !#en Enum for RigidBodyType.
!#zh 刚体类型 */
export enum RigidBodyType {
Static = 0,
Kinematic = 0,
Dynamic = 0,
Animated = 0,
}
/** !#en Enum for RayCastType.
!#zh 射线检测类型 */
export enum RayCastType {
Closest = 0,
Any = 0,
AllClosest = 0,
All = 0,
}
/** undefined */
export class RigidBody extends Component {
/** !#en
Should enabled contact listener?
When a collision is trigger, the collision callback will only be called when enabled contact listener.
!#zh
是否启用接触接听器。
当 collider 产生碰撞时,只有开启了接触接听器才会调用相应的回调函数 */
enabledContactListener: boolean;
/**
!#en
Collision callback.
Called when two collider begin to touch.
!#zh
碰撞回调。
如果你的脚本中实现了这个函数,那么它将会在两个碰撞体开始接触时被调用。
@param contact contact information
@param selfCollider the collider belong to this rigidbody
@param otherCollider the collider belong to another rigidbody
*/
onBeginContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;
/**
!#en
Collision callback.
Called when two collider cease to touch.
!#zh
碰撞回调。
如果你的脚本中实现了这个函数,那么它将会在两个碰撞体停止接触时被调用。
@param contact contact information
@param selfCollider the collider belong to this rigidbody
@param otherCollider the collider belong to another rigidbody
*/
onEndContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;
/**
!#en
Collision callback.
This is called when a contact is updated.
This allows you to inspect a contact before it goes to the solver(e.g. disable contact).
Note: this is called only for awake bodies.
Note: this is called even when the number of contact points is zero.
Note: this is not called for sensors.
!#zh
碰撞回调。
如果你的脚本中实现了这个函数,那么它将会在接触更新时被调用。
你可以在接触被处理前根据他包含的信息作出相应的处理,比如将这个接触禁用掉。
注意:回调只会为醒着的刚体调用。
注意:接触点为零的时候也有可能被调用。
注意:感知体(sensor)的回调不会被调用。
@param contact contact information
@param selfCollider the collider belong to this rigidbody
@param otherCollider the collider belong to another rigidbody
*/
onPreSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;
/**
!#en
Collision callback.
This is called after a contact is updated.
You can get the impulses from the contact in this callback.
!#zh
碰撞回调。
如果你的脚本中实现了这个函数,那么它将会在接触更新完后被调用。
你可以在这个回调中从接触信息中获取到冲量信息。
@param contact contact information
@param selfCollider the collider belong to this rigidbody
@param otherCollider the collider belong to another rigidbody
*/
onPostSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void;
/** !#en
Is this a fast moving body that should be prevented from tunneling through
other moving bodies?
Note :
- All bodies are prevented from tunneling through kinematic and static bodies. This setting is only considered on dynamic bodies.
- You should use this flag sparingly since it increases processing time.
!#zh
这个刚体是否是一个快速移动的刚体,并且需要禁止穿过其他快速移动的刚体?
需要注意的是 :
- 所有刚体都被禁止从 运动刚体 和 静态刚体 中穿过。此选项只关注于 动态刚体。
- 应该尽量少的使用此选项,因为它会增加程序处理时间。 */
bullet: boolean;
/** !#en
Rigidbody type : Static, Kinematic, Dynamic or Animated.
!#zh
刚体类型: Static, Kinematic, Dynamic or Animated. */
type: RigidBodyType;
/** !#en
Set this flag to false if this body should never fall asleep.
Note that this increases CPU usage.
!#zh
如果此刚体永远都不应该进入睡眠,那么设置这个属性为 false。
需要注意这将使 CPU 占用率提高。 */
allowSleep: boolean;
/** !#en
Scale the gravity applied to this body.
!#zh
缩放应用在此刚体上的重力值 */
gravityScale: number;
/** !#en
Linear damping is use to reduce the linear velocity.
The damping parameter can be larger than 1, but the damping effect becomes sensitive to the
time step when the damping parameter is large.
!#zh
Linear damping 用于衰减刚体的线性速度。衰减系数可以大于 1,但是当衰减系数比较大的时候,衰减的效果会变得比较敏感。 */
linearDamping: number;
/** !#en
Angular damping is use to reduce the angular velocity. The damping parameter
can be larger than 1 but the damping effect becomes sensitive to the
time step when the damping parameter is large.
!#zh
Angular damping 用于衰减刚体的角速度。衰减系数可以大于 1,但是当衰减系数比较大的时候,衰减的效果会变得比较敏感。 */
angularDamping: number;
/** !#en
The linear velocity of the body's origin in world co-ordinates.
!#zh
刚体在世界坐标下的线性速度 */
linearVelocity: Vec2;
/** !#en
The angular velocity of the body.
!#zh
刚体的角速度 */
angularVelocity: number;
/** !#en
Should this body be prevented from rotating?
!#zh
是否禁止此刚体进行旋转 */
fixedRotation: boolean;
/** !#en
Set the sleep state of the body. A sleeping body has very low CPU cost.(When the rigid body is hit, if the rigid body is in sleep state, it will be immediately awakened.)
!#zh
设置刚体的睡眠状态。 睡眠的刚体具有非常低的 CPU 成本。(当刚体被碰撞到时,如果刚体处于睡眠状态,它会立即被唤醒) */
awake: boolean;
/** !#en
Whether to wake up this rigid body during initialization
!#zh
是否在初始化时唤醒此刚体 */
awakeOnLoad: boolean;
/** !#en
Set the active state of the body. An inactive body is not
simulated and cannot be collided with or woken up.
If body is active, all fixtures will be added to the
broad-phase.
If body is inactive, all fixtures will be removed from
the broad-phase and all contacts will be destroyed.
Fixtures on an inactive body are implicitly inactive and will
not participate in collisions, ray-casts, or queries.
Joints connected to an inactive body are implicitly inactive.
!#zh
设置刚体的激活状态。一个非激活状态下的刚体是不会被模拟和碰撞的,不管它是否处于睡眠状态下。
如果刚体处于激活状态下,所有夹具会被添加到 粗测阶段(broad-phase)。
如果刚体处于非激活状态下,所有夹具会被从 粗测阶段(broad-phase)中移除。
在非激活状态下的夹具不会参与到碰撞,射线,或者查找中
链接到非激活状态下刚体的关节也是非激活的。 */
active: boolean;
/**
!#en
Gets a local point relative to the body's origin given a world point.
!#zh
将一个给定的世界坐标系下的点转换为刚体本地坐标系下的点
@param worldPoint a point in world coordinates.
@param out optional, the receiving point
*/
getLocalPoint(worldPoint: Vec2, out: Vec2): Vec2;
/**
!#en
Get the world coordinates of a point given the local coordinates.
!#zh
将一个给定的刚体本地坐标系下的点转换为世界坐标系下的点
@param localPoint a point in local coordinates.
@param out optional, the receiving point
*/
getWorldPoint(localPoint: Vec2, out: Vec2): Vec2;
/**
!#en
Get the world coordinates of a vector given the local coordinates.
!#zh
将一个给定的世界坐标系下的向量转换为刚体本地坐标系下的向量
@param localVector a vector in world coordinates.
@param out optional, the receiving vector
*/
getWorldVector(localVector: Vec2, out: Vec2): Vec2;
/**
!#en
Gets a local vector relative to the body's origin given a world vector.
!#zh
将一个给定的世界坐标系下的点转换为刚体本地坐标系下的点
@param worldVector a vector in world coordinates.
@param out optional, the receiving vector
*/
getLocalVector(worldVector: Vec2, out: Vec2): Vec2;
/**
!#en
Get the world body origin position.
!#zh
获取刚体世界坐标系下的原点值
@param out optional, the receiving point
*/
getWorldPosition(out: Vec2): Vec2;
/**
!#en
Get the world body rotation angle.
!#zh
获取刚体世界坐标系下的旋转值。
*/
getWorldRotation(): number;
/**
!#en
Get the local position of the center of mass.
!#zh
获取刚体本地坐标系下的质心
*/
getLocalCenter(): Vec2;
/**
!#en
Get the world position of the center of mass.
!#zh
获取刚体世界坐标系下的质心
*/
getWorldCenter(): Vec2;
/**
!#en
Get the world linear velocity of a world point attached to this body.
!#zh
获取刚体上指定点的线性速度
@param worldPoint a point in world coordinates.
@param out optional, the receiving point
*/
getLinearVelocityFromWorldPoint(worldPoint: Vec2, out: Vec2): Vec2;
/**
!#en
Get total mass of the body.
!#zh
获取刚体的质量。
*/
getMass(): number;
/**
!#en
Get the rotational inertia of the body about the local origin.
!#zh
获取刚体本地坐标系下原点的旋转惯性
*/
getInertia(): number;
/**
!#en
Get all the joints connect to the rigidbody.
!#zh
获取链接到此刚体的所有关节
*/
getJointList(): Joint[];
/**
!#en
Apply a force at a world point. If the force is not
applied at the center of mass, it will generate a torque and
affect the angular velocity.
!#zh
施加一个力到刚体上的一个点。如果力没有施加到刚体的质心上,还会产生一个扭矩并且影响到角速度。
@param force the world force vector.
@param point the world position.
@param wake also wake up the body.
*/
applyForce(force: Vec2, point: Vec2, wake: boolean): void;
/**
!#en
Apply a force to the center of mass.
!#zh
施加一个力到刚体上的质心上。
@param force the world force vector.
@param wake also wake up the body.
*/
applyForceToCenter(force: Vec2, wake: boolean): void;
/**
!#en
Apply a torque. This affects the angular velocity.
!#zh
施加一个扭矩力,将影响刚体的角速度
@param torque about the z-axis (out of the screen), usually in N-m.
@param wake also wake up the body
*/
applyTorque(torque: number, wake: boolean): void;
/**
!#en
Apply a impulse at a world point, This immediately modifies the velocity.
If the impulse is not applied at the center of mass, it will generate a torque and
affect the angular velocity.
!#zh
施加冲量到刚体上的一个点,将立即改变刚体的线性速度。
如果冲量施加到的点不是刚体的质心,那么将产生一个扭矩并影响刚体的角速度。
@param impulse the world impulse vector, usually in N-seconds or kg-m/s.
@param point the world position
@param wake alse wake up the body
*/
applyLinearImpulse(impulse: Vec2, point: Vec2, wake: boolean): void;
/**
!#en
Apply an angular impulse.
!#zh
施加一个角速度冲量。
@param impulse the angular impulse in units of kg*m*m/s
@param wake also wake up the body
*/
applyAngularImpulse(impulse: number, wake: boolean): void;
/**
!#en
Synchronize node's world position to box2d rigidbody's position.
If enableAnimated is true and rigidbody's type is Animated type,
will set linear velocity instead of directly set rigidbody's position.
!#zh
同步节点的世界坐标到 box2d 刚体的坐标上。
如果 enableAnimated 是 true,并且刚体的类型是 Animated ,那么将设置刚体的线性速度来代替直接设置刚体的位置。
@param enableAnimated enableAnimated
*/
syncPosition(enableAnimated: boolean): void;
/**
!#en
Synchronize node's world angle to box2d rigidbody's angle.
If enableAnimated is true and rigidbody's type is Animated type,
will set angular velocity instead of directly set rigidbody's angle.
!#zh
同步节点的世界旋转角度值到 box2d 刚体的旋转值上。
如果 enableAnimated 是 true,并且刚体的类型是 Animated ,那么将设置刚体的角速度来代替直接设置刚体的角度。
@param enableAnimated enableAnimated
*/
syncRotation(enableAnimated: boolean): void;
}
/** !#en the device accelerometer reports values for each axis in units of g-force.
!#zh 设备重力传感器传递的各个轴的数据。 */
export class constructor {
/**
whether enable accelerometer event
@param isEnable isEnable
*/
setAccelerometerEnabled(isEnable: boolean): void;
/**
set accelerometer interval value
@param interval interval
*/
setAccelerometerInterval(interval: number): void;
}
/** undefined */
export enum VerticalTextAlignment {
TOP = 0,
CENTER = 0,
BOTTOM = 0,
}
/** The base class of most of all the objects in Fireball. */
export class Object {
/** !#en The name of the object.
!#zh 该对象的名称。 */
name: string;
/** !#en
Indicates whether the object is not yet destroyed. (It will not be available after being destroyed)<br>
When an object's `destroy` is called, it is actually destroyed after the end of this frame.
So `isValid` will return false from the next frame, while `isValid` in the current frame will still be true.
If you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`,
but this is often caused by a particular logical requirements, which is not normally required.
!#zh
表示该对象是否可用(被 destroy 后将不可用)。<br>
当一个对象的 `destroy` 调用以后,会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false,而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`,请使用 `cc.isValid(obj, true)`,不过这往往是特殊的业务需求引起的,通常情况下不需要这样。 */
isValid: boolean;
/**
!#en
Destroy this Object, and release all its own references to other objects.<br/>
Actual object destruction will delayed until before rendering.
From the next frame, this object is not usable anymore.
You can use `cc.isValid(obj)` to check whether the object is destroyed before accessing it.
!#zh
销毁该对象,并释放所有它对其它对象的引用。<br/>
实际销毁操作会延迟到当前帧渲染前执行。从下一帧开始,该对象将不再可用。
您可以在访问对象之前使用 `cc.isValid(obj)` 来检查对象是否已被销毁。
@example
```js
obj.destroy();
```
*/
destroy(): boolean;
}
/** Bit mask that controls object states. */
export enum Flags {
DontSave = 0,
EditorOnly = 0,
HideInHierarchy = 0,
}
/** The fullscreen API provides an easy way for web content to be presented using the user's entire screen.
It's invalid on safari, QQbrowser and android browser */
export class screen {
/**
initialize
*/
init(): void;
/**
return true if it's full now.
*/
fullScreen(): boolean;
/**
change the screen to full mode.
@param element element
@param onFullScreenChange onFullScreenChange
@param onFullScreenError onFullScreenError
*/
requestFullScreen(element: Element, onFullScreenChange: Function, onFullScreenError: Function): void;
/**
exit the full mode.
*/
exitFullScreen(): boolean;
/**
Automatically request full screen with a touch/click event
@param element element
@param onFullScreenChange onFullScreenChange
*/
autoFullScreen(element: Element, onFullScreenChange: Function): void;
}
/** System variables */
export class sys {
/** English language code */
static LANGUAGE_ENGLISH: string;
/** Chinese language code */
static LANGUAGE_CHINESE: string;
/** French language code */
static LANGUAGE_FRENCH: string;
/** Italian language code */
static LANGUAGE_ITALIAN: string;
/** German language code */
static LANGUAGE_GERMAN: string;
/** Spanish language code */
static LANGUAGE_SPANISH: string;
/** Spanish language code */
static LANGUAGE_DUTCH: string;
/** Russian language code */
static LANGUAGE_RUSSIAN: string;
/** Korean language code */
static LANGUAGE_KOREAN: string;
/** Japanese language code */
static LANGUAGE_JAPANESE: string;
/** Hungarian language code */
static LANGUAGE_HUNGARIAN: string;
/** Portuguese language code */
static LANGUAGE_PORTUGUESE: string;
/** Arabic language code */
static LANGUAGE_ARABIC: string;
/** Norwegian language code */
static LANGUAGE_NORWEGIAN: string;
/** Polish language code */
static LANGUAGE_POLISH: string;
/** Turkish language code */
static LANGUAGE_TURKISH: string;
/** Ukrainian language code */
static LANGUAGE_UKRAINIAN: string;
/** Romanian language code */
static LANGUAGE_ROMANIAN: string;
/** Bulgarian language code */
static LANGUAGE_BULGARIAN: string;
/** Unknown language code */
static LANGUAGE_UNKNOWN: string;
static OS_IOS: string;
static OS_ANDROID: string;
static OS_WINDOWS: string;
static OS_MARMALADE: string;
static OS_LINUX: string;
static OS_BADA: string;
static OS_BLACKBERRY: string;
static OS_OSX: string;
static OS_WP8: string;
static OS_WINRT: string;
static OS_UNKNOWN: string;
static UNKNOWN: number;
static WIN32: number;
static LINUX: number;
static MACOS: number;
static ANDROID: number;
static IPHONE: number;
static IPAD: number;
static BLACKBERRY: number;
static NACL: number;
static EMSCRIPTEN: number;
static TIZEN: number;
static WINRT: number;
static WP8: number;
static MOBILE_BROWSER: number;
static DESKTOP_BROWSER: number;
/** Indicates whether executes in editor's window process (Electron's renderer context) */
static EDITOR_PAGE: number;
/** Indicates whether executes in editor's main process (Electron's browser context) */
static EDITOR_CORE: number;
static WECHAT_GAME: number;
static QQ_PLAY: number;
static FB_PLAYABLE_ADS: number;
static BAIDU_GAME: number;
static VIVO_GAME: number;
static OPPO_GAME: number;
static HUAWEI_GAME: number;
static XIAOMI_GAME: number;
static JKW_GAME: number;
static ALIPAY_GAME: number;
static WECHAT_GAME_SUB: number;
static BAIDU_GAME_SUB: number;
static QTT_GAME: number;
static BYTEDANCE_GAME: number;
static BYTEDANCE_GAME_SUB: number;
static LINKSURE: number;
/** BROWSER_TYPE_WECHAT */
static BROWSER_TYPE_WECHAT: string;
static BROWSER_TYPE_ANDROID: string;
static BROWSER_TYPE_IE: string;
static BROWSER_TYPE_EDGE: string;
static BROWSER_TYPE_QQ: string;
static BROWSER_TYPE_MOBILE_QQ: string;
static BROWSER_TYPE_UC: string;
/** uc third party integration. */
static BROWSER_TYPE_UCBS: string;
static BROWSER_TYPE_360: string;
static BROWSER_TYPE_BAIDU_APP: string;
static BROWSER_TYPE_BAIDU: string;
static BROWSER_TYPE_MAXTHON: string;
static BROWSER_TYPE_OPERA: string;
static BROWSER_TYPE_OUPENG: string;
static BROWSER_TYPE_MIUI: string;
static BROWSER_TYPE_FIREFOX: string;
static BROWSER_TYPE_SAFARI: string;
static BROWSER_TYPE_CHROME: string;
static BROWSER_TYPE_LIEBAO: string;
static BROWSER_TYPE_QZONE: string;
static BROWSER_TYPE_SOUGOU: string;
static BROWSER_TYPE_UNKNOWN: string;
/** Is native ? This is set to be true in jsb auto. */
static isNative: boolean;
/** Is web browser ? */
static isBrowser: boolean;
/**
Is webgl extension support?
@param name name
*/
static glExtension(name: any): void;
/**
Get max joint matrix size for skinned mesh renderer.
*/
static getMaxJointMatrixSize(): void;
/**
!#en
Returns the safe area of the screen. If the screen is not notched, the design resolution will be returned by default.
Only supported on Android, iOS and WeChat Mini Game platform.
!#zh
返回手机屏幕安全区域,如果不是异形屏将默认返回设计分辨率尺寸。目前只支持安卓、iOS 原生平台和微信小游戏平台。
*/
static getSafeAreaRect(): Rect;
/** Indicate whether system is mobile system */
static isMobile: boolean;
/** Indicate the running platform */
static platform: number;
/** Get current language iso 639-1 code.
Examples of valid language codes include "zh-tw", "en", "en-us", "fr", "fr-fr", "es-es", etc.
The actual value totally depends on results provided by destination platform. */
static languageCode: string;
/** Indicate the current language of the running system */
static language: string;
/** Indicate the running os name */
static os: string;
/** Indicate the running os version */
static osVersion: string;
/** Indicate the running os main version */
static osMainVersion: number;
/** Indicate the running browser type */
static browserType: string|void;
/** Indicate the running browser version */
static browserVersion: string|void;
/** Indicate the real pixel resolution of the whole game window */
static windowPixelResolution: Size;
/** cc.sys.localStorage is a local storage component. */
static localStorage: any;
/** The capabilities of the current platform */
static capabilities: any;
/**
!#en
Get the network type of current device, return cc.sys.NetworkType.LAN if failure.
!#zh
获取当前设备的网络类型, 如果网络类型无法获取,默认将返回 cc.sys.NetworkType.LAN
*/
static getNetworkType(): sys.NetworkType;
/**
!#en
Get the battery level of current device, return 1.0 if failure.
!#zh
获取当前设备的电池电量,如果电量无法获取,默认将返回 1
*/
static getBatteryLevel(): number;
/**
Forces the garbage collection, only available in JSB
*/
static garbageCollect(): void;
/**
Restart the JS VM, only available in JSB
*/
static restartVM(): void;
/**
Check whether an object is valid,
In web engine, it will return true if the object exist
In native engine, it will return true if the JS object and the correspond native object are both valid
@param obj obj
*/
static isObjectValid(obj: any): boolean;
/**
Dump system informations
*/
static dump(): void;
/**
Open a url in browser
@param url url
*/
static openURL(url: string): void;
/**
Get the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC.
*/
static now(): number;
}
/** cc.view is the singleton object which represents the game window.<br/>
It's main task include: <br/>
- Apply the design resolution policy<br/>
- Provide interaction with the window, like resize event on web, retina display support, etc...<br/>
- Manage the game view port which can be different with the window<br/>
- Manage the content scale and translation<br/>
<br/>
Since the cc.view is a singleton, you don't need to call any constructor or create functions,<br/>
the standard way to use it is by calling:<br/>
- cc.view.methodName(); <br/> */
export class View extends EventTarget {
/**
!#en
Sets view's target-densitydpi for android mobile browser. it can be set to: <br/>
1. cc.macro.DENSITYDPI_DEVICE, value is "device-dpi" <br/>
2. cc.macro.DENSITYDPI_HIGH, value is "high-dpi" (default value) <br/>
3. cc.macro.DENSITYDPI_MEDIUM, value is "medium-dpi" (browser's default value) <br/>
4. cc.macro.DENSITYDPI_LOW, value is "low-dpi" <br/>
5. Custom value, e.g: "480" <br/>
!#zh 设置目标内容的每英寸像素点密度。
@param densityDPI densityDPI
*/
setTargetDensityDPI(densityDPI: string): void;
/**
!#en
Returns the current target-densitydpi value of cc.view.
!#zh 获取目标内容的每英寸像素点密度。
*/
getTargetDensityDPI(): string;
/**
!#en
Sets whether resize canvas automatically when browser's size changed.<br/>
Useful only on web.
!#zh 设置当发现浏览器的尺寸改变时,是否自动调整 canvas 尺寸大小。
仅在 Web 模式下有效。
@param enabled Whether enable automatic resize with browser's resize event
*/
resizeWithBrowserSize(enabled: boolean): void;
/**
!#en
Sets the callback function for cc.view's resize action,<br/>
this callback will be invoked before applying resolution policy, <br/>
so you can do any additional modifications within the callback.<br/>
Useful only on web.
!#zh 设置 cc.view 调整视窗尺寸行为的回调函数,
这个回调函数会在应用适配模式之前被调用,
因此你可以在这个回调函数内添加任意附加改变,
仅在 Web 平台下有效。
@param callback The callback function
*/
setResizeCallback(callback: Function|void): void;
/**
!#en
Sets the orientation of the game, it can be landscape, portrait or auto.
When set it to landscape or portrait, and screen w/h ratio doesn't fit,
cc.view will automatically rotate the game canvas using CSS.
Note that this function doesn't have any effect in native,
in native, you need to set the application orientation in native project settings
!#zh 设置游戏屏幕朝向,它能够是横版,竖版或自动。
当设置为横版或竖版,并且屏幕的宽高比例不匹配时,
cc.view 会自动用 CSS 旋转游戏场景的 canvas,
这个方法不会对 native 部分产生任何影响,对于 native 而言,你需要在应用设置中的设置排版。
@param orientation Possible values: cc.macro.ORIENTATION_LANDSCAPE | cc.macro.ORIENTATION_PORTRAIT | cc.macro.ORIENTATION_AUTO
*/
setOrientation(orientation: number): void;
/**
!#en
Sets whether the engine modify the "viewport" meta in your web page.<br/>
It's enabled by default, we strongly suggest you not to disable it.<br/>
And even when it's enabled, you can still set your own "viewport" meta, it won't be overridden<br/>
Only useful on web
!#zh 设置引擎是否调整 viewport meta 来配合屏幕适配。
默认设置为启动,我们强烈建议你不要将它设置为关闭。
即使当它启动时,你仍然能够设置你的 viewport meta,它不会被覆盖。
仅在 Web 模式下有效
@param enabled Enable automatic modification to "viewport" meta
*/
adjustViewportMeta(enabled: boolean): void;
/**
!#en
Retina support is enabled by default for Apple device but disabled for other devices,<br/>
it takes effect only when you called setDesignResolutionPolicy<br/>
Only useful on web
!#zh 对于 Apple 这种支持 Retina 显示的设备上默认进行优化而其他类型设备默认不进行优化,
它仅会在你调用 setDesignResolutionPolicy 方法时有影响。
仅在 Web 模式下有效。
@param enabled Enable or disable retina display
*/
enableRetina(enabled: boolean): void;
/**
!#en
Check whether retina display is enabled.<br/>
Only useful on web
!#zh 检查是否对 Retina 显示设备进行优化。
仅在 Web 模式下有效。
*/
isRetinaEnabled(): boolean;
/**
!#en Whether to Enable on anti-alias
!#zh 控制抗锯齿是否开启
@param enabled Enable or not anti-alias
*/
enableAntiAlias(enabled: boolean): void;
/**
!#en Returns whether the current enable on anti-alias
!#zh 返回当前是否抗锯齿
*/
isAntiAliasEnabled(): boolean;
/**
!#en
If enabled, the application will try automatically to enter full screen mode on mobile devices<br/>
You can pass true as parameter to enable it and disable it by passing false.<br/>
Only useful on web
!#zh 启动时,移动端游戏会在移动端自动尝试进入全屏模式。
你能够传入 true 为参数去启动它,用 false 参数来关闭它。
@param enabled Enable or disable auto full screen on mobile devices
*/
enableAutoFullScreen(enabled: boolean): void;
/**
!#en
Check whether auto full screen is enabled.<br/>
Only useful on web
!#zh 检查自动进入全屏模式是否启动。
仅在 Web 模式下有效。
*/
isAutoFullScreenEnabled(): boolean;
/**
!#en
Returns the canvas size of the view.<br/>
On native platforms, it returns the screen size since the view is a fullscreen view.<br/>
On web, it returns the size of the canvas element.
!#zh 返回视图中 canvas 的尺寸。
在 native 平台下,它返回全屏视图下屏幕的尺寸。
在 Web 平台下,它返回 canvas 元素尺寸。
*/
getCanvasSize(): Size;
/**
!#en
Returns the frame size of the view.<br/>
On native platforms, it returns the screen size since the view is a fullscreen view.<br/>
On web, it returns the size of the canvas's outer DOM element.
!#zh 返回视图中边框尺寸。
在 native 平台下,它返回全屏视图下屏幕的尺寸。
在 web 平台下,它返回 canvas 元素的外层 DOM 元素尺寸。
*/
getFrameSize(): Size;
/**
!#en
On native, it sets the frame size of view.<br/>
On web, it sets the size of the canvas's outer DOM element.
!#zh 在 native 平台下,设置视图框架尺寸。
在 web 平台下,设置 canvas 外层 DOM 元素尺寸。
@param width width
@param height height
*/
setFrameSize(width: number, height: number): void;
/**
!#en
Returns the visible area size of the view port.
!#zh 返回视图窗口可见区域尺寸。
*/
getVisibleSize(): Size;
/**
!#en
Returns the visible area size of the view port.
!#zh 返回视图窗口可见区域像素尺寸。
*/
getVisibleSizeInPixel(): Size;
/**
!#en
Returns the visible origin of the view port.
!#zh 返回视图窗口可见区域原点。
*/
getVisibleOrigin(): Vec2;
/**
!#en
Returns the visible origin of the view port.
!#zh 返回视图窗口可见区域像素原点。
*/
getVisibleOriginInPixel(): Vec2;
/**
!#en
Returns the current resolution policy
!#zh 返回当前分辨率方案
*/
getResolutionPolicy(): ResolutionPolicy;
/**
!#en
Sets the current resolution policy
!#zh 设置当前分辨率模式
@param resolutionPolicy resolutionPolicy
*/
setResolutionPolicy(resolutionPolicy: ResolutionPolicy|number): void;
/**
!#en
Sets the resolution policy with designed view size in points.<br/>
The resolution policy include: <br/>
[1] ResolutionExactFit Fill screen by stretch-to-fit: if the design resolution ratio of width to height is different from the screen resolution ratio, your game view will be stretched.<br/>
[2] ResolutionNoBorder Full screen without black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two areas of your game view will be cut.<br/>
[3] ResolutionShowAll Full screen with black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two black borders will be shown.<br/>
[4] ResolutionFixedHeight Scale the content's height to screen's height and proportionally scale its width<br/>
[5] ResolutionFixedWidth Scale the content's width to screen's width and proportionally scale its height<br/>
[cc.ResolutionPolicy] [Web only feature] Custom resolution policy, constructed by cc.ResolutionPolicy<br/>
!#zh 通过设置设计分辨率和匹配模式来进行游戏画面的屏幕适配。
@param width Design resolution width.
@param height Design resolution height.
@param resolutionPolicy The resolution policy desired
*/
setDesignResolutionSize(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void;
/**
!#en
Returns the designed size for the view.
Default resolution size is the same as 'getFrameSize'.
!#zh 返回视图的设计分辨率。
默认下分辨率尺寸同 `getFrameSize` 方法相同
*/
getDesignResolutionSize(): Size;
/**
!#en
Sets the container to desired pixel resolution and fit the game content to it.
This function is very useful for adaptation in mobile browsers.
In some HD android devices, the resolution is very high, but its browser performance may not be very good.
In this case, enabling retina display is very costy and not suggested, and if retina is disabled, the image may be blurry.
But this API can be helpful to set a desired pixel resolution which is in between.
This API will do the following:
1. Set viewport's width to the desired width in pixel
2. Set body width to the exact pixel resolution
3. The resolution policy will be reset with designed view size in points.
!#zh 设置容器(container)需要的像素分辨率并且适配相应分辨率的游戏内容。
@param width Design resolution width.
@param height Design resolution height.
@param resolutionPolicy The resolution policy desired
*/
setRealPixelResolution(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void;
/**
!#en
Sets view port rectangle with points.
!#zh 用设计分辨率下的点尺寸来设置视窗。
@param x x
@param y y
@param w width
@param h height
*/
setViewportInPoints(x: number, y: number, w: number, h: number): void;
/**
!#en
Sets Scissor rectangle with points.
!#zh 用设计分辨率下的点的尺寸来设置 scissor 剪裁区域。
@param x x
@param y y
@param w w
@param h h
*/
setScissorInPoints(x: number, y: number, w: number, h: number): void;
/**
!#en
Returns whether GL_SCISSOR_TEST is enable
!#zh 检查 scissor 是否生效。
*/
isScissorEnabled(): boolean;
/**
!#en
Returns the current scissor rectangle
!#zh 返回当前的 scissor 剪裁区域。
*/
getScissorRect(): Rect;
/**
!#en
Returns the view port rectangle.
!#zh 返回视窗剪裁区域。
*/
getViewportRect(): Rect;
/**
!#en
Returns scale factor of the horizontal direction (X axis).
!#zh 返回横轴的缩放比,这个缩放比是将画布像素分辨率放到设计分辨率的比例。
*/
getScaleX(): number;
/**
!#en
Returns scale factor of the vertical direction (Y axis).
!#zh 返回纵轴的缩放比,这个缩放比是将画布像素分辨率缩放到设计分辨率的比例。
*/
getScaleY(): number;
/**
!#en
Returns device pixel ratio for retina display.
!#zh 返回设备或浏览器像素比例。
*/
getDevicePixelRatio(): number;
/**
!#en
Returns the real location in view for a translation based on a related position
!#zh 将屏幕坐标转换为游戏视图下的坐标。
@param tx The X axis translation
@param ty The Y axis translation
@param relatedPos The related position object including "left", "top", "width", "height" informations
*/
convertToLocationInView(tx: number, ty: number, relatedPos: any): Vec2;
}
/** <p>cc.game.containerStrategy class is the root strategy class of container's scale strategy,
it controls the behavior of how to scale the cc.game.container and cc.game.canvas object</p> */
export class ContainerStrategy {
/**
!#en
Manipulation before appling the strategy
!#zh 在应用策略之前的操作
@param view The target view
*/
preApply(view: View): void;
/**
!#en
Function to apply this strategy
!#zh 策略应用方法
@param view view
@param designedResolution designedResolution
*/
apply(view: View, designedResolution: Size): void;
/**
!#en
Manipulation after applying the strategy
!#zh 策略调用之后的操作
@param view The target view
*/
postApply(view: View): void;
}
/** <p>cc.ContentStrategy class is the root strategy class of content's scale strategy,
it controls the behavior of how to scale the scene and setup the viewport for the game</p> */
export class ContentStrategy {
/**
!#en
Manipulation before applying the strategy
!#zh 策略应用前的操作
@param view The target view
*/
preApply(view: View): void;
/**
!#en Function to apply this strategy
The return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}},
The target view can then apply these value to itself, it's preferred not to modify directly its private variables
!#zh 调用策略方法
@param view view
@param designedResolution designedResolution
*/
apply(view: View, designedResolution: Size): any;
/**
!#en
Manipulation after applying the strategy
!#zh 策略调用之后的操作
@param view The target view
*/
postApply(view: View): void;
}
/** undefined */
export class EqualToFrame extends ContainerStrategy {
}
/** undefined */
export class ProportionalToFrame extends ContainerStrategy {
}
/** undefined */
export class EqualToWindow extends EqualToFrame {
}
/** undefined */
export class ProportionalToWindow extends ProportionalToFrame {
}
/** undefined */
export class OriginalContainer extends ContainerStrategy {
}
/** <p>cc.ResolutionPolicy class is the root strategy class of scale strategy,
its main task is to maintain the compatibility with Cocos2d-x</p> */
export class ResolutionPolicy {
/**
@param containerStg The container strategy
@param contentStg The content strategy
*/
constructor(containerStg: ContainerStrategy, contentStg: ContentStrategy);
/**
!#en Manipulation before applying the resolution policy
!#zh 策略应用前的操作
@param view The target view
*/
preApply(view: View): void;
/**
!#en Function to apply this resolution policy
The return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}},
The target view can then apply these value to itself, it's preferred not to modify directly its private variables
!#zh 调用策略方法
@param view The target view
@param designedResolution The user defined design resolution
*/
apply(view: View, designedResolution: Size): any;
/**
!#en Manipulation after appyling the strategy
!#zh 策略应用之后的操作
@param view The target view
*/
postApply(view: View): void;
/**
!#en
Setup the container's scale strategy
!#zh 设置容器的适配策略
@param containerStg containerStg
*/
setContainerStrategy(containerStg: ContainerStrategy): void;
/**
!#en
Setup the content's scale strategy
!#zh 设置内容的适配策略
@param contentStg contentStg
*/
setContentStrategy(contentStg: ContentStrategy): void;
/** The entire application is visible in the specified area without trying to preserve the original aspect ratio.<br/>
Distortion can occur, and the application may appear stretched or compressed. */
static EXACT_FIT: number;
/** The entire application fills the specified area, without distortion but possibly with some cropping,<br/>
while maintaining the original aspect ratio of the application. */
static NO_BORDER: number;
/** The entire application is visible in the specified area without distortion while maintaining the original<br/>
aspect ratio of the application. Borders can appear on two sides of the application. */
static SHOW_ALL: number;
/** The application takes the height of the design resolution size and modifies the width of the internal<br/>
canvas so that it fits the aspect ratio of the device<br/>
no distortion will occur however you must make sure your application works on different<br/>
aspect ratios */
static FIXED_HEIGHT: number;
/** The application takes the width of the design resolution size and modifies the height of the internal<br/>
canvas so that it fits the aspect ratio of the device<br/>
no distortion will occur however you must make sure your application works on different<br/>
aspect ratios */
static FIXED_WIDTH: number;
/** Unknow policy */
static UNKNOWN: number;
}
/** cc.visibleRect is a singleton object which defines the actual visible rect of the current view,
it should represent the same rect as cc.view.getViewportRect() */
export class visibleRect {
/**
initialize
@param visibleRect visibleRect
*/
static init(visibleRect: Rect): void;
/** Top left coordinate of the screen related to the game scene. */
static topLeft: Vec2;
/** Top right coordinate of the screen related to the game scene. */
static topRight: Vec2;
/** Top center coordinate of the screen related to the game scene. */
static top: Vec2;
/** Bottom left coordinate of the screen related to the game scene. */
static bottomLeft: Vec2;
/** Bottom right coordinate of the screen related to the game scene. */
static bottomRight: Vec2;
/** Bottom center coordinate of the screen related to the game scene. */
static bottom: Vec2;
/** Center coordinate of the screen related to the game scene. */
static center: Vec2;
/** Left center coordinate of the screen related to the game scene. */
static left: Vec2;
/** Right center coordinate of the screen related to the game scene. */
static right: Vec2;
/** Width of the screen. */
static width: number;
/** Height of the screen. */
static height: number;
}
/** !#en The callbacks invoker to handle and invoke callbacks by key.
!#zh CallbacksInvoker 用来根据 Key 管理并调用回调方法。 */
export class CallbacksInvoker {
/**
!#zh
检查指定事件是否已注册回调。
!#en
Check if the specified key has any registered callback. If a callback is also specified,
it will only return true if the callback is registered.
@param key key
@param callback callback
@param target target
*/
hasEventListener(key: string, callback?: Function, target?: any): boolean;
/**
!#zh
移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。
!#en
Removes all callbacks registered in a certain event type or all callbacks registered with a certain target
@param keyOrTarget The event key to be removed or the target to be removed
*/
removeAll(keyOrTarget: string|any): void;
/**
!#zh
删除之前与同类型,回调,目标注册的回调。
@param key key
@param callback callback
@param target target
*/
off(key: string, callback: Function, target?: any): void;
/**
!#en
Trigger an event directly with the event name and necessary arguments.
!#zh
通过事件名发送自定义事件
@param key event type
@param arg1 First argument
@param arg2 Second argument
@param arg3 Third argument
@param arg4 Fourth argument
@param arg5 Fifth argument
@example
```js
eventTarget.emit('fire', event);
eventTarget.emit('fire', message, emitter);
```
*/
emit(key: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;
}
/** !#en Contains information collected during deserialization
!#zh 包含反序列化时的一些信息 */
export class Details {
/** list of the depends assets' uuid */
uuidList: string[];
/** the obj list whose field needs to load asset by uuid */
uuidObjList: any[];
/** the corresponding field name which referenced to the asset */
uuidPropList: string[];
reset(): void;
/**
@param obj obj
@param propName propName
@param uuid uuid
*/
push(obj: any, propName: string, uuid: string): void;
}
/** !#en The module provides utilities for working with file and directory paths
!#zh 用于处理文件与目录的路径的模块 */
export class path {
/**
!#en Join strings to be a path.
!#zh 拼接字符串为 Path
@example
```js
------------------------------
cc.path.join("a", "b.png"); //-->"a/b.png"
cc.path.join("a", "b", "c.png"); //-->"a/b/c.png"
cc.path.join("a", "b"); //-->"a/b"
cc.path.join("a", "b", "/"); //-->"a/b/"
cc.path.join("a", "b/", "/"); //-->"a/b/"
```
*/
static join(): string;
/**
!#en Get the ext name of a path including '.', like '.png'.
!#zh 返回 Path 的扩展名,包括 '.',例如 '.png'。
@param pathStr pathStr
@example
```js
---------------------------
cc.path.extname("a/b.png"); //-->".png"
cc.path.extname("a/b.png?a=1&b=2"); //-->".png"
cc.path.extname("a/b"); //-->null
cc.path.extname("a/b?a=1&b=2"); //-->null
```
*/
static extname(pathStr: string): any;
/**
!#en Get the main name of a file name
!#zh 获取文件名的主名称
@param fileName fileName
*/
static mainFileName(fileName: string): string;
/**
!#en Get the file name of a file path.
!#zh 获取文件路径的文件名。
@param pathStr pathStr
@param extname extname
@example
```js
---------------------------------
cc.path.basename("a/b.png"); //-->"b.png"
cc.path.basename("a/b.png?a=1&b=2"); //-->"b.png"
cc.path.basename("a/b.png", ".png"); //-->"b"
cc.path.basename("a/b.png?a=1&b=2", ".png"); //-->"b"
cc.path.basename("a/b.png", ".txt"); //-->"b.png"
```
*/
static basename(pathStr: string, extname?: string): any;
/**
!#en Get dirname of a file path.
!#zh 获取文件路径的目录名。
@param pathStr pathStr
@example
```js
---------------------------------
* unix
cc.path.driname("a/b/c.png"); //-->"a/b"
cc.path.driname("a/b/c.png?a=1&b=2"); //-->"a/b"
cc.path.dirname("a/b/"); //-->"a/b"
cc.path.dirname("c.png"); //-->""
* windows
cc.path.driname("a\\b\\c.png"); //-->"a\b"
cc.path.driname("a\\b\\c.png?a=1&b=2"); //-->"a\b"
```
*/
static dirname(pathStr: string): any;
/**
!#en Change extname of a file path.
!#zh 更改文件路径的扩展名。
@param pathStr pathStr
@param extname extname
@example
```js
---------------------------------
cc.path.changeExtname("a/b.png", ".plist"); //-->"a/b.plist"
cc.path.changeExtname("a/b.png?a=1&b=2", ".plist"); //-->"a/b.plist?a=1&b=2"
```
*/
static changeExtname(pathStr: string, extname?: string): string;
}
/** !#en
AffineTransform class represent an affine transform matrix. It's composed basically by translation, rotation, scale transformations.<br/>
!#zh
AffineTransform 类代表一个仿射变换矩阵。它基本上是由平移旋转,缩放转变所组成。<br/> */
export class AffineTransform {
/**
!#en Create a AffineTransform object with all contents in the matrix.
!#zh 用在矩阵中的所有内容创建一个 AffineTransform 对象。
@param a a
@param b b
@param c c
@param d d
@param tx tx
@param ty ty
*/
static create(a: number, b: number, c: number, d: number, tx: number, ty: number): AffineTransform;
/**
!#en
Create a identity transformation matrix: <br/>
[ 1, 0, 0, <br/>
0, 1, 0 ]
!#zh
单位矩阵:<br/>
[ 1, 0, 0, <br/>
0, 1, 0 ]
*/
static identity(): AffineTransform;
/**
!#en Clone a AffineTransform object from the specified transform.
!#zh 克隆指定的 AffineTransform 对象。
@param t t
*/
static clone(t: AffineTransform): AffineTransform;
/**
!#en
Concatenate a transform matrix to another
The results are reflected in the out affine transform
out = t1 * t2
This function is memory free, you should create the output affine transform by yourself and manage its memory.
!#zh
拼接两个矩阵,将结果保存到 out 矩阵。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。
out = t1 * t2
@param out Out object to store the concat result
@param t1 The first transform object.
@param t2 The transform object to concatenate.
*/
static concat(out: AffineTransform, t1: AffineTransform, t2: AffineTransform): AffineTransform;
/**
!#en Get the invert transform of an AffineTransform object.
This function is memory free, you should create the output affine transform by yourself and manage its memory.
!#zh 求逆矩阵。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。
@param out out
@param t t
*/
static invert(out: AffineTransform, t: AffineTransform): AffineTransform;
/**
!#en Get an AffineTransform object from a given matrix 4x4.
This function is memory free, you should create the output affine transform by yourself and manage its memory.
!#zh 从一个 4x4 Matrix 获取 AffineTransform 对象。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。
@param out out
@param mat mat
*/
static invert(out: AffineTransform, mat: Mat4): AffineTransform;
/**
!#en Apply the affine transformation on a point.
This function is memory free, you should create the output Vec2 by yourself and manage its memory.
!#zh 对一个点应用矩阵变换。这个函数不创建任何内存,你需要先创建一个 Vec2 对象用来存储结果,并作为第一个参数传入函数。
@param out The output point to store the result
@param point Point to apply transform or x.
@param transOrY transform matrix or y.
@param t transform matrix.
*/
static transformVec2(out: Vec2, point: Vec2|number, transOrY: AffineTransform|number, t?: AffineTransform): Vec2;
/**
!#en Apply the affine transformation on a size.
This function is memory free, you should create the output Size by yourself and manage its memory.
!#zh 应用仿射变换矩阵到 Size 上。这个函数不创建任何内存,你需要先创建一个 Size 对象用来存储结果,并作为第一个参数传入函数。
@param out The output point to store the result
@param size size
@param t t
*/
static transformSize(out: Size, size: Size, t: AffineTransform): Size;
/**
!#en Apply the affine transformation on a rect.
This function is memory free, you should create the output Rect by yourself and manage its memory.
!#zh 应用仿射变换矩阵到 Rect 上。这个函数不创建任何内存,你需要先创建一个 Rect 对象用来存储结果,并作为第一个参数传入函数。
@param out out
@param rect rect
@param anAffineTransform anAffineTransform
*/
static transformRect(out: Rect, rect: Rect, anAffineTransform: AffineTransform): Rect;
/**
!#en Apply the affine transformation on a rect, and truns to an Oriented Bounding Box.
This function is memory free, you should create the output vectors by yourself and manage their memory.
!#zh 应用仿射变换矩阵到 Rect 上, 并转换为有向包围盒。这个函数不创建任何内存,你需要先创建包围盒的四个 Vector 对象用来存储结果,并作为前四个参数传入函数。
@param out_bl out_bl
@param out_tl out_tl
@param out_tr out_tr
@param out_br out_br
@param rect rect
@param anAffineTransform anAffineTransform
*/
static transformObb(out_bl: Vec2, out_tl: Vec2, out_tr: Vec2, out_br: Vec2, rect: Rect, anAffineTransform: AffineTransform): void;
}
/** A base node for CCNode, it will:
- maintain scene hierarchy and active logic
- notifications if some properties changed
- define some interfaces shares between CCNode
- define machanisms for Enity Component Systems
- define prefab and serialize functions */
export class _BaseNode extends Object implements EventTarget {
/** !#en Name of node.
!#zh 该节点名称。 */
name: string;
/** !#en The uuid for editor, will be stripped before building project.
!#zh 主要用于编辑器的 uuid,在编辑器下可用于持久化存储,在项目构建之后将变成自增的 id。 */
uuid: string;
/** !#en All children nodes.
!#zh 节点的所有子节点。 */
children: Node[];
/** !#en All children nodes.
!#zh 节点的子节点数量。 */
childrenCount: number;
/** !#en
The local active state of this node.<br/>
Note that a Node may be inactive because a parent is not active, even if this returns true.<br/>
Use {{#crossLink "Node/activeInHierarchy:property"}}{{/crossLink}} if you want to check if the Node is actually treated as active in the scene.
!#zh
当前节点的自身激活状态。<br/>
值得注意的是,一个节点的父节点如果不被激活,那么即使它自身设为激活,它仍然无法激活。<br/>
如果你想检查节点在场景中实际的激活状态可以使用 {{#crossLink "Node/activeInHierarchy:property"}}{{/crossLink}}。 */
active: boolean;
/** !#en Indicates whether this node is active in the scene.
!#zh 表示此节点是否在场景中激活。 */
activeInHierarchy: boolean;
/**
@param name name
*/
constructor(name?: string);
/** !#en The parent of the node.
!#zh 该节点的父节点。 */
parent: Node;
/**
!#en Get parent of the node.
!#zh 获取该节点的父节点。
@example
```js
var parent = this.node.getParent();
```
*/
getParent(): Node;
/**
!#en Set parent of the node.
!#zh 设置该节点的父节点。
@param value value
@example
```js
node.setParent(newNode);
```
*/
setParent(value: Node): void;
/**
!#en
Properties configuration function <br/>
All properties in attrs will be set to the node, <br/>
when the setter of the node is available, <br/>
the property will be set via setter function.<br/>
!#zh 属性配置函数。在 attrs 的所有属性将被设置为节点属性。
@param attrs Properties to be set to node
@example
```js
var attrs = { key: 0, num: 100 };
node.attr(attrs);
```
*/
attr(attrs: any): void;
/**
!#en Returns a child from the container given its uuid.
!#zh 通过 uuid 获取节点的子节点。
@param uuid The uuid to find the child node.
@example
```js
var child = node.getChildByUuid(uuid);
```
*/
getChildByUuid(uuid: string): Node;
/**
!#en Returns a child from the container given its name.
!#zh 通过名称获取节点的子节点。
@param name A name to find the child node.
@example
```js
var child = node.getChildByName("Test Node");
```
*/
getChildByName(name: string): Node;
/**
!#en
Inserts a child to the node at a specified index.
!#zh
插入子节点到指定位置
@param child the child node to be inserted
@param siblingIndex the sibling index to place the child in
@example
```js
node.insertChild(child, 2);
```
*/
insertChild(child: Node, siblingIndex: number): void;
/**
!#en Get the sibling index.
!#zh 获取同级索引。
@example
```js
var index = node.getSiblingIndex();
```
*/
getSiblingIndex(): number;
/**
!#en Set the sibling index of this node.
!#zh 设置节点同级索引。
@param index index
@example
```js
node.setSiblingIndex(1);
```
*/
setSiblingIndex(index: number): void;
/**
!#en Walk though the sub children tree of the current node.
Each node, including the current node, in the sub tree will be visited two times, before all children and after all children.
This function call is not recursive, it's based on stack.
Please don't walk any other node inside the walk process.
!#zh 遍历该节点的子树里的所有节点并按规则执行回调函数。
对子树中的所有节点,包含当前节点,会执行两次回调,prefunc 会在访问它的子节点之前调用,postfunc 会在访问所有子节点之后调用。
这个函数的实现不是基于递归的,而是基于栈展开递归的方式。
请不要在 walk 过程中对任何其他的节点嵌套执行 walk。
@param prefunc The callback to process node when reach the node for the first time
@param postfunc The callback to process node when re-visit the node after walked all children in its sub tree
@example
```js
node.walk(function (target) {
console.log('Walked through node ' + target.name + ' for the first time');
}, function (target) {
console.log('Walked through node ' + target.name + ' after walked all children in its sub tree');
});
```
*/
walk(prefunc: (target: _BaseNode) => void, postfunc: (target: _BaseNode) => void): void;
/**
!#en
Remove itself from its parent node. If cleanup is `true`, then also remove all events and actions. <br/>
If the cleanup parameter is not passed, it will force a cleanup, so it is recommended that you always pass in the `false` parameter when calling this API.<br/>
If the node orphan, then nothing happens.
!#zh
从父节点中删除该节点。如果不传入 cleanup 参数或者传入 `true`,那么这个节点上所有绑定的事件、action 都会被删除。<br/>
因此建议调用这个 API 时总是传入 `false` 参数。<br/>
如果这个节点是一个孤节点,那么什么都不会发生。
@param cleanup true if all actions and callbacks on this node should be removed, false otherwise.
@example
```js
node.removeFromParent();
node.removeFromParent(false);
```
*/
removeFromParent(cleanup?: boolean): void;
/**
!#en
Removes a child from the container. It will also cleanup all running actions depending on the cleanup parameter. </p>
If the cleanup parameter is not passed, it will force a cleanup. <br/>
"remove" logic MUST only be on this method <br/>
If a class wants to extend the 'removeChild' behavior it only needs <br/>
to override this method.
!#zh
移除节点中指定的子节点,是否需要清理所有正在运行的行为取决于 cleanup 参数。<br/>
如果 cleanup 参数不传入,默认为 true 表示清理。<br/>
@param child The child node which will be removed.
@param cleanup true if all running actions and callbacks on the child node will be cleanup, false otherwise.
@example
```js
node.removeChild(newNode);
node.removeChild(newNode, false);
```
*/
removeChild(child: Node, cleanup?: boolean): void;
/**
!#en
Removes all children from the container and do a cleanup all running actions depending on the cleanup parameter. <br/>
If the cleanup parameter is not passed, it will force a cleanup.
!#zh
移除节点所有的子节点,是否需要清理所有正在运行的行为取决于 cleanup 参数。<br/>
如果 cleanup 参数不传入,默认为 true 表示清理。
@param cleanup true if all running actions on all children nodes should be cleanup, false otherwise.
@example
```js
node.removeAllChildren();
node.removeAllChildren(false);
```
*/
removeAllChildren(cleanup?: boolean): void;
/**
!#en Is this node a child of the given node?
!#zh 是否是指定节点的子节点?
@param parent parent
@example
```js
node.isChildOf(newNode);
```
*/
isChildOf(parent: Node): boolean;
/**
!#en
Returns the component of supplied type if the node has one attached, null if it doesn't.<br/>
You can also get component in the node by passing in the name of the script.
!#zh
获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。<br/>
传入参数也可以是脚本的名称。
@param typeOrClassName typeOrClassName
@example
```js
// get sprite component
var sprite = node.getComponent(cc.Sprite);
// get custom test class
var test = node.getComponent("Test");
```
*/
getComponent<T extends Component>(type: {prototype: T}): T;
getComponent(className: string): any;
/**
!#en Returns all components of supplied type in the node.
!#zh 返回节点上指定类型的所有组件。
@param typeOrClassName typeOrClassName
@example
```js
var sprites = node.getComponents(cc.Sprite);
var tests = node.getComponents("Test");
```
*/
getComponents<T extends Component>(type: {prototype: T}): T[];
getComponents(className: string): any[];
/**
!#en Returns the component of supplied type in any of its children using depth first search.
!#zh 递归查找所有子节点中第一个匹配指定类型的组件。
@param typeOrClassName typeOrClassName
@example
```js
var sprite = node.getComponentInChildren(cc.Sprite);
var Test = node.getComponentInChildren("Test");
```
*/
getComponentInChildren<T extends Component>(type: {prototype: T}): T;
getComponentInChildren(className: string): any;
/**
!#en Returns all components of supplied type in self or any of its children.
!#zh 递归查找自身或所有子节点中指定类型的组件
@param typeOrClassName typeOrClassName
@example
```js
var sprites = node.getComponentsInChildren(cc.Sprite);
var tests = node.getComponentsInChildren("Test");
```
*/
getComponentsInChildren<T extends Component>(type: {prototype: T}): T[];
getComponentsInChildren(className: string): any[];
/**
!#en Adds a component class to the node. You can also add component to node by passing in the name of the script.
!#zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
@param typeOrClassName The constructor or the class name of the component to add
@example
```js
var sprite = node.addComponent(cc.Sprite);
var test = node.addComponent("Test");
```
*/
addComponent<T extends Component>(type: {new(): T}): T;
addComponent(className: string): any;
/**
!#en
Removes a component identified by the given name or removes the component object given.
You can also use component.destroy() if you already have the reference.
!#zh
删除节点上的指定组件,传入参数可以是一个组件构造函数或组件名,也可以是已经获得的组件引用。
如果你已经获得组件引用,你也可以直接调用 component.destroy()
@param component The need remove component.
@example
```js
node.removeComponent(cc.Sprite);
var Test = require("Test");
node.removeComponent(Test);
```
*/
removeComponent(component: string|Function|Component): void;
/**
!#en
Destroy all children from the node, and release all their own references to other objects.<br/>
Actual destruct operation will delayed until before rendering.
!#zh
销毁所有子节点,并释放所有它们对其它对象的引用。<br/>
实际销毁操作会延迟到当前帧渲染前执行。
@example
```js
node.destroyAllChildren();
```
*/
destroyAllChildren(): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type A string representing the event type being removed.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null
@example
```js
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
```
*/
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en
Helper class for setting material blend function.
!#zh
设置材质混合模式的辅助类。 */
export class BlendFunc {
/** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost.
!#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */
srcBlendFactor: macro.BlendFactor;
/** !#en specify the destination Blend Factor.
!#zh 指定目标的混合模式 */
dstBlendFactor: macro.BlendFactor;
}
/** An internal helper class for switching render component's material between normal sprite material and gray sprite material. */
export class GraySpriteState {
/** !#en The normal material.
!#zh 正常状态的材质。 */
normalMaterial: Material;
/** !#en The gray material.
!#zh 置灰状态的材质。 */
grayMaterial: Material;
}
/** misc utilities */
export class misc {
/**
!#en Clamp a value between from and to.
!#zh
限定浮点数的最大最小值。<br/>
数值大于 max_inclusive 则返回 max_inclusive。<br/>
数值小于 min_inclusive 则返回 min_inclusive。<br/>
否则返回自身。
@param value value
@param min_inclusive min_inclusive
@param max_inclusive max_inclusive
@example
```js
var v1 = cc.misc.clampf(20, 0, 20); // 20;
var v2 = cc.misc.clampf(-1, 0, 20); // 0;
var v3 = cc.misc.clampf(10, 0, 20); // 10;
```
*/
static clampf(value: number, min_inclusive: number, max_inclusive: number): number;
/**
!#en Clamp a value between 0 and 1.
!#zh 限定浮点数的取值范围为 0 ~ 1 之间。
@param value value
@example
```js
var v1 = cc.misc.clamp01(20); // 1;
var v2 = cc.misc.clamp01(-1); // 0;
var v3 = cc.misc.clamp01(0.5); // 0.5;
```
*/
static clamp01(value: number): number;
/**
Linear interpolation between 2 numbers, the ratio sets how much it is biased to each end
@param a number A
@param b number B
@param r ratio between 0 and 1
@example
```js
----
lerp
cc.misc.lerp(2,10,0.5)//returns 6
cc.misc.lerp(2,10,0.2)//returns 3.6
```
*/
static lerp(a: number, b: number, r: number): number;
/**
converts degrees to radians
@param angle angle
*/
static degreesToRadians(angle: number): number;
/**
converts radians to degrees
@param angle angle
*/
static radiansToDegrees(angle: number): number;
}
/** !#en
Representation of RGBA colors.
Each color component is a floating point value with a range from 0 to 255.
You can also use the convenience method {{#crossLink "cc/color:method"}}cc.color{{/crossLink}} to create a new Color.
!#zh
cc.Color 用于表示颜色。
它包含 RGBA 四个以浮点数保存的颜色分量,每个的值都在 0 到 255 之间。
您也可以通过使用 {{#crossLink "cc/color:method"}}cc.color{{/crossLink}} 的便捷方法来创建一个新的 Color。 */
export class Color extends ValueType {
/** !#en Solid white, RGBA is [255, 255, 255, 255].
!#zh 纯白色,RGBA 是 [255, 255, 255, 255]。 */
static WHITE: Color;
/** !#en Solid black, RGBA is [0, 0, 0, 255].
!#zh 纯黑色,RGBA 是 [0, 0, 0, 255]。 */
static BLACK: Color;
/** !#en Transparent, RGBA is [0, 0, 0, 0].
!#zh 透明,RGBA 是 [0, 0, 0, 0]。 */
static TRANSPARENT: Color;
/** !#en Grey, RGBA is [127.5, 127.5, 127.5].
!#zh 灰色,RGBA 是 [127.5, 127.5, 127.5]。 */
static GRAY: Color;
/** !#en Solid red, RGBA is [255, 0, 0].
!#zh 纯红色,RGBA 是 [255, 0, 0]。 */
static RED: Color;
/** !#en Solid green, RGBA is [0, 255, 0].
!#zh 纯绿色,RGBA 是 [0, 255, 0]。 */
static GREEN: Color;
/** !#en Solid blue, RGBA is [0, 0, 255].
!#zh 纯蓝色,RGBA 是 [0, 0, 255]。 */
static BLUE: Color;
/** !#en Yellow, RGBA is [255, 235, 4].
!#zh 黄色,RGBA 是 [255, 235, 4]。 */
static YELLOW: Color;
/** !#en Orange, RGBA is [255, 127, 0].
!#zh 橙色,RGBA 是 [255, 127, 0]。 */
static ORANGE: Color;
/** !#en Cyan, RGBA is [0, 255, 255].
!#zh 青色,RGBA 是 [0, 255, 255]。 */
static CYAN: Color;
/** !#en Magenta, RGBA is [255, 0, 255].
!#zh 洋红色(品红色),RGBA 是 [255, 0, 255]。 */
static MAGENTA: Color;
/**
Copy content of a color into another.
*/
static copy (out: Color, a: Color): Color;
/**
Clone a new color.
*/
static clone (a: Color): Color;
/**
Set the components of a color to the given values.
*/
static set (out: Color, r?: number, g?: number, b?: number, a?: number): Color;
/**
Converts the hexadecimal formal color into rgb formal.
*/
static fromHex (out: Color, hex: number): Color;
/**
Converts the hexadecimal formal color into rgb formal.
*/
static fromHEX (out: Color, hex: string): Color;
/**
Add components of two colors, respectively.
*/
static add (out: Color, a: Color, b: Color): Color;
/**
Subtract components of color b from components of color a, respectively.
*/
static subtract (out: Color, a: Color, b: Color): Color;
/**
Multiply components of two colors, respectively.
*/
static multiply (out: Color, a: Color, b: Color): Color;
/**
Divide components of color a by components of color b, respectively.
*/
static divide (out: Color, a: Color, b: Color): Color;
/**
Scales a color by a number.
*/
static scale (out: Color, a: Color, b: number): Color;
/**
Performs a linear interpolation between two colors.
*/
static lerp (out: Color, a: Color, b: Color, t: number): Color;
/**
!#zh 颜色转数组
!#en Turn an array of colors
@param ofs 数组起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, a: IColorLike, ofs?: number): Out;
/**
!#zh 数组转颜色
!#en An array of colors turn
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IColorLike> (arr: IWritableArrayLike<number>, out: Out, ofs?: number): Out;
/**
!#zh 颜色 RGB 预乘 Alpha 通道
!#en RGB premultiply alpha channel
@param out 返回颜色
@param color 预乘处理的目标颜色
*/
static premultiplyAlpha <Out extends IColorLike> (out: Out, a: IColorLike);
/**
@param r red component of the color, default value is 0.
@param g green component of the color, defualt value is 0.
@param b blue component of the color, default value is 0.
@param a alpha component of the color, default value is 255.
*/
constructor(r?: number, g?: number, b?: number, a?: number);
/**
!#en Clone a new color from the current color.
!#zh 克隆当前颜色。
@example
```js
var color = new cc.Color();
var newColor = color.clone();// Color {r: 0, g: 0, b: 0, a: 255}
```
*/
clone(): Color;
/**
!#en TODO
!#zh 判断两个颜色是否相等。
@param other other
@example
```js
var color1 = cc.Color.WHITE;
var color2 = new cc.Color(255, 255, 255);
cc.log(color1.equals(color2)); // true;
color2 = cc.Color.RED;
cc.log(color2.equals(color1)); // false;
```
*/
equals(other: Color): boolean;
/**
!#en TODO
!#zh 线性插值
@param to to
@param ratio the interpolation coefficient.
@param out optional, the receiving vector.
@example
```js
// Converts a white color to a black one trough time.
update: function (dt) {
var color = this.node.color;
if (color.equals(cc.Color.BLACK)) {
return;
}
this.ratio += dt * 0.1;
this.node.color = cc.Color.WHITE.lerp(cc.Color.BLACK, ratio);
}
```
*/
lerp(to: Color, ratio: number, out?: Color): Color;
/**
!#en TODO
!#zh 转换为方便阅读的字符串。
@example
```js
var color = cc.Color.WHITE;
color.toString(); // "rgba(255, 255, 255, 255)"
```
*/
toString(): string;
/** !#en Get or set red channel value
!#zh 获取或者设置红色通道 */
r: number;
/** !#en Get or set green channel value
!#zh 获取或者设置绿色通道 */
g: number;
/** !#en Get or set blue channel value
!#zh 获取或者设置蓝色通道 */
b: number;
/** !#en Get or set alpha channel value
!#zh 获取或者设置透明通道 */
a: number;
/**
!#en Gets red channel value
!#zh 获取当前颜色的红色值。
*/
getR(): number;
/**
!#en Sets red value and return the current color object
!#zh 设置当前的红色值,并返回当前对象。
@param red the new Red component.
@example
```js
var color = new cc.Color();
color.setR(255); // Color {r: 255, g: 0, b: 0, a: 255}
```
*/
setR(red: number): Color;
/**
!#en Gets green channel value
!#zh 获取当前颜色的绿色值。
*/
getG(): number;
/**
!#en Sets green value and return the current color object
!#zh 设置当前的绿色值,并返回当前对象。
@param green the new Green component.
@example
```js
var color = new cc.Color();
color.setG(255); // Color {r: 0, g: 255, b: 0, a: 255}
```
*/
setG(green: number): Color;
/**
!#en Gets blue channel value
!#zh 获取当前颜色的蓝色值。
*/
getB(): number;
/**
!#en Sets blue value and return the current color object
!#zh 设置当前的蓝色值,并返回当前对象。
@param blue the new Blue component.
@example
```js
var color = new cc.Color();
color.setB(255); // Color {r: 0, g: 0, b: 255, a: 255}
```
*/
setB(blue: number): Color;
/**
!#en Gets alpha channel value
!#zh 获取当前颜色的透明度值。
*/
getA(): number;
/**
!#en Sets alpha value and return the current color object
!#zh 设置当前的透明度,并返回当前对象。
@param alpha the new Alpha component.
@example
```js
var color = new cc.Color();
color.setA(0); // Color {r: 0, g: 0, b: 0, a: 0}
```
*/
setA(alpha: number): Color;
/**
!#en Convert color to css format.
!#zh 转换为 CSS 格式。
@param opt "rgba", "rgb", "#rgb" or "#rrggbb".
@example
```js
var color = cc.Color.BLACK;
color.toCSS(); // "rgba(0,0,0,1.00)";
color.toCSS("rgba"); // "rgba(0,0,0,1.00)";
color.toCSS("rgb"); // "rgba(0,0,0)";
color.toCSS("#rgb"); // "#000";
color.toCSS("#rrggbb"); // "#000000";
```
*/
toCSS(opt?: string): string;
/**
!#en Read hex string and store color data into the current color object, the hex string must be formated as rgba or rgb.
!#zh 读取 16 进制颜色。
@param hexString hexString
@example
```js
var color = cc.Color.BLACK;
color.fromHEX("#FFFF33"); // Color {r: 255, g: 255, b: 51, a: 255};
```
*/
fromHEX(hexString: string): Color;
/**
!#en convert Color to HEX color string.
!#zh 转换为 16 进制。
@param fmt "#rgb", "#rrggbb" or "#rrggbbaa".
@example
```js
var color = cc.Color.BLACK;
color.toHEX("#rgb"); // "000";
color.toHEX("#rrggbb"); // "000000";
```
*/
toHEX(fmt?: string): string;
/**
!#en Convert to 24bit rgb value.
!#zh 转换为 24bit 的 RGB 值。
@example
```js
var color = cc.Color.YELLOW;
color.toRGBValue(); // 16771844;
```
*/
toRGBValue(): number;
/**
!#en Read HSV model color and convert to RGB color
!#zh 读取 HSV(色彩模型)格式。
@param h h
@param s s
@param v v
@example
```js
var color = cc.Color.YELLOW;
color.fromHSV(0, 0, 1); // Color {r: 255, g: 255, b: 255, a: 255};
```
*/
fromHSV(h: number, s: number, v: number): Color;
/**
!#en Transform to HSV model color
!#zh 转换为 HSV(色彩模型)格式。
@example
```js
var color = cc.Color.YELLOW;
color.toHSV(); // Object {h: 0.1533864541832669, s: 0.9843137254901961, v: 1};
```
*/
toHSV(): any;
/**
!#en Set the color
!#zh 设置颜色
@param color color
*/
set (color: Color): Color;
/**
!#en Multiplies the current color by the specified color
!#zh 将当前颜色乘以与指定颜色
@param other other
*/
multiply(other: Color): Color;
}
/** Mathematical 3x3 matrix.
NOTE: we use column-major matrix for all matrix calculation.
This may lead to some confusion when referencing OpenGL documentation,
however, which represents out all matricies in column-major format.
This means that while in code a matrix may be typed out as:
[1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
x, y, z, 0]
The same matrix in the [OpenGL documentation](https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glTranslate.xml)
is written as:
1 0 0 x
0 1 0 y
0 0 1 z
0 0 0 0
Please rest assured, however, that they are the same thing!
This is not unique to glMatrix, either, as OpenGL developers have long been confused by the
apparent lack of consistency between the memory layout and the documentation. */
export class Mat3 extends ValueType {
/** Identity of Mat3 */
static IDENTITY: Mat3;
/**
!#zh 矩阵转数组
!#en Matrix transpose array
@param ofs 数组内的起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, mat: IMat3Like, ofs?: number): Out;
/**
!#zh 数组转矩阵
!#en Transfer matrix array
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IMat3Like> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
/** !#en Matrix Data
!#zh 矩阵数据 */
m: Float64Array|Float32Array;
constructor (m00?: number | Float32Array, m01?: number, m02?: number, m03?: number, m04?: number, m05?: number, m06?: number, m07?: number, m08?: number);
}
/** !#en Representation of 4*4 matrix.
!#zh 表示 4*4 矩阵 */
export class Mat4 extends ValueType {
/**
!#en Multiply the current matrix with another one
!#zh 将当前矩阵与指定矩阵相乘
@param other the second operand
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
mul(other: Mat4, out?: Mat4): Mat4;
/**
!#en Multiply each element of the matrix by a scalar.
!#zh 将矩阵的每一个元素都乘以指定的缩放值。
@param number amount to scale the matrix's elements by
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
mulScalar(number: number, out?: Mat4): Mat4;
/**
!#en Subtracts the current matrix with another one
!#zh 将当前矩阵与指定的矩阵相减
@param other the second operand
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
sub(other: Mat4, out?: Mat4): Mat4;
/** Identity of Mat4 */
static IDENTITY: Mat4;
/**
!#zh 获得指定矩阵的拷贝
!#en Copy of the specified matrix to obtain
*/
static clone<Out extends IMat4Like> (a: Out): Mat4;
/**
!#zh 复制目标矩阵
!#en Copy the target matrix
*/
static copy<Out extends IMat4Like> (out: Out, a: Out): Out;
/**
!#zh 将目标赋值为单位矩阵
!#en The target of an assignment is the identity matrix
*/
static identity<Out extends IMat4Like> (out: Out): Out;
/**
!#zh 转置矩阵
!#en Transposed matrix
*/
static transpose<Out extends IMat4Like> (out: Out, a: Out): Out;
/**
!#zh 矩阵求逆
!#en Matrix inversion
*/
static invert<Out extends IMat4Like> (out: Out, a: Out): Out;
/**
!#zh 矩阵行列式
!#en Matrix determinant
*/
static determinant<Out extends IMat4Like> (a: Out): number;
/**
!#zh 矩阵乘法
!#en Matrix Multiplication
*/
static multiply<Out extends IMat4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 在给定矩阵变换基础上加入变换
!#en Was added in a given transformation matrix transformation on the basis of
*/
static transform<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, a: Out, v: VecLike): Out;
/**
!#zh 在给定矩阵变换基础上加入新位移变换
!#en Add new displacement transducer in a matrix transformation on the basis of a given
*/
static translate<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, a: Out, v: VecLike): Out;
/**
!#zh 在给定矩阵变换基础上加入新缩放变换
!#en Add new scaling transformation in a given matrix transformation on the basis of
*/
static scale<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, a: Out, v: VecLike): Out;
/**
!#zh 在给定矩阵变换基础上加入新旋转变换
!#en Add a new rotational transform matrix transformation on the basis of a given
@param rad 旋转角度
@param axis 旋转轴
*/
static rotate<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, a: Out, rad: number, axis: VecLike): Out;
/**
!#zh 在给定矩阵变换基础上加入绕 X 轴的旋转变换
!#en Add rotational transformation around the X axis at a given matrix transformation on the basis of
@param rad 旋转角度
*/
static rotateX<Out extends IMat4Like> (out: Out, a: Out, rad: number): Out;
/**
!#zh 在给定矩阵变换基础上加入绕 Y 轴的旋转变换
!#en Add about the Y axis rotation transformation in a given matrix transformation on the basis of
@param rad 旋转角度
*/
static rotateY<Out extends IMat4Like> (out: Out, a: Out, rad: number): Out;
/**
!#zh 在给定矩阵变换基础上加入绕 Z 轴的旋转变换
!#en Added about the Z axis at a given rotational transformation matrix transformation on the basis of
@param rad 旋转角度
*/
static rotateZ<Out extends IMat4Like> (out: Out, a: Out, rad: number): Out;
/**
!#zh 计算位移矩阵
!#en Displacement matrix calculation
*/
static fromTranslation<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, v: VecLike): Out;
/**
!#zh 计算缩放矩阵
!#en Scaling matrix calculation
*/
static fromScaling<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, v: VecLike): Out;
/**
!#zh 计算旋转矩阵
!#en Calculates the rotation matrix
*/
static fromRotation<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, rad: number, axis: VecLike): Out;
/**
!#zh 计算绕 X 轴的旋转矩阵
!#en Calculating rotation matrix about the X axis
*/
static fromXRotation<Out extends IMat4Like> (out: Out, rad: number): Out;
/**
!#zh 计算绕 Y 轴的旋转矩阵
!#en Calculating rotation matrix about the Y axis
*/
static fromYRotation<Out extends IMat4Like> (out: Out, rad: number): Out;
/**
!#zh 计算绕 Z 轴的旋转矩阵
!#en Calculating rotation matrix about the Z axis
*/
static fromZRotation<Out extends IMat4Like> (out: Out, rad: number): Out;
/**
!#zh 根据旋转和位移信息计算矩阵
!#en The rotation and displacement information calculating matrix
*/
static fromRT<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, q: Quat, v: VecLike): Out;
/**
!#zh 提取矩阵的位移信息, 默认矩阵中的变换以 S->R->T 的顺序应用
!#en Extracting displacement information of the matrix, the matrix transform to the default sequential application S-> R-> T is
*/
static getTranslation<Out extends IMat4Like, VecLike extends IVec3Like> (out: VecLike, mat: Out): VecLike;
/**
!#zh 提取矩阵的缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用
!#en Scaling information extraction matrix, the matrix transform to the default sequential application S-> R-> T is
*/
static getScaling<Out extends IMat4Like, VecLike extends IVec3Like> (out: VecLike, mat: Out): VecLike;
/**
!#zh 提取矩阵的旋转信息, 默认输入矩阵不含有缩放信息,如考虑缩放应使用 `toRTS` 函数。
!#en Rotation information extraction matrix, the matrix containing no default input scaling information, such as the use of `toRTS` should consider the scaling function.
*/
static getRotation<Out extends IMat4Like> (out: Quat, mat: Out): Quat;
/**
!#zh 提取旋转、位移、缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用
!#en Extracting rotational displacement, zoom information, the default matrix transformation in order S-> R-> T applications
*/
static toRTS<Out extends IMat4Like, VecLike extends IVec3Like> (mat: Out, q: Quat, v: VecLike, s: VecLike): void;
/**
!#zh 根据旋转、位移、缩放信息计算矩阵,以 S->R->T 的顺序应用
!#en The rotary displacement, the scaling matrix calculation information, the order S-> R-> T applications
*/
static fromRTS<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, q: Quat, v: VecLike, s: VecLike): Out;
/**
!#zh 根据指定的旋转、位移、缩放及变换中心信息计算矩阵,以 S->R->T 的顺序应用
!#en According to the specified rotation, displacement, and scale conversion matrix calculation information center, order S-> R-> T applications
@param q 旋转值
@param v 位移值
@param s 缩放值
@param o 指定变换中心
*/
static fromRTSOrigin<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, q: Quat, v: VecLike, s: VecLike, o: VecLike): Out;
/**
!#zh 根据指定的旋转信息计算矩阵
!#en The rotation matrix calculation information specified
*/
static fromQuat<Out extends IMat4Like> (out: Out, q: Quat): Out;
/**
!#zh 根据指定的视锥体信息计算矩阵
!#en The matrix calculation information specified frustum
@param left 左平面距离
@param right 右平面距离
@param bottom 下平面距离
@param top 上平面距离
@param near 近平面距离
@param far 远平面距离
*/
static frustum<Out extends IMat4Like> (out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out;
/**
!#zh 计算透视投影矩阵
!#en Perspective projection matrix calculation
@param fovy 纵向视角高度
@param aspect 长宽比
@param near 近平面距离
@param far 远平面距离
*/
static perspective<Out extends IMat4Like> (out: Out, fovy: number, aspect: number, near: number, far: number): Out;
/**
!#zh 计算正交投影矩阵
!#en Computing orthogonal projection matrix
@param left 左平面距离
@param right 右平面距离
@param bottom 下平面距离
@param top 上平面距离
@param near 近平面距离
@param far 远平面距离
*/
static ortho<Out extends IMat4Like> (out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out;
/**
!#zh 根据视点计算矩阵,注意 `eye - center` 不能为零向量或与 `up` 向量平行
!#en `Up` parallel vector or vector center` not be zero - the matrix calculation according to the viewpoint, note` eye
@param eye 当前位置
@param center 目标视点
@param up 视口上方向
*/
static lookAt<Out extends IMat4Like, VecLike extends IVec3Like> (out: Out, eye: VecLike, center: VecLike, up: VecLike): Out;
/**
!#zh 计算逆转置矩阵
!#en Reversal matrix calculation
*/
static inverseTranspose<Out extends IMat4Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素矩阵加法
!#en Element by element matrix addition
*/
static add<Out extends IMat4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素矩阵减法
!#en Matrix element by element subtraction
*/
static subtract<Out extends IMat4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 矩阵标量乘法
!#en Matrix scalar multiplication
*/
static multiplyScalar<Out extends IMat4Like> (out: Out, a: Out, b: number): Out;
/**
!#zh 逐元素矩阵标量乘加: A + B * scale
!#en Elements of the matrix by the scalar multiplication and addition: A + B * scale
*/
static multiplyScalarAndAdd<Out extends IMat4Like> (out: Out, a: Out, b: Out, scale: number): Out;
/**
!#zh 矩阵等价判断
!#en Analyzing the equivalent matrix
*/
static strictEquals<Out extends IMat4Like> (a: Out, b: Out): boolean;
/**
!#zh 排除浮点数误差的矩阵近似等价判断
!#en Negative floating point error is approximately equivalent to determining a matrix
*/
static equals<Out extends IMat4Like> (a: Out, b: Out, epsilon?: number): boolean;
/**
!#zh 矩阵转数组
!#en Matrix transpose array
@param ofs 数组内的起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, mat: IMat4Like, ofs?: number): Out;
/**
!#zh 数组转矩阵
!#en Transfer matrix array
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IMat4Like> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
/** !#en Matrix Data
!#zh 矩阵数据 */
m: Float64Array|Float32Array;
/**
!#en
Constructor
see {{#crossLink "cc/mat4:method"}}cc.mat4{{/crossLink}}
!#zh
构造函数,可查看 {{#crossLink "cc/mat4:method"}}cc.mat4{{/crossLink}}
*/
constructor ( m00?: number, m01?: number, m02?: number, m03?: number, m10?: number, m11?: number, m12?: number, m13?: number, m20?: number, m21?: number, m22?: number, m23?: number, m30?: number, m31?: number, m32?: number, m33?: number);
/**
!#en clone a Mat4 object
!#zh 克隆一个 Mat4 对象
*/
clone(): Mat4;
/**
!#en Sets the matrix with another one's value
!#zh 用另一个矩阵设置这个矩阵的值。
@param srcObj srcObj
*/
set(srcObj: Mat4): Mat4;
/**
!#en Check whether two matrix equal
!#zh 当前的矩阵是否与指定的矩阵相等。
@param other other
*/
equals(other: Mat4): boolean;
/**
!#en Check whether two matrix equal with default degree of variance.
!#zh
近似判断两个矩阵是否相等。<br/>
判断 2 个矩阵是否在默认误差范围之内,如果在则返回 true,反之则返回 false。
@param other other
*/
fuzzyEquals(other: Mat4): boolean;
/**
!#en Transform to string with matrix informations
!#zh 转换为方便阅读的字符串。
*/
toString(): string;
/**
Set the matrix to the identity matrix
*/
identity(): Mat4;
/**
Transpose the values of a mat4
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created.
*/
transpose(out?: Mat4): Mat4;
/**
Inverts a mat4
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created.
*/
invert(out?: Mat4): Mat4;
/**
Calculates the adjugate of a mat4
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created.
*/
adjoint(out?: Mat4): Mat4;
/**
Calculates the determinant of a mat4
*/
determinant(): number;
/**
Adds two Mat4
@param other the second operand
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created.
*/
add(other: Mat4, out?: Mat4): Mat4;
/**
Subtracts the current matrix with another one
@param other the second operand
*/
subtract(other: Mat4): Mat4;
/**
Subtracts the current matrix with another one
@param other the second operand
*/
multiply(other: Mat4): Mat4;
/**
Multiply each element of the matrix by a scalar.
@param number amount to scale the matrix's elements by
*/
multiplyScalar(number: number): Mat4;
/**
Translate a mat4 by the given vector
@param v vector to translate by
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
translate(v: Vec3, out?: Mat4): Mat4;
/**
Scales the mat4 by the dimensions in the given vec3
@param v vector to scale by
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
scale(v: Vec3, out?: Mat4): Mat4;
/**
Rotates a mat4 by the given angle around the given axis
@param rad the angle to rotate the matrix by
@param axis the axis to rotate around
@param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created
*/
rotate(rad: number, axis: Vec3, out?: Mat4): Mat4;
/**
Returns the translation vector component of a transformation matrix.
@param out Vector to receive translation component, if not provided, a new vec3 will be created
*/
getTranslation(out: Vec3): Vec3;
/**
Returns the scale factor component of a transformation matrix
@param out Vector to receive scale component, if not provided, a new vec3 will be created
*/
getScale(out: Vec3): Vec3;
/**
Returns the rotation factor component of a transformation matrix
@param out Vector to receive rotation component, if not provided, a new quaternion object will be created
*/
getRotation(out: Quat): Quat;
/**
Restore the matrix values from a quaternion rotation, vector translation and vector scale
@param q Rotation quaternion
@param v Translation vector
@param s Scaling vector
*/
fromRTS(q: Quat, v: Vec3, s: Vec3): Mat4;
/**
Restore the matrix values from a quaternion rotation
@param q Rotation quaternion
*/
fromQuat(q: Quat): Mat4;
}
/** !#en Representation of 2D vectors and points.
!#zh 表示 2D 向量和坐标 */
export class Quat extends ValueType {
/**
!#en
Constructor
see {{#crossLink "cc/quat:method"}}cc.quat{{/crossLink}}
!#zh
构造函数,可查看 {{#crossLink "cc/quat:method"}}cc.quat{{/crossLink}}
@param x x
@param y y
@param z z
@param w w
*/
constructor(x?: number, y?: number, z?: number, w?: number);
/**
!#en Calculate the multiply result between this quaternion and another one
!#zh 计算四元数乘积的结果
@param other other
@param out out
*/
mul(other: Quat, out?: Quat): Quat;
/**
!#zh 获得指定四元数的拷贝
!#en Obtaining copy specified quaternion
*/
static clone<Out extends IQuatLike> (a: Out): Quat;
/**
!#zh 复制目标四元数
!#en Copy quaternion target
*/
static copy<Out extends IQuatLike, QuatLike extends IQuatLike> (out: Out, a: QuatLike): Out;
/**
!#zh 设置四元数值
!#en Provided Quaternion Value
*/
static set<Out extends IQuatLike> (out: Out, x: number, y: number, z: number, w: number): Out;
/**
!#zh 将目标赋值为单位四元数
!#en The target of an assignment as a unit quaternion
*/
static identity<Out extends IQuatLike> (out: Out): Out;
/**
!#zh 设置四元数为两向量间的最短路径旋转,默认两向量都已归一化
!#en Set quaternion rotation is the shortest path between two vectors, the default two vectors are normalized
*/
static rotationTo<Out extends IQuatLike, VecLike extends IVec3Like> (out: Out, a: VecLike, b: VecLike): Out;
/**
!#zh 获取四元数的旋转轴和旋转弧度
!#en Get the rotary shaft and the arc of rotation quaternion
@param outAxis 旋转轴输出
@param q 源四元数
*/
static getAxisAngle<Out extends IQuatLike, VecLike extends IVec3Like> (outAxis: VecLike, q: Out): number;
/**
!#zh 四元数乘法
!#en Quaternion multiplication
*/
static multiply<Out extends IQuatLike, QuatLike_1 extends IQuatLike, QuatLike_2 extends IQuatLike> (out: Out, a: QuatLike_1, b: QuatLike_2): Out;
/**
!#zh 四元数标量乘法
!#en Quaternion scalar multiplication
*/
static multiplyScalar<Out extends IQuatLike> (out: Out, a: Out, b: number): Out;
/**
!#zh 四元数乘加:A + B * scale
!#en Quaternion multiplication and addition: A + B * scale
*/
static scaleAndAdd<Out extends IQuatLike> (out: Out, a: Out, b: Out, scale: number): Out;
/**
!#zh 绕 X 轴旋转指定四元数
!#en About the X axis specified quaternion
@param rad 旋转弧度
*/
static rotateX<Out extends IQuatLike> (out: Out, a: Out, rad: number): Out;
/**
!#zh 绕 Y 轴旋转指定四元数
!#en Rotation about the Y axis designated quaternion
@param rad 旋转弧度
*/
static rotateY<Out extends IQuatLike> (out: Out, a: Out, rad: number): Out;
/**
!#zh 绕 Z 轴旋转指定四元数
!#en Around the Z axis specified quaternion
@param rad 旋转弧度
*/
static rotateZ<Out extends IQuatLike> (out: Out, a: Out, rad: number): Out;
/**
!#zh 绕世界空间下指定轴旋转四元数
!#en Space around the world at a given axis of rotation quaternion
@param axis 旋转轴,默认已归一化
@param rad 旋转弧度
*/
static rotateAround<Out extends IQuatLike, VecLike extends IVec3Like> (out: Out, rot: Out, axis: VecLike, rad: number): Out;
/**
!#zh 绕本地空间下指定轴旋转四元数
!#en Local space around the specified axis rotation quaternion
@param axis 旋转轴
@param rad 旋转弧度
*/
static rotateAroundLocal<Out extends IQuatLike, VecLike extends IVec3Like> (out: Out, rot: Out, axis: VecLike, rad: number): Out;
/**
!#zh 根据 xyz 分量计算 w 分量,默认已归一化
!#en The component w xyz components calculated, normalized by default
*/
static calculateW<Out extends IQuatLike> (out: Out, a: Out): Out;
/**
!#zh 四元数点积(数量积)
!#en Quaternion dot product (scalar product)
*/
static dot<Out extends IQuatLike> (a: Out, b: Out): number;
/**
!#zh 逐元素线性插值: A + t * (B - A)
!#en Element by element linear interpolation: A + t * (B - A)
*/
static lerp<Out extends IQuatLike> (out: Out, a: Out, b: Out, t: number): Out;
/**
!#zh 带两个控制点的四元数球面插值
!#en Quaternion with two spherical interpolation control points
*/
static sqlerp<Out extends IQuatLike> (out: Out, a: Out, b: Out, c: Out, d: Out, t: number): Out;
/**
!#zh 四元数求逆
!#en Quaternion inverse
*/
static invert<Out extends IQuatLike, QuatLike extends IQuatLike> (out: Out, a: QuatLike): Out;
/**
!#zh 求共轭四元数,对单位四元数与求逆等价,但更高效
!#en Conjugating a quaternion, and the unit quaternion equivalent to inversion, but more efficient
*/
static conjugate<Out extends IQuatLike> (out: Out, a: Out): Out;
/**
!#zh 求四元数长度
!#en Seek length quaternion
*/
static len<Out extends IQuatLike> (a: Out): number;
/**
!#zh 求四元数长度平方
!#en Seeking quaternion square of the length
*/
static lengthSqr<Out extends IQuatLike> (a: Out): number;
/**
!#zh 归一化四元数
!#en Normalized quaternions
*/
static normalize<Out extends IQuatLike> (out: Out, a: Out): Out;
/**
!#zh 根据本地坐标轴朝向计算四元数,默认三向量都已归一化且相互垂直
!#en Calculated according to the local orientation quaternion coordinate axis, the default three vectors are normalized and mutually perpendicular
*/
static fromAxes<Out extends IQuatLike, VecLike extends IVec3Like> (out: Out, xAxis: VecLike, yAxis: VecLike, zAxis: VecLike): Out;
/**
!#zh 根据视口的前方向和上方向计算四元数
!#en The forward direction and the direction of the viewport computing quaternion
@param view 视口面向的前方向,必须归一化
@param up 视口的上方向,必须归一化,默认为 (0, 1, 0)
*/
static fromViewUp<Out extends IQuatLike> (out: Out, view: Vec3, up?: Vec3): Out;
/**
!#zh 根据旋转轴和旋转弧度计算四元数
!#en The quaternion calculated and the arc of rotation of the rotary shaft
*/
static fromAxisAngle<Out extends IQuatLike, VecLike extends IVec3Like> (out: Out, axis: VecLike, rad: number): Out;
/**
!#zh 根据三维矩阵信息计算四元数,默认输入矩阵不含有缩放信息
!#en Calculating the three-dimensional quaternion matrix information, default zoom information input matrix does not contain
*/
static fromMat3<Out extends IQuatLike> (out: Out, mat: Mat3): Out;
/**
!#zh 根据欧拉角信息计算四元数,旋转顺序为 YZX
!#en The quaternion calculated Euler angle information, rotation order YZX
*/
static fromEuler<Out extends IQuatLike> (out: Out, x: number, y: number, z: number): Out;
/**
!#zh 返回定义此四元数的坐标系 X 轴向量
!#en This returns the result of the quaternion coordinate system X-axis vector
*/
static toAxisX<Out extends IQuatLike, VecLike extends IVec3Like> (out: VecLike, q: Out): VecLike;
/**
!#zh 返回定义此四元数的坐标系 Y 轴向量
!#en This returns the result of the quaternion coordinate system Y axis vector
*/
static toAxisY<Out extends IQuatLike, VecLike extends IVec3Like> (out: VecLike, q: Out): VecLike;
/**
!#zh 返回定义此四元数的坐标系 Z 轴向量
!#en This returns the result of the quaternion coordinate system the Z-axis vector
*/
static toAxisZ<Out extends IQuatLike, VecLike extends IVec3Like> (out: VecLike, q: Out): VecLike;
/**
!#zh 根据四元数计算欧拉角,返回角度 x, y 在 [-180, 180] 区间内, z 默认在 [-90, 90] 区间内,旋转顺序为 YZX
!#en The quaternion calculated Euler angles, return angle x, y in the [-180, 180] interval, z default the range [-90, 90] interval, the rotation order YZX
@param outerZ z 取值范围区间改为 [-180, -90] U [90, 180]
*/
static toEuler<Out extends IVec3Like> (out: Out, q: IQuatLike, outerZ?: boolean): Out;
/**
!#zh 四元数等价判断
!#en Analyzing quaternion equivalent
*/
static strictEquals<Out extends IQuatLike> (a: Out, b: Out): boolean;
/**
!#zh 排除浮点数误差的四元数近似等价判断
!#en Negative floating point error quaternion approximately equivalent Analyzing
*/
static equals<Out extends IQuatLike> (a: Out, b: Out, epsilon?: number): boolean;
/**
!#zh 四元数转数组
!#en Quaternion rotation array
@param ofs 数组内的起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, q: IQuatLike, ofs?: number): Out;
/**
!#zh 数组转四元数
!#en Array to a quaternion
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IQuatLike> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
x: number;
y: number;
z: number;
w: number;
/**
!#en clone a Quat object and return the new object
!#zh 克隆一个四元数并返回
*/
clone(): Quat;
/**
!#en Set values with another quaternion
!#zh 用另一个四元数的值设置到当前对象上。
@param newValue !#en new value to set. !#zh 要设置的新值
*/
set(newValue: Quat): Quat;
/**
!#en Check whether current quaternion equals another
!#zh 当前的四元数是否与指定的四元数相等。
@param other other
*/
equals(other: Quat): boolean;
/**
!#en Convert quaternion to euler
!#zh 转换四元数到欧拉角
@param out out
*/
toEuler(out: Vec3): Vec3;
/**
!#en Convert euler to quaternion
!#zh 转换欧拉角到四元数
@param euler euler
*/
fromEuler(euler: Vec3): Quat;
/**
!#en Calculate the interpolation result between this quaternion and another one with given ratio
!#zh 计算四元数的插值结果
@param to to
@param ratio ratio
@param out out
*/
lerp(to: Quat, ratio: number, out?: Quat): Quat;
/**
!#en Calculate the multiply result between this quaternion and another one
!#zh 计算四元数乘积的结果
@param other other
*/
multiply(other: Quat): Quat;
/**
!#en Rotates a quaternion by the given angle (in radians) about a world space axis.
!#zh 围绕世界空间轴按给定弧度旋转四元数
@param rot Quaternion to rotate
@param axis The axis around which to rotate in world space
@param rad Angle (in radians) to rotate
@param out Quaternion to store result
*/
rotateAround(rot: Quat, axis: Vec3, rad: number, out?: Quat): Quat;
}
/** !#en A 2D rectangle defined by x, y position and width, height.
!#zh 通过位置和宽高定义的 2D 矩形。 */
export class Rect extends ValueType {
/**
!#en
Constructor of Rect class.
see {{#crossLink "cc/rect:method"}} cc.rect {{/crossLink}} for convenience method.
!#zh
Rect类的构造函数。可以通过 {{#crossLink "cc/rect:method"}} cc.rect {{/crossLink}} 简便方法进行创建。
@param x x
@param y y
@param w w
@param h h
*/
constructor(x?: number, y?: number, w?: number, h?: number);
/**
!#en Creates a rectangle from two coordinate values.
!#zh 根据指定 2 个坐标创建出一个矩形区域。
@param v1 v1
@param v2 v2
@example
```js
cc.Rect.fromMinMax(cc.v2(10, 10), cc.v2(20, 20)); // Rect {x: 10, y: 10, width: 10, height: 10};
```
*/
static fromMinMax(v1: Vec2, v2: Vec2): Rect;
x: number;
y: number;
width: number;
height: number;
/**
!#en TODO
!#zh 克隆一个新的 Rect。
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
a.clone();// Rect {x: 0, y: 0, width: 10, height: 10}
```
*/
clone(): Rect;
/**
!#en TODO
!#zh 是否等于指定的矩形。
@param other other
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
var b = new cc.Rect(0, 0, 10, 10);
a.equals(b);// true;
```
*/
equals(other: Rect): boolean;
/**
!#en TODO
!#zh 线性插值
@param to to
@param ratio the interpolation coefficient.
@param out optional, the receiving vector.
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
var b = new cc.Rect(50, 50, 100, 100);
update (dt) {
// method 1;
var c = a.lerp(b, dt * 0.1);
// method 2;
a.lerp(b, dt * 0.1, c);
}
```
*/
lerp(to: Rect, ratio: number, out?: Rect): Rect;
/**
!#en Check whether the current rectangle intersects with the given one
!#zh 当前矩形与指定矩形是否相交。
@param rect rect
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
var b = new cc.Rect(0, 0, 20, 20);
a.intersects(b);// true
```
*/
intersects(rect: Rect): boolean;
/**
!#en Returns the overlapping portion of 2 rectangles.
!#zh 返回 2 个矩形重叠的部分。
@param out Stores the result
@param rectB rectB
@example
```js
var a = new cc.Rect(0, 10, 20, 20);
var b = new cc.Rect(0, 10, 10, 10);
var intersection = new cc.Rect();
a.intersection(intersection, b); // intersection {x: 0, y: 10, width: 10, height: 10};
```
*/
intersection(out: Rect, rectB: Rect): Rect;
/**
!#en Check whether the current rect contains the given point
!#zh 当前矩形是否包含指定坐标点。
Returns true if the point inside this rectangle.
@param point point
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
var b = new cc.Vec2(0, 5);
a.contains(b);// true
```
*/
contains(point: Vec2): boolean;
/**
!#en Returns true if the other rect totally inside this rectangle.
!#zh 当前矩形是否包含指定矩形。
@param rect rect
@example
```js
var a = new cc.Rect(0, 0, 20, 20);
var b = new cc.Rect(0, 0, 10, 10);
a.containsRect(b);// true
```
*/
containsRect(rect: Rect): boolean;
/**
!#en Returns the smallest rectangle that contains the current rect and the given rect.
!#zh 返回一个包含当前矩形和指定矩形的最小矩形。
@param out Stores the result
@param rectB rectB
@example
```js
var a = new cc.Rect(0, 10, 20, 20);
var b = new cc.Rect(0, 10, 10, 10);
var union = new cc.Rect();
a.union(union, b); // union {x: 0, y: 10, width: 20, height: 20};
```
*/
union(out: Rect, rectB: Rect): Rect;
/**
!#en Apply matrix4 to the rect.
!#zh 使用 mat4 对矩形进行矩阵转换。
@param out The output rect
@param mat The matrix4
*/
transformMat4(out: Rect, mat: Mat4): void;
/**
!#en Output rect informations to string
!#zh 转换为方便阅读的字符串
@example
```js
var a = new cc.Rect(0, 0, 10, 10);
a.toString();// "(0.00, 0.00, 10.00, 10.00)";
```
*/
toString(): string;
/** !#en The minimum x value, equals to rect.x
!#zh 矩形 x 轴上的最小值,等价于 rect.x。 */
xMin: number;
/** !#en The minimum y value, equals to rect.y
!#zh 矩形 y 轴上的最小值。 */
yMin: number;
/** !#en The maximum x value.
!#zh 矩形 x 轴上的最大值。 */
xMax: number;
/** !#en The maximum y value.
!#zh 矩形 y 轴上的最大值。 */
yMax: number;
/** !#en The position of the center of the rectangle.
!#zh 矩形的中心点。 */
center: Vec2;
/** !#en The X and Y position of the rectangle.
!#zh 矩形的 x 和 y 坐标。 */
origin: Vec2;
/** !#en Width and height of the rectangle.
!#zh 矩形的大小。 */
size: Size;
}
/** !#en
cc.Size is the class for size object,<br/>
please do not use its constructor to create sizes,<br/>
use {{#crossLink "cc/size:method"}}{{/crossLink}} alias function instead.<br/>
It will be deprecated soon, please use cc.Vec2 instead.
!#zh
cc.Size 是 size 对象的类。<br/>
请不要使用它的构造函数创建的 size,<br/>
使用 {{#crossLink "cc/size:method"}}{{/crossLink}} 别名函数。<br/>
它不久将被取消,请使用cc.Vec2代替。 */
export class Size {
/**
@param width width
@param height height
*/
constructor(width: number|Size, height?: number);
/** !#en return a Size object with width = 0 and height = 0.
!#zh 返回一个宽度为 0 和高度为 0 的 Size 对象。 */
static ZERO: Size;
width: number;
height: number;
/**
!#en TODO
!#zh 克隆 size 对象。
@example
```js
var a = new cc.size(10, 10);
a.clone();// return Size {width: 0, height: 0};
```
*/
clone(): Size;
/**
!#en TODO
!#zh 当前 Size 对象是否等于指定 Size 对象。
@param other other
@example
```js
var a = new cc.size(10, 10);
a.equals(new cc.size(10, 10));// return true;
```
*/
equals(other: Size): boolean;
/**
!#en TODO
!#zh 线性插值。
@param to to
@param ratio the interpolation coefficient.
@param out optional, the receiving vector.
@example
```js
var a = new cc.size(10, 10);
var b = new cc.rect(50, 50, 100, 100);
update (dt) {
// method 1;
var c = a.lerp(b, dt * 0.1);
// method 2;
a.lerp(b, dt * 0.1, c);
}
```
*/
lerp(to: Rect, ratio: number, out?: Size): Size;
/**
!#en TODO
!#zh 转换为方便阅读的字符串。
@example
```js
var a = new cc.size(10, 10);
a.toString();// return "(10.00, 10.00)";
```
*/
toString(): string;
}
/** !#en The base class of all value types.
!#zh 所有值类型的基类。 */
export class ValueType {
/**
!#en This method returns an exact copy of current value.
!#zh 克隆当前值,该方法返回一个新对象,新对象的值和原对象相等。
*/
clone(): ValueType;
/**
!#en Compares this object with the other one.
!#zh 当前对象是否等于指定对象。
@param other other
*/
equals(other: ValueType): boolean;
/**
!#en
Linearly interpolates between this value to to value by ratio which is in the range [0, 1].
When ratio = 0 returns this. When ratio = 1 return to. When ratio = 0.5 returns the average of this and to.
!#zh
线性插值。<br/>
当 ratio = 0 时返回自身,ratio = 1 时返回目标,ratio = 0.5 返回自身和目标的平均值。。
@param to the to value
@param ratio the interpolation coefficient
*/
lerp(to: ValueType, ratio: number): ValueType;
/**
!#en
Copys all the properties from another given object to this value.
!#zh
从其它对象把所有属性复制到当前对象。
@param source the source to copy
*/
set(source: ValueType): void;
/**
!#en Convert to a readable string.
!#zh 转换为方便阅读的字符串。
*/
toString(): string;
}
/** !#en Representation of 2D vectors and points.
!#zh 表示 2D 向量和坐标 */
export class Vec2 extends ValueType {
/**
!#en Returns the length of this vector.
!#zh 返回该向量的长度。
@example
```js
var v = cc.v2(10, 10);
v.mag(); // return 14.142135623730951;
```
*/
mag(): number;
/**
!#en Returns the squared length of this vector.
!#zh 返回该向量的长度平方。
@example
```js
var v = cc.v2(10, 10);
v.magSqr(); // return 200;
```
*/
magSqr(): number;
/**
!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.
!#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.subSelf(cc.v2(5, 5));// return Vec2 {x: 5, y: 5};
```
*/
subSelf(vector: Vec2): Vec2;
/**
!#en Subtracts one vector from this, and returns the new result.
!#zh 向量减法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
@example
```js
var v = cc.v2(10, 10);
v.sub(cc.v2(5, 5)); // return Vec2 {x: 5, y: 5};
var v1;
v.sub(cc.v2(5, 5), v1); // return Vec2 {x: 5, y: 5};
```
*/
sub(vector: Vec2, out?: Vec2): Vec2;
/**
!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.
!#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。
@param num num
@example
```js
var v = cc.v2(10, 10);
v.mulSelf(5);// return Vec2 {x: 50, y: 50};
```
*/
mulSelf(num: number): Vec2;
/**
!#en Multiplies by a number, and returns the new result.
!#zh 缩放向量,并返回新结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
@example
```js
var v = cc.v2(10, 10);
v.mul(5); // return Vec2 {x: 50, y: 50};
var v1;
v.mul(5, v1); // return Vec2 {x: 50, y: 50};
```
*/
mul(num: number, out?: Vec2): Vec2;
/**
!#en Divides by a number. If you want to save result to another vector, use div() instead.
!#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。
@param num num
@example
```js
var v = cc.v2(10, 10);
v.divSelf(5); // return Vec2 {x: 2, y: 2};
```
*/
divSelf(num: number): Vec2;
/**
!#en Divides by a number, and returns the new result.
!#zh 向量除法,并返回新的结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
@example
```js
var v = cc.v2(10, 10);
v.div(5); // return Vec2 {x: 2, y: 2};
var v1;
v.div(5, v1); // return Vec2 {x: 2, y: 2};
```
*/
div(num: number, out?: Vec2): Vec2;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.scaleSelf(cc.v2(5, 5));// return Vec2 {x: 50, y: 50};
```
*/
scaleSelf(vector: Vec2): Vec2;
/**
!#en Multiplies two vectors, and returns the new result.
!#zh 分量相乘,并返回新的结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
@example
```js
var v = cc.v2(10, 10);
v.scale(cc.v2(5, 5)); // return Vec2 {x: 50, y: 50};
var v1;
v.scale(cc.v2(5, 5), v1); // return Vec2 {x: 50, y: 50};
```
*/
scale(vector: Vec2, out?: Vec2): Vec2;
/**
!#en Negates the components. If you want to save result to another vector, use neg() instead.
!#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。
@example
```js
var v = cc.v2(10, 10);
v.negSelf(); // return Vec2 {x: -10, y: -10};
```
*/
negSelf(): Vec2;
/**
!#en Negates the components, and returns the new result.
!#zh 返回取反后的新向量。
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
@example
```js
var v = cc.v2(10, 10);
var v1;
v.neg(v1); // return Vec2 {x: -10, y: -10};
```
*/
neg(out?: Vec2): Vec2;
/** !#en return a Vec2 object with x = 1 and y = 1.
!#zh 新 Vec2 对象。 */
static ONE: Vec2;
/** !#en return a Vec2 object with x = 0 and y = 0.
!#zh 返回 x = 0 和 y = 0 的 Vec2 对象。 */
static ZERO: Vec2;
/** !#en return a readonly Vec2 object with x = 0 and y = 0.
!#zh 返回一个 x = 0 和 y = 0 的 Vec2 只读对象。 */
static ZERO_R: Vec2;
/** !#en return a Vec2 object with x = 0 and y = 1.
!#zh 返回 x = 0 和 y = 1 的 Vec2 对象。 */
static UP: Vec2;
/** !#en return a readonly Vec2 object with x = 0 and y = 1.
!#zh 返回 x = 0 和 y = 1 的 Vec2 只读对象。 */
static UP_R: Vec2;
/** !#en return a readonly Vec2 object with x = 1 and y = 0.
!#zh 返回 x = 1 和 y = 0 的 Vec2 只读对象。 */
static RIGHT: Vec2;
/** !#en return a Vec2 object with x = 1 and y = 0.
!#zh 返回 x = 1 和 y = 0 的 Vec2 对象。 */
static RIGHT_R: Vec2;
/**
!#zh 获得指定向量的拷贝
*/
static clone <Out extends IVec2Like> (a: Out): Vec2;
/**
!#zh 复制指定向量的值
*/
static copy <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 设置向量值
*/
static set <Out extends IVec2Like> (out: Out, x: number, y: number): Out;
/**
!#zh 逐元素向量加法
*/
static add <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量减法
*/
static subtract <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量乘法
*/
static multiply <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量除法
*/
static divide <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量向上取整
*/
static ceil <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量向下取整
*/
static floor <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量最小值
*/
static min <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量最大值
*/
static max <Out extends IVec2Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量四舍五入取整
*/
static round <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 向量标量乘法
*/
static multiplyScalar <Out extends IVec2Like> (out: Out, a: Out, b: number): Out;
/**
!#zh 逐元素向量乘加: A + B * scale
*/
static scaleAndAdd <Out extends IVec2Like> (out: Out, a: Out, b: Out, scale: number): Out;
/**
!#zh 求两向量的欧氏距离
*/
static distance <Out extends IVec2Like> (a: Out, b: Out): number;
/**
!#zh 求两向量的欧氏距离平方
*/
static squaredDistance <Out extends IVec2Like> (a: Out, b: Out): number;
/**
!#zh 求向量长度
*/
static len <Out extends IVec2Like> (a: Out): number;
/**
!#zh 求向量长度平方
*/
static lengthSqr <Out extends IVec2Like> (a: Out): number;
/**
!#zh 逐元素向量取负
*/
static negate <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 Infinity
*/
static inverse <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 0
*/
static inverseSafe <Out extends IVec2Like> (out: Out, a: Out): Out;
/**
!#zh 归一化向量
*/
static normalize <Out extends IVec2Like, Vec2Like extends IVec2Like> (out: Out, a: Vec2Like): Out;
/**
!#zh 向量点积(数量积)
*/
static dot <Out extends IVec2Like> (a: Out, b: Out): number;
/**
!#zh 向量叉积(向量积),注意二维向量的叉积为与 Z 轴平行的三维向量
*/
static cross <Out extends IVec2Like> (out: Vec2, a: Out, b: Out): Vec2;
/**
!#zh 逐元素向量线性插值: A + t * (B - A)
*/
static lerp <Out extends IVec2Like> (out: Out, a: Out, b: Out, t: number): Out;
/**
!#zh 生成一个在单位圆上均匀分布的随机向量
*/
static random <Out extends IVec2Like> (out: Out, scale?: number): Out;
/**
!#zh 向量与三维矩阵乘法,默认向量第三位为 1。
*/
static transformMat3 <Out extends IVec2Like, MatLike extends IMat3Like> (out: Out, a: Out, mat: IMat3Like): Out;
/**
!#zh 向量与四维矩阵乘法,默认向量第三位为 0,第四位为 1。
*/
static transformMat4 <Out extends IVec2Like, MatLike extends IMat4Like> (out: Out, a: Out, mat: MatLike): Out;
/**
!#zh 向量等价判断
*/
static strictEquals <Out extends IVec2Like> (a: Out, b: Out): boolean;
/**
!#zh 排除浮点数误差的向量近似等价判断
*/
static equals <Out extends IVec2Like> (a: Out, b: Out, epsilon?: number): boolean;
/**
!#zh 排除浮点数误差的向量近似等价判断
*/
static angle <Out extends IVec2Like> (a: Out, b: Out): number;
/**
!#zh 向量转数组
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, v: IVec2Like, ofs?: number): Out;
/**
!#zh 数组转向量
*/
static fromArray <Out extends IVec2Like> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
x: number;
y: number;
/**
!#en
Constructor
see {{#crossLink "cc/vec2:method"}}cc.v2{{/crossLink}} or {{#crossLink "cc/p:method"}}cc.p{{/crossLink}}
!#zh
构造函数,可查看 {{#crossLink "cc/vec2:method"}}cc.v2{{/crossLink}} 或者 {{#crossLink "cc/p:method"}}cc.p{{/crossLink}}
@param x x
@param y y
*/
constructor(x?: number, y?: number);
/**
!#en clone a Vec2 object
!#zh 克隆一个 Vec2 对象
*/
clone(): Vec2;
/**
!#en Sets vector with another's value
!#zh 设置向量值。
@param newValue !#en new value to set. !#zh 要设置的新值
*/
set(newValue: Vec2): Vec2;
/**
!#en Check whether two vector equal
!#zh 当前的向量是否与指定的向量相等。
@param other other
*/
equals(other: Vec2): boolean;
/**
!#en Check whether two vector equal with some degree of variance.
!#zh
近似判断两个点是否相等。<br/>
判断 2 个向量是否在指定数值的范围之内,如果在则返回 true,反之则返回 false。
@param other other
@param variance variance
*/
fuzzyEquals(other: Vec2, variance: number): boolean;
/**
!#en Transform to string with vector informations
!#zh 转换为方便阅读的字符串。
*/
toString(): string;
/**
!#en Calculate linear interpolation result between this vector and another one with given ratio
!#zh 线性插值。
@param to to
@param ratio the interpolation coefficient
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
*/
lerp(to: Vec2, ratio: number, out?: Vec2): Vec2;
/**
!#en Clamp the vector between from float and to float.
!#zh
返回指定限制区域后的向量。<br/>
向量大于 max_inclusive 则返回 max_inclusive。<br/>
向量小于 min_inclusive 则返回 min_inclusive。<br/>
否则返回自身。
@param min_inclusive min_inclusive
@param max_inclusive max_inclusive
@example
```js
var min_inclusive = cc.v2(0, 0);
var max_inclusive = cc.v2(20, 20);
var v1 = cc.v2(20, 20).clampf(min_inclusive, max_inclusive); // Vec2 {x: 20, y: 20};
var v2 = cc.v2(0, 0).clampf(min_inclusive, max_inclusive); // Vec2 {x: 0, y: 0};
var v3 = cc.v2(10, 10).clampf(min_inclusive, max_inclusive); // Vec2 {x: 10, y: 10};
```
*/
clampf(min_inclusive: Vec2, max_inclusive: Vec2): Vec2;
/**
!#en Adds this vector.
!#zh 向量加法。
@param vector vector
@param out out
@example
```js
var v = cc.v2(10, 10);
v.add(cc.v2(5, 5));// return Vec2 {x: 15, y: 15};
```
*/
add(vector: Vec2, out?: Vec2): Vec2;
/**
!#en Adds this vector. If you want to save result to another vector, use add() instead.
!#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。
@param vector vector
*/
addSelf(vector: Vec2): Vec2;
/**
!#en Subtracts one vector from this.
!#zh 向量减法。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.subSelf(cc.v2(5, 5));// return Vec2 {x: 5, y: 5};
```
*/
subtract(vector: Vec2): Vec2;
/**
!#en Multiplies this by a number.
!#zh 缩放当前向量。
@param num num
@example
```js
var v = cc.v2(10, 10);
v.multiply(5);// return Vec2 {x: 50, y: 50};
```
*/
multiplyScalar(num: number): Vec2;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.multiply(cc.v2(5, 5));// return Vec2 {x: 50, y: 50};
```
*/
multiply(vector: Vec2): Vec2;
/**
!#en Divides by a number.
!#zh 向量除法。
@param num num
@example
```js
var v = cc.v2(10, 10);
v.divide(5); // return Vec2 {x: 2, y: 2};
```
*/
divide(num: number): Vec2;
/**
!#en Negates the components.
!#zh 向量取反。
@example
```js
var v = cc.v2(10, 10);
v.negate(); // return Vec2 {x: -10, y: -10};
```
*/
negate(): Vec2;
/**
!#en Dot product
!#zh 当前向量与指定向量进行点乘。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.dot(cc.v2(5, 5)); // return 100;
```
*/
dot(vector?: Vec2): number;
/**
!#en Cross product
!#zh 当前向量与指定向量进行叉乘。
@param vector vector
@example
```js
var v = cc.v2(10, 10);
v.cross(cc.v2(5, 5)); // return 0;
```
*/
cross(vector?: Vec2): number;
/**
!#en Returns the length of this vector.
!#zh 返回该向量的长度。
@example
```js
var v = cc.v2(10, 10);
v.len(); // return 14.142135623730951;
```
*/
len(): number;
/**
!#en Returns the squared length of this vector.
!#zh 返回该向量的长度平方。
@example
```js
var v = cc.v2(10, 10);
v.lengthSqr(); // return 200;
```
*/
lengthSqr(): number;
/**
!#en Make the length of this vector to 1.
!#zh 向量归一化,让这个向量的长度为 1。
@example
```js
var v = cc.v2(10, 10);
v.normalizeSelf(); // return Vec2 {x: 0.7071067811865475, y: 0.7071067811865475};
```
*/
normalizeSelf(): Vec2;
/**
!#en
Returns this vector with a magnitude of 1.<br/>
<br/>
Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.
!#zh
返回归一化后的向量。<br/>
<br/>
注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
*/
normalize(out?: Vec2): Vec2;
/**
!#en Get angle in radian between this and vector.
!#zh 夹角的弧度。
@param vector vector
*/
angle(vector: Vec2): number;
/**
!#en Get angle in radian between this and vector with direction.
!#zh 带方向的夹角的弧度。
@param vector vector
*/
signAngle(vector: Vec2): number;
/**
!#en rotate
!#zh 返回旋转给定弧度后的新向量。
@param radians radians
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
*/
rotate(radians: number, out?: Vec2): Vec2;
/**
!#en rotate self
!#zh 按指定弧度旋转向量。
@param radians radians
*/
rotateSelf(radians: number): Vec2;
/**
!#en Calculates the projection of the current vector over the given vector.
!#zh 返回当前向量在指定 vector 向量上的投影向量。
@param vector vector
@example
```js
var v1 = cc.v2(20, 20);
var v2 = cc.v2(5, 5);
v1.project(v2); // Vec2 {x: 20, y: 20};
```
*/
project(vector: Vec2): Vec2;
/**
Transforms the vec2 with a mat4. 3rd vector component is implicitly '0', 4th vector component is implicitly '1'
@param m matrix to transform with
@param out the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
*/
transformMat4(m: Mat4, out?: Vec2): Vec2;
/**
Returns the maximum value in x, y.
*/
maxAxis(): number;
}
/** !#en Representation of 3D vectors and points.
!#zh 表示 3D 向量和坐标 */
export class Vec3 extends ValueType {
/**
!#en Returns the length of this vector.
!#zh 返回该向量的长度。
@example
```js
var v = cc.v3(10, 10, 10);
v.mag(); // return 17.320508075688775;
```
*/
mag(): number;
/**
!#en Returns the squared length of this vector.
!#zh 返回该向量的长度平方。
*/
magSqr(): number;
/**
!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.
!#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。
@param vector vector
*/
subSelf(vector: Vec3): Vec3;
/**
!#en Subtracts one vector from this, and returns the new result.
!#zh 向量减法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
sub(vector: Vec3, out?: Vec3): Vec3;
/**
!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.
!#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。
@param num num
*/
mulSelf(num: number): Vec3;
/**
!#en Multiplies by a number, and returns the new result.
!#zh 缩放向量,并返回新结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
mul(num: number, out?: Vec3): Vec3;
/**
!#en Divides by a number. If you want to save result to another vector, use div() instead.
!#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。
@param num num
*/
divSelf(num: number): Vec3;
/**
!#en Divides by a number, and returns the new result.
!#zh 向量除法,并返回新的结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
div(num: number, out?: Vec3): Vec3;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
*/
scaleSelf(vector: Vec3): Vec3;
/**
!#en Multiplies two vectors, and returns the new result.
!#zh 分量相乘,并返回新的结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
scale(vector: Vec3, out?: Vec3): Vec3;
/**
!#en Negates the components. If you want to save result to another vector, use neg() instead.
!#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。
*/
negSelf(): Vec3;
/**
!#en Negates the components, and returns the new result.
!#zh 返回取反后的新向量。
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
neg(out?: Vec3): Vec3;
/** !#en return a Vec3 object with x = 1, y = 1, z = 1.
!#zh 新 Vec3 对象。 */
static ONE: Vec3;
/** !#en return a Vec3 object with x = 0, y = 0, z = 0.
!#zh 返回 x = 0,y = 0,z = 0 的 Vec3 对象。 */
static ZERO: Vec3;
/** !#en return a Vec3 object with x = 0, y = 1, z = 0.
!#zh 返回 x = 0, y = 1, z = 0 的 Vec3 对象。 */
static UP: Vec3;
/** !#en return a Vec3 object with x = 1, y = 0, z = 0.
!#zh 返回 x = 1,y = 0,z = 0 的 Vec3 对象。 */
static RIGHT: Vec3;
/** !#en return a Vec3 object with x = 0, y = 0, z = 1.
!#zh 返回 x = 0,y = 0,z = 1 的 Vec3 对象。 */
static FORWARD: Vec3;
/**
!#zh 将目标赋值为零向量
!#en The target of an assignment zero vector
*/
static zero<Out extends IVec3Like> (out: Out): Out;
/**
!#zh 获得指定向量的拷贝
!#en Obtaining copy vectors designated
*/
static clone<Out extends IVec3Like> (a: Out): Vec3;
/**
!#zh 复制目标向量
!#en Copy the target vector
*/
static copy<Out extends IVec3Like, Vec3Like extends IVec3Like> (out: Out, a: Vec3Like): Out;
/**
!#zh 设置向量值
!#en Set to value
*/
static set<Out extends IVec3Like> (out: Out, x: number, y: number, z: number): Out;
/**
!#zh 逐元素向量加法
!#en Element-wise vector addition
*/
static add<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量减法
!#en Element-wise vector subtraction
*/
static subtract<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量乘法 (分量积)
!#en Element-wise vector multiplication (product component)
*/
static multiply<Out extends IVec3Like, Vec3Like_1 extends IVec3Like, Vec3Like_2 extends IVec3Like> (out: Out, a: Vec3Like_1, b: Vec3Like_2): Out;
/**
!#zh 逐元素向量除法
!#en Element-wise vector division
*/
static divide<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量向上取整
!#en Rounding up by elements of the vector
*/
static ceil<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量向下取整
!#en Element vector by rounding down
*/
static floor<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量最小值
!#en The minimum by-element vector
*/
static min<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量最大值
!#en The maximum value of the element-wise vector
*/
static max<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量四舍五入取整
!#en Element-wise vector of rounding to whole
*/
static round<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 向量标量乘法
!#en Vector scalar multiplication
*/
static multiplyScalar<Out extends IVec3Like, Vec3Like extends IVec3Like> (out: Out, a: Vec3Like, b: number): Out;
/**
!#zh 逐元素向量乘加: A + B * scale
!#en Element-wise vector multiply add: A + B * scale
*/
static scaleAndAdd<Out extends IVec3Like> (out: Out, a: Out, b: Out, scale: number): Out;
/**
!#zh 求两向量的欧氏距离
!#en Seeking two vectors Euclidean distance
*/
static distance<Out extends IVec3Like> (a: Out, b: Out): number;
/**
!#zh 求两向量的欧氏距离平方
!#en Euclidean distance squared seeking two vectors
*/
static squaredDistance<Out extends IVec3Like> (a: Out, b: Out): number;
/**
!#zh 求向量长度
!#en Seeking vector length
*/
static len<Out extends IVec3Like> (a: Out): number;
/**
!#zh 求向量长度平方
!#en Seeking squared vector length
*/
static lengthSqr<Out extends IVec3Like> (a: Out): number;
/**
!#zh 逐元素向量取负
!#en By taking the negative elements of the vector
*/
static negate<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 Infinity
!#en Element vector by taking the inverse, return near 0 Infinity
*/
static inverse<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 0
!#en Element vector by taking the inverse, return near 0 0
*/
static inverseSafe<Out extends IVec3Like> (out: Out, a: Out): Out;
/**
!#zh 归一化向量
!#en Normalized vector
*/
static normalize<Out extends IVec3Like, Vec3Like extends IVec3Like> (out: Out, a: Vec3Like): Out;
/**
!#zh 向量点积(数量积)
!#en Vector dot product (scalar product)
*/
static dot<Out extends IVec3Like> (a: Out, b: Out): number;
/**
!#zh 向量叉积(向量积)
!#en Vector cross product (vector product)
*/
static cross<Out extends IVec3Like, Vec3Like_1 extends IVec3Like, Vec3Like_2 extends IVec3Like> (out: Out, a: Vec3Like_1, b: Vec3Like_2): Out;
/**
!#zh 逐元素向量线性插值: A + t * (B - A)
!#en Vector element by element linear interpolation: A + t * (B - A)
*/
static lerp<Out extends IVec3Like> (out: Out, a: Out, b: Out, t: number): Out;
/**
!#zh 生成一个在单位球体上均匀分布的随机向量
!#en Generates a uniformly distributed random vectors on the unit sphere
@param scale 生成的向量长度
*/
static random<Out extends IVec3Like> (out: Out, scale?: number): Out;
/**
!#zh 向量与四维矩阵乘法,默认向量第四位为 1。
!#en Four-dimensional vector and matrix multiplication, the default vectors fourth one.
*/
static transformMat4<Out extends IVec3Like, Vec3Like extends IVec3Like, MatLike extends IMat4Like> (out: Out, a: Vec3Like, mat: MatLike): Out;
/**
!#zh 向量与四维矩阵乘法,默认向量第四位为 0。
!#en Four-dimensional vector and matrix multiplication, vector fourth default is 0.
*/
static transformMat4Normal<Out extends IVec3Like, MatLike extends IMat4Like> (out: Out, a: Out, mat: MatLike): Out;
/**
!#zh 向量与三维矩阵乘法
!#en Dimensional vector matrix multiplication
*/
static transformMat3<Out extends IVec3Like, MatLike extends IMat3Like> (out: Out, a: Out, mat: MatLike): Out;
/**
!#zh 向量仿射变换
!#en Affine transformation vector
*/
static transformAffine<Out extends IVec3Like, VecLike extends IVec3Like, MatLike extends IMat4Like>(out: Out, v: VecLike, mat: MatLike): Out;
/**
!#zh 向量四元数乘法
!#en Vector quaternion multiplication
*/
static transformQuat<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike> (out: Out, a: VecLike, q: QuatLike): Out;
/**
!#zh 以缩放 -> 旋转 -> 平移顺序变换向量
!#en To scale -> rotation -> transformation vector sequence translation
*/
static transformRTS<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike>(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out;
/**
!#zh 以平移 -> 旋转 -> 缩放顺序逆变换向量
!#en Translational -> rotation -> Zoom inverse transformation vector sequence
*/
static transformInverseRTS<Out extends IVec3Like, VecLike extends IVec3Like, QuatLike extends IQuatLike>(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out;
/**
!#zh 绕 X 轴旋转向量指定弧度
!#en Rotation vector specified angle about the X axis
@param v 待旋转向量
@param o 旋转中心
@param a 旋转弧度
*/
static rotateX<Out extends IVec3Like> (out: Out, v: Out, o: Out, a: number): Out;
/**
!#zh 绕 Y 轴旋转向量指定弧度
!#en Rotation vector specified angle around the Y axis
@param v 待旋转向量
@param o 旋转中心
@param a 旋转弧度
*/
static rotateY<Out extends IVec3Like> (out: Out, v: Out, o: Out, a: number): Out;
/**
!#zh 绕 Z 轴旋转向量指定弧度
!#en Around the Z axis specified angle vector
@param v 待旋转向量
@param o 旋转中心
@param a 旋转弧度
*/
static rotateZ<Out extends IVec3Like> (out: Out, v: Out, o: Out, a: number): Out;
/**
!#zh 向量等价判断
!#en Equivalent vectors Analyzing
*/
static strictEquals<Out extends IVec3Like> (a: Out, b: Out): boolean;
/**
!#zh 排除浮点数误差的向量近似等价判断
!#en Negative error vector floating point approximately equivalent Analyzing
*/
static equals<Out extends IVec3Like> (a: Out, b: Out, epsilon?: number): boolean;
/**
!#zh 求两向量夹角弧度
!#en Radian angle between two vectors seek
*/
static angle<Out extends IVec3Like> (a: Out, b: Out): number;
/**
!#zh 计算向量在指定平面上的投影
!#en Calculating a projection vector in the specified plane
@param a 待投影向量
@param n 指定平面的法线
*/
static projectOnPlane<Out extends IVec3Like> (out: Out, a: Out, n: Out): Out;
/**
!#zh 计算向量在指定向量上的投影
!#en Projection vector calculated in the vector designated
@param a 待投影向量
@param n 目标向量
*/
static project<Out extends IVec3Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 向量转数组
!#en Vector transfer array
@param ofs 数组起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, v: IVec3Like, ofs?: number): Out;
/**
!#zh 数组转向量
!#en Array steering amount
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IVec3Like> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
x: number;
y: number;
z: number;
/**
!#en
Constructor
see {{#crossLink "cc/vec3:method"}}cc.v3{{/crossLink}}
!#zh
构造函数,可查看 {{#crossLink "cc/vec3:method"}}cc.v3{{/crossLink}}
@param x x
@param y y
@param z z
*/
constructor(x?: Vec3|number, y?: number, z?: number);
/**
!#en clone a Vec3 value
!#zh 克隆一个 Vec3 值
*/
clone(): Vec3;
/**
!#en Set the current vector value with the given vector.
!#zh 用另一个向量设置当前的向量对象值。
@param newValue !#en new value to set. !#zh 要设置的新值
*/
set(newValue: Vec3): Vec3;
/**
!#en Check whether the vector equals another one
!#zh 当前的向量是否与指定的向量相等。
@param other other
*/
equals(other: Vec3): boolean;
/**
!#en Check whether two vector equal with some degree of variance.
!#zh
近似判断两个点是否相等。<br/>
判断 2 个向量是否在指定数值的范围之内,如果在则返回 true,反之则返回 false。
@param other other
@param variance variance
*/
fuzzyEquals(other: Vec3, variance: number): boolean;
/**
!#en Transform to string with vector informations
!#zh 转换为方便阅读的字符串。
*/
toString(): string;
/**
!#en Calculate linear interpolation result between this vector and another one with given ratio
!#zh 线性插值。
@param to to
@param ratio the interpolation coefficient
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
lerp(to: Vec3, ratio: number, out?: Vec3): Vec3;
/**
!#en Clamp the vector between from float and to float.
!#zh
返回指定限制区域后的向量。<br/>
向量大于 max_inclusive 则返回 max_inclusive。<br/>
向量小于 min_inclusive 则返回 min_inclusive。<br/>
否则返回自身。
@param min_inclusive min_inclusive
@param max_inclusive max_inclusive
*/
clampf(min_inclusive: Vec3, max_inclusive: Vec3): Vec3;
/**
!#en Adds this vector. If you want to save result to another vector, use add() instead.
!#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。
@param vector vector
*/
addSelf(vector: Vec3): Vec3;
/**
!#en Adds two vectors, and returns the new result.
!#zh 向量加法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
add(vector: Vec3, out?: Vec3): Vec3;
/**
!#en Subtracts one vector from this.
!#zh 向量减法。
@param vector vector
*/
subtract(vector: Vec3): Vec3;
/**
!#en Multiplies this by a number.
!#zh 缩放当前向量。
@param num num
*/
multiplyScalar(num: number): Vec3;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
*/
multiply(vector: Vec3): Vec3;
/**
!#en Divides by a number.
!#zh 向量除法。
@param num num
*/
divide(num: number): Vec3;
/**
!#en Negates the components.
!#zh 向量取反。
*/
negate(): Vec3;
/**
!#en Dot product
!#zh 当前向量与指定向量进行点乘。
@param vector vector
*/
dot(vector?: Vec3): number;
/**
!#en Cross product
!#zh 当前向量与指定向量进行叉乘。
@param vector vector
@param out out
*/
cross(vector: Vec3, out?: Vec3): Vec3;
/**
!#en Returns the length of this vector.
!#zh 返回该向量的长度。
@example
```js
var v = cc.v3(10, 10, 10);
v.len(); // return 17.320508075688775;
```
*/
len(): number;
/**
!#en Returns the squared length of this vector.
!#zh 返回该向量的长度平方。
*/
lengthSqr(): number;
/**
!#en Make the length of this vector to 1.
!#zh 向量归一化,让这个向量的长度为 1。
*/
normalizeSelf(): Vec3;
/**
!#en
Returns this vector with a magnitude of 1.<br/>
<br/>
Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.
!#zh
返回归一化后的向量。<br/>
<br/>
注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。
@param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
normalize(out?: Vec3): Vec3;
/**
Transforms the vec3 with a mat4. 4th vector component is implicitly '1'
@param m matrix to transform with
@param out the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created
*/
transformMat4(m: Mat4, out?: Vec3): Vec3;
/**
Returns the maximum value in x, y, and z
*/
maxAxis(): number;
/**
!#en Get angle in radian between this and vector.
!#zh 夹角的弧度。
@param vector vector
*/
angle(vector: Vec3): number;
/**
!#en Calculates the projection of the current vector over the given vector.
!#zh 返回当前向量在指定 vector 向量上的投影向量。
@param vector vector
@example
```js
var v1 = cc.v3(20, 20, 20);
var v2 = cc.v3(5, 5, 5);
v1.project(v2); // Vec3 {x: 20, y: 20, z: 20};
```
*/
project(vector: Vec3): Vec3;
/**
!#en Get angle in radian between this and vector with direction. <br/>
In order to compatible with the vec2 API.
!#zh 带方向的夹角的弧度。该方法仅用做兼容 2D 计算。
@param vector vector
*/
signAngle(vector: Vec3|Vec2): number;
/**
!#en rotate. In order to compatible with the vec2 API.
!#zh 返回旋转给定弧度后的新向量。该方法仅用做兼容 2D 计算。
@param radians radians
@param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created
*/
rotate(radians: number, out?: Vec3): Vec2;
/**
!#en rotate self. In order to compatible with the vec2 API.
!#zh 按指定弧度旋转向量。该方法仅用做兼容 2D 计算。
@param radians radians
*/
rotateSelf(radians: number): Vec3;
}
/** !#en Representation of 3D vectors and points.
!#zh 表示 3D 向量和坐标 */
export class Vec4 extends ValueType {
/**
!#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead.
!#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。
@param vector vector
*/
subSelf(vector: Vec4): Vec4;
/**
!#en Subtracts one vector from this, and returns the new result.
!#zh 向量减法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
sub(vector: Vec4, out?: Vec4): Vec4;
/**
!#en Multiplies this by a number. If you want to save result to another vector, use mul() instead.
!#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。
@param num num
*/
mulSelf(num: number): Vec4;
/**
!#en Multiplies by a number, and returns the new result.
!#zh 缩放向量,并返回新结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
mul(num: number, out?: Vec4): Vec4;
/**
!#en Divides by a number. If you want to save result to another vector, use div() instead.
!#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。
@param num num
*/
divSelf(num: number): Vec4;
/**
!#en Divides by a number, and returns the new result.
!#zh 向量除法,并返回新的结果。
@param num num
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
div(num: number, out?: Vec4): Vec4;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
*/
scaleSelf(vector: Vec4): Vec4;
/**
!#en Multiplies two vectors, and returns the new result.
!#zh 分量相乘,并返回新的结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
scale(vector: Vec4, out?: Vec4): Vec4;
/**
!#en Negates the components. If you want to save result to another vector, use neg() instead.
!#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。
*/
negSelf(): Vec4;
/**
!#en Negates the components, and returns the new result.
!#zh 返回取反后的新向量。
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
neg(out?: Vec4): Vec4;
/**
!#zh 获得指定向量的拷贝
!#en Obtaining copy vectors designated
*/
static clone <Out extends IVec4Like> (a: Out): Vec4;
/**
!#zh 复制目标向量
!#en Copy the target vector
*/
static copy <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 设置向量值
!#en Set to value
*/
static set <Out extends IVec4Like> (out: Out, x: number, y: number, z: number, w: number): Out;
/**
!#zh 逐元素向量加法
!#en Element-wise vector addition
*/
static add <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量减法
!#en Element-wise vector subtraction
*/
static subtract <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量乘法
!#en Element-wise vector multiplication
*/
static multiply <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量除法
!#en Element-wise vector division
*/
static divide <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量向上取整
!#en Rounding up by elements of the vector
*/
static ceil <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量向下取整
!#en Element vector by rounding down
*/
static floor <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量最小值
!#en The minimum by-element vector
*/
static min <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量最大值
!#en The maximum value of the element-wise vector
*/
static max <Out extends IVec4Like> (out: Out, a: Out, b: Out): Out;
/**
!#zh 逐元素向量四舍五入取整
!#en Element-wise vector of rounding to whole
*/
static round <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 向量标量乘法
!#en Vector scalar multiplication
*/
static multiplyScalar <Out extends IVec4Like> (out: Out, a: Out, b: number): Out;
/**
!#zh 逐元素向量乘加: A + B * scale
!#en Element-wise vector multiply add: A + B * scale
*/
static scaleAndAdd <Out extends IVec4Like> (out: Out, a: Out, b: Out, scale: number): Out;
/**
!#zh 求两向量的欧氏距离
!#en Seeking two vectors Euclidean distance
*/
static distance <Out extends IVec4Like> (a: Out, b: Out): number;
/**
!#zh 求两向量的欧氏距离平方
!#en Euclidean distance squared seeking two vectors
*/
static squaredDistance <Out extends IVec4Like> (a: Out, b: Out): number;
/**
!#zh 求向量长度
!#en Seeking vector length
*/
static len <Out extends IVec4Like> (a: Out): number;
/**
!#zh 求向量长度平方
!#en Seeking squared vector length
*/
static lengthSqr <Out extends IVec4Like> (a: Out): number;
/**
!#zh 逐元素向量取负
!#en By taking the negative elements of the vector
*/
static negate <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 Infinity
!#en Element vector by taking the inverse, return near 0 Infinity
*/
static inverse <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 逐元素向量取倒数,接近 0 时返回 0
!#en Element vector by taking the inverse, return near 0 0
*/
static inverseSafe <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 归一化向量
!#en Normalized vector
*/
static normalize <Out extends IVec4Like> (out: Out, a: Out): Out;
/**
!#zh 向量点积(数量积)
!#en Vector dot product (scalar product)
*/
static dot <Out extends IVec4Like> (a: Out, b: Out): number;
/**
!#zh 逐元素向量线性插值: A + t * (B - A)
!#en Vector element by element linear interpolation: A + t * (B - A)
*/
static lerp <Out extends IVec4Like> (out: Out, a: Out, b: Out, t: number): Out;
/**
!#zh 生成一个在单位球体上均匀分布的随机向量
!#en Generates a uniformly distributed random vectors on the unit sphere
@param scale 生成的向量长度
*/
static random <Out extends IVec4Like> (out: Out, scale?: number): Out;
/**
!#zh 向量矩阵乘法
!#en Vector matrix multiplication
*/
static transformMat4 <Out extends IVec4Like, MatLike extends IMat4Like> (out: Out, a: Out, mat: MatLike): Out;
/**
!#zh 向量仿射变换
!#en Affine transformation vector
*/
static transformAffine<Out extends IVec4Like, VecLike extends IVec4Like, MatLike extends IMat4Like>(out: Out, v: VecLike, mat: MatLike): Out;
/**
!#zh 向量四元数乘法
!#en Vector quaternion multiplication
*/
static transformQuat <Out extends IVec4Like, QuatLike extends IQuatLike> (out: Out, a: Out, q: QuatLike): Out;
/**
!#zh 向量等价判断
!#en Equivalent vectors Analyzing
*/
static strictEquals <Out extends IVec4Like> (a: Out, b: Out): boolean;
/**
!#zh 排除浮点数误差的向量近似等价判断
!#en Negative error vector floating point approximately equivalent Analyzing
*/
static equals <Out extends IVec4Like> (a: Out, b: Out, epsilon?: number): boolean;
/**
!#zh 向量转数组
!#en Vector transfer array
@param ofs 数组起始偏移量
*/
static toArray <Out extends IWritableArrayLike<number>> (out: Out, v: IVec4Like, ofs?: number): Out;
/**
!#zh 数组转向量
!#en Array steering amount
@param ofs 数组起始偏移量
*/
static fromArray <Out extends IVec4Like> (out: Out, arr: IWritableArrayLike<number>, ofs?: number): Out;
x: number;
y: number;
z: number;
w: number;
/**
!#en
Constructor
see {{#crossLink "cc/vec4:method"}}cc.v4{{/crossLink}}
!#zh
构造函数,可查看 {{#crossLink "cc/vec4:method"}}cc.v4{{/crossLink}}
@param x x
@param y y
@param z z
@param w w
*/
constructor(x?: number, y?: number, z?: number, w?: number);
/**
!#en clone a Vec4 value
!#zh 克隆一个 Vec4 值
*/
clone(): Vec4;
/**
!#en Set the current vector value with the given vector.
!#zh 用另一个向量设置当前的向量对象值。
@param newValue !#en new value to set. !#zh 要设置的新值
*/
set(newValue: Vec4): Vec4;
/**
!#en Check whether the vector equals another one
!#zh 当前的向量是否与指定的向量相等。
@param other other
@param epsilon epsilon
*/
equals(other: Vec4, epsilon?: number): boolean;
/**
!#en Check whether the vector equals another one
!#zh 判断当前向量是否在误差范围内与指定分量的向量相等。
@param x 相比较的向量的 x 分量。
@param y 相比较的向量的 y 分量。
@param z 相比较的向量的 z 分量。
@param w 相比较的向量的 w 分量。
@param epsilon 允许的误差,应为非负数。
*/
equals4f(x: number, y: number, z: number, w: number, epsilon?: number): boolean;
/**
!#en Check whether strict equals other Vec4
!#zh 判断当前向量是否与指定向量相等。两向量的各分量都分别相等时返回 `true`;否则返回 `false`。
@param other 相比较的向量。
*/
strictEquals(other: Vec4): boolean;
/**
!#en Check whether strict equals other Vec4
!#zh 判断当前向量是否与指定分量的向量相等。两向量的各分量都分别相等时返回 `true`;否则返回 `false`。
@param x 指定向量的 x 分量。
@param y 指定向量的 y 分量。
@param z 指定向量的 z 分量。
@param w 指定向量的 w 分量。
*/
strictEquals4f(x: number, y: number, z: number, w: number): boolean;
/**
!#en Calculate linear interpolation result between this vector and another one with given ratio
!#zh 根据指定的插值比率,从当前向量到目标向量之间做插值。
@param to 目标向量。
@param ratio 插值比率,范围为 [0,1]。
*/
lerp(to: Vec4, ratio: number): Vec4;
/**
!#en Transform to string with vector informations
!#zh 返回当前向量的字符串表示。
*/
toString(): string;
/**
!#en Clamp the vector between minInclusive and maxInclusive.
!#zh 设置当前向量的值,使其各个分量都处于指定的范围内。
@param minInclusive 每个分量都代表了对应分量允许的最小值。
@param maxInclusive 每个分量都代表了对应分量允许的最大值。
*/
clampf(minInclusive: Vec4, maxInclusive: Vec4): Vec4;
/**
!#en Adds this vector. If you want to save result to another vector, use add() instead.
!#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。
@param vector vector
*/
addSelf(vector: Vec4): Vec4;
/**
!#en Adds two vectors, and returns the new result.
!#zh 向量加法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
add(vector: Vec4, out?: Vec4): Vec4;
/**
!#en Subtracts one vector from this, and returns the new result.
!#zh 向量减法,并返回新结果。
@param vector vector
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
subtract(vector: Vec4, out?: Vec4): Vec4;
/**
!#en Multiplies this by a number.
!#zh 缩放当前向量。
@param num num
*/
multiplyScalar(num: number): Vec4;
/**
!#en Multiplies two vectors.
!#zh 分量相乘。
@param vector vector
*/
multiply(vector: Vec4): Vec4;
/**
!#en Divides by a number.
!#zh 向量除法。
@param num num
*/
divide(num: number): Vec4;
/**
!#en Negates the components.
!#zh 向量取反
*/
negate(): Vec4;
/**
!#en Dot product
!#zh 当前向量与指定向量进行点乘。
@param vector vector
*/
dot(vector?: Vec4): number;
/**
!#en Cross product
!#zh 当前向量与指定向量进行叉乘。
@param vector vector
@param out out
*/
cross(vector: Vec4, out?: Vec4): Vec4;
/**
!#en Returns the length of this vector.
!#zh 返回该向量的长度。
@example
```js
var v = cc.v4(10, 10);
v.len(); // return 14.142135623730951;
```
*/
len(): number;
/**
!#en Returns the squared length of this vector.
!#zh 返回该向量的长度平方。
*/
lengthSqr(): number;
/**
!#en Make the length of this vector to 1.
!#zh 向量归一化,让这个向量的长度为 1。
*/
normalizeSelf(): Vec4;
/**
!#en
Returns this vector with a magnitude of 1.<br/>
<br/>
Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function.
!#zh
返回归一化后的向量。<br/>
<br/>
注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。
@param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
normalize(out?: Vec4): Vec4;
/**
Transforms the vec4 with a mat4. 4th vector component is implicitly '1'
@param m matrix to transform with
@param out the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created
*/
transformMat4(m: Mat4, out?: Vec4): Vec4;
/**
Returns the maximum value in x, y, z, w.
*/
maxAxis(): number;
}
/** !#en Effect Asset.
!#zh Effect 资源类型。 */
export class EffectAsset extends Asset {
}
/** !#en Material Asset.
!#zh 材质资源类。 */
export class Material extends Asset {
/**
!#en Get built-in materials
!#zh 获取内置材质
@param name name
*/
static getBuiltinMaterial(name: string): Material;
/**
!#en Creates a Material with builtin Effect.
!#zh 使用内建 Effect 创建一个材质。
@param effectName effectName
@param techniqueIndex techniqueIndex
*/
static createWithBuiltin(effectName: string, techniqueIndex?: number): Material;
/**
!#en Creates a Material.
!#zh 创建一个材质。
@param effectAsset effectAsset
@param techniqueIndex techniqueIndex
*/
static create(effectAsset: EffectAsset, techniqueIndex?: number): Material;
/**
!#en Sets the Material property
!#zh 设置材质的属性
@param name name
@param val val
@param passIdx passIdx
@param directly directly
*/
setProperty(name: string, val: any, passIdx?: number, directly?: boolean): void;
/**
!#en Gets the Material property.
!#zh 获取材质的属性。
@param name name
@param passIdx passIdx
*/
getProperty(name: string, passIdx: number): any;
/**
!#en Sets the Material define.
!#zh 设置材质的宏定义。
@param name name
@param val val
@param passIdx passIdx
@param force force
*/
define(name: string, val: boolean|number, passIdx?: number, force?: boolean): void;
/**
!#en Gets the Material define.
!#zh 获取材质的宏定义。
@param name name
@param passIdx passIdx
*/
getDefine(name: string, passIdx?: number): boolean;
/**
!#en Sets the Material cull mode.
!#zh 设置材质的裁减模式。
@param cullMode cullMode
@param passIdx passIdx
*/
setCullMode(cullMode: number, passIdx: number): void;
/**
!#en Sets the Material depth states.
!#zh 设置材质的深度渲染状态。
@param depthTest depthTest
@param depthWrite depthWrite
@param depthFunc depthFunc
@param passIdx passIdx
*/
setDepth(depthTest: boolean, depthWrite: boolean, depthFunc: number, passIdx: number): void;
/**
!#en Sets the Material blend states.
!#zh 设置材质的混合渲染状态。
@param enabled enabled
@param blendEq blendEq
@param blendSrc blendSrc
@param blendDst blendDst
@param blendAlphaEq blendAlphaEq
@param blendSrcAlpha blendSrcAlpha
@param blendDstAlpha blendDstAlpha
@param blendColor blendColor
@param passIdx passIdx
*/
setBlend(enabled: boolean, blendEq: number, blendSrc: number, blendDst: number, blendAlphaEq: number, blendSrcAlpha: number, blendDstAlpha: number, blendColor: number, passIdx: number): void;
/**
!#en Sets whether enable the stencil test.
!#zh 设置是否开启模板测试。
@param stencilTest stencilTest
@param passIdx passIdx
*/
setStencilEnabled(stencilTest: number, passIdx: number): void;
/**
!#en Sets the Material stencil render states.
!#zh 设置材质的模板测试渲染参数。
@param stencilTest stencilTest
@param stencilFunc stencilFunc
@param stencilRef stencilRef
@param stencilMask stencilMask
@param stencilFailOp stencilFailOp
@param stencilZFailOp stencilZFailOp
@param stencilZPassOp stencilZPassOp
@param stencilWriteMask stencilWriteMask
@param passIdx passIdx
*/
setStencil(stencilTest: number, stencilFunc: number, stencilRef: number, stencilMask: number, stencilFailOp: number, stencilZFailOp: number, stencilZPassOp: number, stencilWriteMask: number, passIdx: number): void;
}
/** !#en
Material Variant is an extension of the Material Asset.
Changes to Material Variant do not affect other Material Variant or Material Asset,
and changes to Material Asset are synchronized to the Material Variant.
However, when a Material Variant had already modifies a state, the Material Asset state is not synchronized to the Material Variant.
!#zh
材质变体是材质资源的一个延伸。
材质变体的修改不会影响到其他的材质变体或者材质资源,而材质资源的修改会同步体现到材质变体上,
但是当材质变体对一个状态修改后,材质资源再对这个状态修改是不会同步到材质变体上的。 */
export class MaterialVariant extends Material {
/**
@param materialName materialName
@param owner owner
*/
static createWithBuiltin (materialName: string, owner: cc.RenderComponent): MaterialVariant | null;
/**
@param material material
@param owner owner
*/
static create (material: Material, owner: cc.RenderComponent): MaterialVariant | null;
}
/** !#en The burst of 3d particle.
!#zh 3D 粒子发射时的爆发个数 */
export class Burst {
/** !#en Time between the start of the particle system and the trigger of this Brust
!#zh 粒子系统开始运行到触发此次 Brust 的时间 */
time: number;
/** !#en Minimum number of emitted particles
!#zh 发射粒子的最小数量 */
minCount: number;
/** !#en Maximum number of emitted particles
!#zh 发射粒子的最大数量 */
maxCount: number;
/** !#en The number of times Burst was triggered.
!#zh Burst 的触发次数 */
repeatCount: number;
/** !#en Interval of each trigger
!#zh 每次触发的间隔时间 */
repeatInterval: number;
/** !#en Number of particles emitted
!#zh 发射的粒子的数量 */
count: CurveRange;
}
/** !#en The animation curve of 3d particle.
!#zh 3D 粒子动画曲线 */
export class AnimationCurve {
}
/** !#en The ParticleSystem3D Component.
!#zh 3D 粒子组件 */
export class ParticleSystem3D extends RenderComponent {
/** !#en The run time of particle.
!#zh 粒子系统运行时间 */
duration: number;
/** !#en The maximum number of particles that a particle system can generate.
!#zh 粒子系统能生成的最大粒子数量 */
capacity: number;
/** !#en Whether the particle system loops.
!#zh 粒子系统是否循环播放 */
loop: boolean;
/** !#en Whether the particles start playing automatically after loaded.
!#zh 粒子系统加载后是否自动开始播放 */
playOnAwake: boolean;
/** !#en When selected, the particle system will start playing after one round has been played (only effective when loop is enabled).
!#zh 选中之后,粒子系统会以已播放完一轮之后的状态开始播放(仅当循环播放启用时有效) */
prewarm: boolean;
/** !#en The coordinate system in which the particle system is located.<br>
World coordinates (does not change when the position of other objects changes)<br>
Local coordinates (moving as the position of the parent node changes)<br>
Custom coordinates (moving with the position of a custom node)
!#zh 选择粒子系统所在的坐标系<br>
世界坐标(不随其他物体位置改变而变换)<br>
局部坐标(跟随父节点位置改变而移动)<br>
自定坐标(跟随自定义节点的位置改变而移动) */
simulationSpace: ParticleSystem3DAssembler.Space;
/** !#en Controlling the update speed of the entire particle system.
!#zh 控制整个粒子系统的更新速度。 */
simulationSpeed: number;
/** !#en Delay particle emission time after particle system starts running.
!#zh 粒子系统开始运行后,延迟粒子发射的时间。 */
startDelay: CurveRange;
/** !#en Particle life cycle。
!#zh 粒子生命周期。 */
startLifetime: CurveRange;
/** !#en Particle initial color
!#zh 粒子初始颜色 */
startColor: GradientRange;
/** !#en Particle scale space
!#zh 缩放空间 */
scaleSpace: ParticleSystem3DAssembler.Space;
/** !#en Initial particle size
!#zh 粒子初始大小 */
startSize: CurveRange;
/** !#en Initial particle speed
!#zh 粒子初始速度 */
startSpeed: CurveRange;
/** !#en Particle initial rotation angle
!#zh 粒子初始旋转角度 */
startRotation: CurveRange;
/** !#en Gravity coefficient of particles affected by gravity
!#zh 粒子受重力影响的重力系数 */
gravityModifier: CurveRange;
/** !#en Particles emitted per second
!#zh 每秒发射的粒子数 */
rateOverTime: CurveRange;
/** !#en Number of particles emitted per unit distance moved
!#zh 每移动单位距离发射的粒子数 */
rateOverDistance: CurveRange;
/** !#en The number of Brusts that emit a specified number of particles at a specified time
!#zh 设定在指定时间发射指定数量的粒子的 Brust 的数量 */
bursts: Burst[];
/** !#en Particle emitter module
!#zh 粒子发射器模块 */
shapeModule: ShapeModule;
/** !#en Color control module
!#zh 颜色控制模块 */
colorOverLifetimeModule: ColorOverLifetimeModule;
/** !#en Particle size module
!#zh 粒子大小模块 */
sizeOvertimeModule: SizeOvertimeModule;
/** !#en Particle speed module
!#zh 粒子速度模块 */
velocityOvertimeModule: VelocityOvertimeModule;
/** !#en Particle acceleration module
!#zh 粒子加速度模块 */
forceOvertimeModule: ForceOvertimeModule;
/** !#en Particle limit speed module (only CPU particles are supported)
!#zh 粒子限制速度模块(只支持 CPU 粒子) */
limitVelocityOvertimeModule: LimitVelocityOvertimeModule;
/** !#en Particle rotation module
!#zh 粒子旋转模块 */
rotationOvertimeModule: RotationOvertimeModule;
/** !#en Texture Animation Module
!#zh 贴图动画模块 */
textureAnimationModule: TextureAnimationModule;
/** !#en Particle Trajectory Module
!#zh 粒子轨迹模块 */
trailModule: TrailModule;
/** !#en Particle generation mode
!#zh 设定粒子生成模式 */
renderMode: ParticleSystem3DAssembler.RenderMode;
/** !#en When the particle generation mode is StrecthedBillboard, in the direction of movement of the particles is stretched by velocity magnitude
!#zh 在粒子生成方式为 StrecthedBillboard 时,对粒子在运动方向上按速度大小进行拉伸 */
velocityScale: number;
/** !#en When the particle generation method is StrecthedBillboard, the particles are stretched according to the particle size in the direction of motion
!#zh 在粒子生成方式为 StrecthedBillboard 时,对粒子在运动方向上按粒子大小进行拉伸 */
lengthScale: number;
/** !#en Particle model
!#zh 粒子模型 */
mesh: Mesh;
/** !#en Particle material
!#zh 粒子材质 */
particleMaterial: Material;
/** !#en Particle trail material
!#zh 粒子轨迹材质 */
trailMaterial: Material;
/**
!#en Playing particle effects
!#zh 播放粒子效果
*/
play(): void;
/**
!#en Pause particle effect
!#zh 暂停播放粒子效果
*/
pause(): void;
/**
!#en Stop particle effect
!#zh 停止播放粒子效果
*/
stop(): void;
/**
!#en Remove all particle effect
!#zh 将所有粒子从粒子系统中清除
*/
clear(): void;
}
/** !#en
Helper class for ES5 Map.
!#zh
ES5 Map 辅助类。 */
export class MapUtils {
}
/** !#en .
!#zh 。 */
export class SkeletonAnimation extends Animation {
}
/** !#en SkeletonAnimationClip Asset.
!#zh 骨骼动画剪辑。 */
export class SkeletonAnimationClip extends AnimationClip {
}
/** !#en
Skinned Mesh Renderer
!#zh
蒙皮渲染组件 */
export class SkinnedMeshRenderer {
/** !#en
Skeleton Asset
!#zh
骨骼资源 */
skeleton: sp.Skeleton;
/** !#en
Root Bone
!#zh
骨骼根节点 */
rootBone: Node;
}
/** !#en cc.EditBox is a component for inputing text, you can use it to gather small amounts of text from users.
!#zh EditBox 组件,用于获取用户的输入文本。 */
export class EditBox extends Component {
/** !#en Input string of EditBox.
!#zh 输入框的初始输入内容,如果为空则会显示占位符的文本。 */
string: string;
/** !#en The Label component attached to the node for EditBox's input text label
!#zh 输入框输入文本节点上挂载的 Label 组件对象 */
textLabel: Label;
/** !#en The Label component attached to the node for EditBox's placeholder text label
!#zh 输入框占位符节点上挂载的 Label 组件对象 */
placeholderLabel: Label;
/** !#en The Sprite component attached to the node for EditBox's background
!#zh 输入框背景节点上挂载的 Sprite 组件对象 */
background: Sprite;
/** !#en The background image of EditBox. This property will be removed in the future, use editBox.background instead please.
!#zh 输入框的背景图片。 该属性会在将来的版本中移除,请用 editBox.background */
backgroundImage: SpriteFrame;
/** !#en
The return key type of EditBox.
Note: it is meaningless for web platforms and desktop platforms.
!#zh
指定移动设备上面回车按钮的样式。
注意:这个选项对 web 平台与 desktop 平台无效。 */
returnType: EditBox.KeyboardReturnType;
/** !#en Set the input flags that are to be applied to the EditBox.
!#zh 指定输入标志位,可以指定输入方式为密码或者单词首字母大写。 */
inputFlag: EditBox.InputFlag;
/** !#en
Set the input mode of the edit box.
If you pass ANY, it will create a multiline EditBox.
!#zh
指定输入模式: ANY表示多行输入,其它都是单行输入,移动平台上还可以指定键盘样式。 */
inputMode: EditBox.InputMode;
/** !#en Font size of the input text. This property will be removed in the future, use editBox.textLabel.fontSize instead please.
!#zh 输入框文本的字体大小。 该属性会在将来的版本中移除,请使用 editBox.textLabel.fontSize。 */
fontSize: number;
/** !#en Change the lineHeight of displayed text. This property will be removed in the future, use editBox.textLabel.lineHeight instead.
!#zh 输入框文本的行高。该属性会在将来的版本中移除,请使用 editBox.textLabel.lineHeight */
lineHeight: number;
/** !#en Font color of the input text. This property will be removed in the future, use editBox.textLabel.node.color instead.
!#zh 输入框文本的颜色。该属性会在将来的版本中移除,请使用 editBox.textLabel.node.color */
fontColor: Color;
/** !#en The display text of placeholder.
!#zh 输入框占位符的文本内容。 */
placeholder: string;
/** !#en The font size of placeholder. This property will be removed in the future, use editBox.placeholderLabel.fontSize instead.
!#zh 输入框占位符的字体大小。该属性会在将来的版本中移除,请使用 editBox.placeholderLabel.fontSize */
placeholderFontSize: number;
/** !#en The font color of placeholder. This property will be removed in the future, use editBox.placeholderLabel.node.color instead.
!#zh 输入框占位符的字体颜色。该属性会在将来的版本中移除,请使用 editBox.placeholderLabel.node.color */
placeholderFontColor: Color;
/** !#en The maximize input length of EditBox.
- If pass a value less than 0, it won't limit the input number of characters.
- If pass 0, it doesn't allow input any characters.
!#zh 输入框最大允许输入的字符个数。
- 如果值为小于 0 的值,则不会限制输入字符个数。
- 如果值为 0,则不允许用户进行任何输入。 */
maxLength: number;
/** !#en The input is always visible and be on top of the game view (only useful on Web), this property will be removed on v2.1
!zh 输入框总是可见,并且永远在游戏视图的上面(这个属性只有在 Web 上面修改有意义),该属性会在 v2.1 中移除
Note: only available on Web at the moment. */
stayOnTop: boolean;
/** !#en Set the tabIndex of the DOM input element (only useful on Web).
!#zh 修改 DOM 输入元素的 tabIndex(这个属性只有在 Web 上面修改有意义)。 */
tabIndex: number;
/** !#en The event handler to be called when EditBox began to edit text.
!#zh 开始编辑文本输入框触发的事件回调。 */
editingDidBegan: Component.EventHandler[];
/** !#en The event handler to be called when EditBox text changes.
!#zh 编辑文本输入框时触发的事件回调。 */
textChanged: Component.EventHandler[];
/** !#en The event handler to be called when EditBox edit ends.
!#zh 结束编辑文本输入框时触发的事件回调。 */
editingDidEnded: Component.EventHandler[];
/** !#en The event handler to be called when return key is pressed. Windows is not supported.
!#zh 当用户按下回车按键时的事件回调,目前不支持 windows 平台 */
editingReturn: Component.EventHandler[];
/**
!#en Let the EditBox get focus, this method will be removed on v2.1
!#zh 让当前 EditBox 获得焦点, 这个方法会在 v2.1 中移除
*/
setFocus(): void;
/**
!#en Let the EditBox get focus
!#zh 让当前 EditBox 获得焦点
*/
focus(): void;
/**
!#en Let the EditBox lose focus
!#zh 让当前 EditBox 失去焦点
*/
blur(): void;
/**
!#en Determine whether EditBox is getting focus or not.
!#zh 判断 EditBox 是否获得了焦点
*/
isFocused(): void;
/**
!#en if you don't need the EditBox and it isn't in any running Scene, you should
call the destroy method on this component or the associated node explicitly.
Otherwise, the created DOM element won't be removed from web page.
!#zh
如果你不再使用 EditBox,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。
这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。
@example
```js
editbox.node.parent = null; // or editbox.node.removeFromParent(false);
// when you don't need editbox anymore
editbox.node.destroy();
```
*/
destroy(): boolean;
}
/** !#en
A distance joint constrains two points on two bodies
to remain at a fixed distance from each other. You can view
this as a massless, rigid rod.
!#zh
距离关节通过一个固定的长度来约束关节链接的两个刚体。你可以将它想象成一个无质量,坚固的木棍。 */
export class DistanceJoint extends Joint {
/** !#en
The distance separating the two ends of the joint.
!#zh
关节两端的距离 */
distance: number;
/** !#en
The spring frequency.
!#zh
弹性系数。 */
frequency: number;
/** !#en
The damping ratio.
!#zh
阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */
dampingRatio: number;
}
/** !#en
Base class for joints to connect rigidbody.
!#zh
关节类的基类 */
export class Joint extends Component {
/** !#en
The anchor of the rigidbody.
!#zh
刚体的锚点。 */
anchor: Vec2;
/** !#en
The anchor of the connected rigidbody.
!#zh
关节另一端刚体的锚点。 */
connectedAnchor: Vec2;
/** !#en
The rigidbody to which the other end of the joint is attached.
!#zh
关节另一端链接的刚体 */
connectedBody: RigidBody;
/** !#en
Should the two rigid bodies connected with this joint collide with each other?
!#zh
链接到关节上的两个刚体是否应该相互碰撞? */
collideConnected: boolean;
/**
!#en
Apply current changes to joint, this will regenerate inner box2d joint.
!#zh
应用当前关节中的修改,调用此函数会重新生成内部 box2d 的关节。
*/
apply(): void;
/**
!#en
Get the anchor point on rigidbody in world coordinates.
!#zh
获取刚体世界坐标系下的锚点。
*/
getWorldAnchor(): Vec2;
/**
!#en
Get the anchor point on connected rigidbody in world coordinates.
!#zh
获取链接刚体世界坐标系下的锚点。
*/
getWorldConnectedAnchor(): Vec2;
/**
!#en
Gets the reaction force of the joint.
!#zh
获取关节的反作用力。
@param timeStep The time to calculate the reaction force for.
*/
getReactionForce(timeStep: number): Vec2;
/**
!#en
Gets the reaction torque of the joint.
!#zh
获取关节的反扭矩。
@param timeStep The time to calculate the reaction torque for.
*/
getReactionTorque(timeStep: number): number;
}
/** !#en
A motor joint is used to control the relative motion
between two bodies. A typical usage is to control the movement
of a dynamic body with respect to the ground.
!#zh
马达关节被用来控制两个刚体间的相对运动。
一个典型的例子是用来控制一个动态刚体相对于地面的运动。 */
export class MotorJoint extends Joint {
/** !#en
The anchor of the rigidbody.
!#zh
刚体的锚点。 */
anchor: Vec2;
/** !#en
The anchor of the connected rigidbody.
!#zh
关节另一端刚体的锚点。 */
connectedAnchor: Vec2;
/** !#en
The linear offset from connected rigidbody to rigidbody.
!#zh
关节另一端的刚体相对于起始端刚体的位置偏移量 */
linearOffset: Vec2;
/** !#en
The angular offset from connected rigidbody to rigidbody.
!#zh
关节另一端的刚体相对于起始端刚体的角度偏移量 */
angularOffset: number;
/** !#en
The maximum force can be applied to rigidbody.
!#zh
可以应用于刚体的最大的力值 */
maxForce: number;
/** !#en
The maximum torque can be applied to rigidbody.
!#zh
可以应用于刚体的最大扭矩值 */
maxTorque: number;
/** !#en
The position correction factor in the range [0,1].
!#zh
位置矫正系数,范围为 [0, 1] */
correctionFactor: number;
}
/** !#en
A mouse joint is used to make a point on a body track a
specified world point. This a soft constraint with a maximum
force. This allows the constraint to stretch and without
applying huge forces.
Mouse Joint will auto register the touch event with the mouse region node,
and move the choosed rigidbody in touch move event.
Note : generally mouse joint only used in test bed.
!#zh
鼠标关节用于使刚体上的一个点追踪一个指定的世界坐标系下的位置。
鼠标关节可以指定一个最大的里来施加一个柔和的约束。
鼠标关节会自动使用 mouse region 节点来注册鼠标事件,并且在触摸移动事件中移动选中的刚体。
注意:一般鼠标关节只在测试环境中使用。 */
export class MouseJoint extends Joint {
/** !#en
The anchor of the rigidbody.
!#zh
刚体的锚点。 */
anchor: Vec2;
/** !#en
The anchor of the connected rigidbody.
!#zh
关节另一端刚体的锚点。 */
connectedAnchor: Vec2;
/** !#en
The node used to register touch evnet.
If this is null, it will be the joint's node.
!#zh
用于注册触摸事件的节点。
如果没有设置这个值,那么将会使用关节的节点来注册事件。 */
mouseRegion: Node;
/** !#en
The target point.
The mouse joint will move choosed rigidbody to target point.
!#zh
目标点,鼠标关节将会移动选中的刚体到指定的目标点 */
target: Vec2;
/** !#en
The spring frequency.
!#zh
弹簧系数。 */
frequency: number;
/** !#en
The damping ratio.
!#zh
阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */
0: number;
/** !#en
The maximum force
!#zh
最大阻力值 */
maxForce: number;
}
/** !#en
A prismatic joint. This joint provides one degree of freedom: translation
along an axis fixed in rigidbody. Relative rotation is prevented. You can
use a joint limit to restrict the range of motion and a joint motor to
drive the motion or to model joint friction.
!#zh
移动关节指定了只能在一个方向上移动刚体。
你可以开启关节限制来设置刚体运行移动的间距,也可以开启马达来使用关节马达驱动刚体的运行。 */
export class PrismaticJoint extends Joint {
/** !#en
The local joint axis relative to rigidbody.
!#zh
指定刚体可以移动的方向。 */
localAxisA: Vec2;
/** !#en
The reference angle.
!#zh
相对角度 */
referenceAngle: number;
/** !#en
Enable joint distance limit?
!#zh
是否开启关节的距离限制? */
enableLimit: boolean;
/** !#en
Enable joint motor?
!#zh
是否开启关节马达? */
enableMotor: boolean;
/** !#en
The lower joint limit.
!#zh
刚体能够移动的最小值 */
lowerLimit: number;
/** !#en
The upper joint limit.
!#zh
刚体能够移动的最大值 */
upperLimit: number;
/** !#en
The maxium force can be applied to rigidbody to rearch the target motor speed.
!#zh
可以施加到刚体的最大力。 */
maxMotorForce: number;
/** !#en
The expected motor speed.
!#zh
期望的马达速度。 */
motorSpeed: number;
}
/** !#en
A revolute joint constrains two bodies to share a common point while they
are free to rotate about the point. The relative rotation about the shared
point is the joint angle. You can limit the relative rotation with
a joint limit that specifies a lower and upper angle. You can use a motor
to drive the relative rotation about the shared point. A maximum motor torque
is provided so that infinite forces are not generated.
!#zh
旋转关节可以约束两个刚体围绕一个点来进行旋转。
你可以通过开启关节限制来限制旋转的最大角度和最小角度。
你可以通过开启马达来施加一个扭矩力来驱动这两个刚体在这一点上的相对速度。 */
export class RevoluteJoint extends Joint {
/** !#en
The reference angle.
An angle between bodies considered to be zero for the joint angle.
!#zh
相对角度。
两个物体之间角度为零时可以看作相等于关节角度 */
referenceAngle: number;
/** !#en
The lower angle.
!#zh
角度的最低限制。 */
lowerAngle: number;
/** !#en
The upper angle.
!#zh
角度的最高限制。 */
upperAngle: number;
/** !#en
The maxium torque can be applied to rigidbody to rearch the target motor speed.
!#zh
可以施加到刚体的最大扭矩。 */
maxMotorTorque: number;
/** !#en
The expected motor speed.
!#zh
期望的马达速度。 */
motorSpeed: number;
/** !#en
Enable joint limit?
!#zh
是否开启关节的限制? */
enableLimit: boolean;
/** !#en
Enable joint motor?
!#zh
是否开启关节马达? */
enableMotor: boolean;
/**
!#en
Get the joint angle.
!#zh
获取关节角度。
*/
getJointAngle(): number;
}
/** !#en
A rope joint enforces a maximum distance between two points
on two bodies. It has no other effect.
Warning: if you attempt to change the maximum length during
the simulation you will get some non-physical behavior.
!#zh
绳子关节只指定两个刚体间的最大距离,没有其他的效果。
注意:如果你试图动态修改关节的长度,这有可能会得到一些意外的效果。 */
export class RopeJoint extends Joint {
/** !#en
The max length.
!#zh
最大长度。 */
maxLength: number;
}
/** !#en
A weld joint essentially glues two bodies together. A weld joint may
distort somewhat because the island constraint solver is approximate.
!#zh
熔接关节相当于将两个刚体粘在了一起。
熔接关节可能会使某些东西失真,因为约束求解器算出的都是近似值。 */
export class WeldJoint extends Joint {
/** !#en
The reference angle.
!#zh
相对角度。 */
referenceAngle: number;
/** !#en
The frequency.
!#zh
弹性系数。 */
frequency: number;
/** !#en
The damping ratio.
!#zh
阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */
0: number;
}
/** !#en
A wheel joint. This joint provides two degrees of freedom: translation
along an axis fixed in bodyA and rotation in the plane. You can use a joint motor to drive
the rotation or to model rotational friction.
This joint is designed for vehicle suspensions.
!#zh
轮子关节提供两个维度的自由度:旋转和沿着指定方向上位置的移动。
你可以通过开启关节马达来使用马达驱动刚体的旋转。
轮组关节是专门为机动车类型设计的。 */
export class WheelJoint extends Joint {
/** !#en
The local joint axis relative to rigidbody.
!#zh
指定刚体可以移动的方向。 */
localAxisA: Vec2;
/** !#en
The maxium torque can be applied to rigidbody to rearch the target motor speed.
!#zh
可以施加到刚体的最大扭矩。 */
maxMotorTorque: number;
/** !#en
The expected motor speed.
!#zh
期望的马达速度。 */
motorSpeed: number;
/** !#en
Enable joint motor?
!#zh
是否开启关节马达? */
enableMotor: boolean;
/** !#en
The spring frequency.
!#zh
弹性系数。 */
frequency: number;
/** !#en
The damping ratio.
!#zh
阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */
dampingRatio: number;
}
/** undefined */
export class PhysicsBoxCollider extends PhysicsCollider implements Collider.Box {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Box size
!#zh 包围盒大小 */
size: Size;
}
/** undefined */
export class PhysicsChainCollider extends PolygonCollider {
/** !#en Whether the chain is loop
!#zh 链条是否首尾相连 */
loop: boolean;
/** !#en Chain points
!#zh 链条顶点数组 */
points: Vec2[];
}
/** undefined */
export class PhysicsCircleCollider extends PhysicsCollider implements Collider.Circle {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Circle radius
!#zh 圆形半径 */
radius: number;
}
/** undefined */
export class PhysicsCollider extends Collider {
/** !#en
The density.
!#zh
密度 */
density: number;
/** !#en
A sensor collider collects contact information but never generates a collision response
!#zh
一个传感器类型的碰撞体会产生碰撞回调,但是不会发生物理碰撞效果。 */
sensor: boolean;
/** !#en
The friction coefficient, usually in the range [0,1].
!#zh
摩擦系数,取值一般在 [0, 1] 之间 */
friction: number;
/** !#en
The restitution (elasticity) usually in the range [0,1].
!#zh
弹性系数,取值一般在 [0, 1]之间 */
restitution: number;
/** !#en
Physics collider will find the rigidbody component on the node and set to this property.
!#zh
碰撞体会在初始化时查找节点上是否存在刚体,如果查找成功则赋值到这个属性上。 */
body: RigidBody;
/**
!#en
Apply current changes to collider, this will regenerate inner box2d fixtures.
!#zh
应用当前 collider 中的修改,调用此函数会重新生成内部 box2d 的夹具。
*/
apply(): void;
/**
!#en
Get the world aabb of the collider
!#zh
获取碰撞体的世界坐标系下的包围盒
*/
getAABB(): void;
}
/** undefined */
export class PhysicsPolygonCollider extends PhysicsCollider implements Collider.Polygon {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Polygon points
!#zh 多边形顶点数组 */
points: Vec2[];
}
/** !#en The rigid body type
!#zh 刚体类型 */
export enum ERigidBodyType {
DYNAMIC = 0,
STATIC = 0,
KINEMATIC = 0,
}
/** !#en
Trigger event
!#zh
触发事件。 */
export class ITriggerEvent {
/** !#en
The type of event fired
!#zh
触发的事件类型 */
type: string;
/** !#en
Triggers its own collider in the event
!#zh
触发事件中的自己的碰撞器 */
selfCollider: Collider3D;
/** !#en
Triggers another collider in the event
!#zh
触发事件中的另一个碰撞器 */
otherCollider: Collider3D;
}
/** !#en
Collision information for collision events.
!#zh
碰撞事件的碰撞信息。 */
export class IContactEquation {
/** !#en
The collision point A in the collision information.
!#zh
碰撞信息中的碰撞点 A。 */
contactA: Vec3;
/** !#en
Collision point B in collision information.
!#zh
碰撞信息中的碰撞点 B。 */
contactB: Vec3;
/** !#en
Normals in collision information.
!#zh
碰撞信息中的法线。 */
normal: Vec3;
}
/** !#en
Collision events.
!#zh
碰撞事件。 */
export class ICollisionEvent {
/** !#en
Event type of collision.
!#zh
碰撞的事件类型。 */
type: string;
/** !#en
Collider of its own in collision.
!#zh
碰撞中的自己的碰撞器。 */
selfCollider: Collider3D;
/** !#en
Another collider in the collision.
!#zh
碰撞中的另一个碰撞器。 */
otherCollider: Collider3D;
/** !#en
Information about all the points of impact in the collision.
!#zh
碰撞中的所有碰撞点的信息。 */
contacts: IContactEquation[];
}
/** !#en
Physical systems manager.
!#zh
物理系统管理器。 */
export class Physics3DManager {
/** !#en
Whether to enable the physics system, default is false.
!#zh
是否启用物理系统,默认不启用。 */
enabled: boolean;
/** !#en
Whether to allow the physics system to automatically hibernate, default is true.
!#zh
物理系统是否允许自动休眠,默认为 true。 */
allowSleep: boolean;
/** !#en
The maximum number of sub-steps a full step is permitted to be broken into, default is 2.
!#zh
物理每帧模拟的最大子步数,默认为 2。 */
maxSubStep: number;
/** !#en
Time spent in each simulation of physics, default is 1/60s.
!#zh
物理每步模拟消耗的固定时间,默认为 1/60 秒。 */
deltaTime: number;
/** !#en
Whether to use a fixed time step.
!#zh
是否使用固定的时间步长。 */
useFixedTime: boolean;
/** !#en
Gravity value of the physics simulation, default is (0, -10, 0).
!#zh
物理世界的重力数值,默认为 (0, -10, 0)。 */
gravity: Vec3;
/** !#en
Gets the global default physical material. Note that builtin is null.
!#zh
获取全局的默认物理材质,注意:builtin 时为 null。 */
defaultMaterial: PhysicsMaterial|void;
/**
!#en
A physical system simulation is performed once and will now be performed automatically once per frame.
!#zh
执行一次物理系统的模拟,目前将在每帧自动执行一次。
@param deltaTime The time difference from the last execution is currently elapsed per frame
*/
update(deltaTime: number): void;
/**
!#en Detect all collision boxes and return all detected results, or null if none is detected. Note that the return value is taken from the object pool, so do not save the result reference or modify the result.
!#zh 检测所有的碰撞盒,并返回所有被检测到的结果,若没有检测到,则返回空值。注意返回值是从对象池中取的,所以请不要保存结果引用或者修改结果。
@param worldRay A ray in world space
@param groupIndexOrName Collision group index or group name
@param maxDistance Maximum detection distance
@param queryTrigger Detect trigger or not
*/
raycast(worldRay: geomUtils.Ray, groupIndexOrName: number|string, maxDistance: number, queryTrigger: boolean): PhysicsRayResult[];
/**
!#en Detect all collision boxes and return the detection result with the shortest ray distance. If not, return null value. Note that the return value is taken from the object pool, so do not save the result reference or modify the result.
!#zh 检测所有的碰撞盒,并返回射线距离最短的检测结果,若没有,则返回空值。注意返回值是从对象池中取的,所以请不要保存结果引用或者修改结果。
@param worldRay A ray in world space
@param groupIndexOrName Collision group index or group name
@param maxDistance Maximum detection distance
@param queryTrigger Detect trigger or not
*/
raycastClosest(worldRay: geomUtils.Ray, groupIndexOrName: number|string, maxDistance: number, queryTrigger: boolean): PhysicsRayResult;
}
/** !#en
Used to store physical ray detection results
!#zh
用于保存物理射线检测结果 */
export class PhysicsRayResult {
/** !#en
Hit the point
!#zh
击中点 */
hitPoint: Vec3;
/** !#en
Distance
!#zh
距离 */
distance: number;
/** !#en
Hit the collision box
!#zh
击中的碰撞盒 */
collider: Collider3D;
/**
!#en
Set up ray. This method is used internally by the engine. Do not call it from an external script
!#zh
设置射线,此方法由引擎内部使用,请勿在外部脚本调用
@param hitPoint hitPoint
@param distance distance
@param collider collider
*/
_assign(hitPoint: Vec3, distance: number, collider: Collider3D): void;
/**
!#en
Clone
!#zh
克隆
*/
clone(): void;
}
/** Rigid body interface */
export class IRigidBody {
rigidBody: RigidBody3D;
mass: number;
linearDamping: number;
angularDamping: number;
isKinematic: boolean;
useGravity: boolean;
fixedRotation: boolean;
linearFactor: IVec3Like;
angularFactor: IVec3Like;
allowSleep: boolean;
isAwake: boolean;
isSleepy: boolean;
isSleeping: boolean;
wakeUp(): void;
sleep(): void;
/**
@param out out
*/
getLinearVelocity(out: IVec3Like): void;
/**
@param out out
*/
setLinearVelocity(out: IVec3Like): void;
/**
@param out out
*/
getAngularVelocity(out: IVec3Like): void;
/**
@param out out
*/
setAngularVelocity(out: IVec3Like): void;
/**
@param force force
@param relativePoint relativePoint
*/
applyForce(force: IVec3Like, relativePoint: IVec3Like): void;
/**
@param force force
@param relativePoint relativePoint
*/
applyLocalForce(force: IVec3Like, relativePoint: IVec3Like): void;
/**
@param force force
@param relativePoint relativePoint
*/
applyImpulse(force: IVec3Like, relativePoint: IVec3Like): void;
/**
@param force force
@param relativePoint relativePoint
*/
applyLocalImpulse(force: IVec3Like, relativePoint: IVec3Like): void;
/**
@param torque torque
*/
applyTorque(torque: IVec3Like): void;
/**
@param torque torque
*/
applyLocalTorque(torque: IVec3Like): void;
}
/** Class has x y z properties */
export class IVec3Like {
x: number;
y: number;
z: number;
}
/** Class has x y z w properties */
export class IQuatLike {
x: number;
y: number;
z: number;
w: number;
}
/** !#en Base shape interface. */
export class IBaseShape {
collider: Collider3D;
attachedRigidBody: RigidBody3D|void;
material: any;
isTrigger: boolean;
center: IVec3Like;
}
/** !#en box shape interface */
export class IBoxShape {
size: IVec3Like;
}
/** !#en Sphere shape interface */
export class ISphereShape {
radius: number;
}
/** Ray cast options */
export class IRaycastOptions {
groupIndex: number;
queryTrigger: boolean;
maxDistance: number;
}
/** Collision detect */
export class ICollisionDetect {
/**
Ray cast, and return information of the closest hit.
@param worldRay worldRay
@param options options
@param out out
*/
raycastClosest(worldRay: geomUtils.Ray, options: IRaycastOptions, out: PhysicsRayResult): boolean;
/**
Ray cast against all bodies. The provided callback will be executed for each hit with a RaycastResult as single argument.
@param worldRay worldRay
@param options options
@param pool pool
@param resultes resultes
*/
raycast(worldRay: geomUtils.Ray, options: IRaycastOptions, pool: RecyclePool, resultes: PhysicsRayResult[]): boolean;
}
/** Physics world interface */
export class IPhysicsWorld {
}
/** !#en The color over time module of 3d particle.
!#zh 3D 粒子颜色变化模块 */
export class ColorOvertimeModule {
/** !#en The enable of ColorOvertimeModule.
!#zh 是否启用 */
enable: boolean;
}
/** !#en The curve range of target value.
!#zh 目标值的曲线范围 */
export class CurveRange {
/** !#en Curve type.
!#zh 曲线类型。 */
mode: debug.DebugMode;
/** !#en The curve to use when mode is Curve.
!#zh 当 mode 为 Curve 时,使用的曲线。 */
curve: AnimationCurve;
/** !#en The lower limit of the curve to use when mode is TwoCurves
!#zh 当 mode 为 TwoCurves 时,使用的曲线下限。 */
curveMin: AnimationCurve;
/** !#en The upper limit of the curve to use when mode is TwoCurves
!#zh 当 mode 为 TwoCurves 时,使用的曲线上限。 */
curveMax: AnimationCurve;
/** !#en When mode is Constant, the value of the curve.
!#zh 当 mode 为 Constant 时,曲线的值。 */
constant: number;
/** !#en The lower limit of the curve to use when mode is TwoConstants
!#zh 当 mode 为 TwoConstants 时,曲线的下限。 */
constantMin: number;
/** !#en The upper limit of the curve to use when mode is TwoConstants
!#zh 当 mode 为 TwoConstants 时,曲线的上限。 */
constantMax: number;
/** !#en Coefficients applied to curve interpolation.
!#zh 应用于曲线插值的系数。 */
multiplier: number;
}
/** !#en The force over time module of 3d particle.
!#zh 3D 粒子的加速度模块 */
export class ForceOvertimeModule {
/** !#en The enable of ColorOvertimeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Coordinate system used in acceleration calculation.
!#zh 加速度计算时采用的坐标系。 */
space: ParticleSystem3DAssembler.Space;
/** !#en X-axis acceleration component.
!#zh X 轴方向上的加速度分量。 */
x: CurveRange;
/** !#en Y-axis acceleration component.
!#zh Y 轴方向上的加速度分量。 */
y: CurveRange;
/** !#en Z-axis acceleration component.
!#zh Z 轴方向上的加速度分量。 */
z: CurveRange;
}
/** !#en The gradient range of color.
!#zh 颜色值的渐变范围 */
export class GradientRange {
/** !#en Gradient type.
!#zh 渐变色类型。 */
mode: debug.DebugMode;
/** !#en The color when mode is Color.
!#zh 当 mode 为 Color 时的颜色。 */
color: Color;
/** !#en Lower color limit when mode is TwoColors.
!#zh 当 mode 为 TwoColors 时的颜色下限。 */
colorMin: Color;
/** !#en Upper color limit when mode is TwoColors.
!#zh 当 mode 为 TwoColors 时的颜色上限。 */
colorMax: Color;
/** !#en Color gradient when mode is Gradient
!#zh 当 mode 为 Gradient 时的颜色渐变。 */
gradient: Gradient;
/** !#en Lower color gradient limit when mode is TwoGradients.
!#zh 当 mode 为 TwoGradients 时的颜色渐变下限。 */
gradientMin: Gradient;
/** !#en Upper color gradient limit when mode is TwoGradients.
!#zh 当 mode 为 TwoGradients 时的颜色渐变上限。 */
gradientMax: Gradient;
}
/** !#en The color key of gradient.
!#zh color 关键帧 */
export class ColorKey {
}
/** !#en The alpha key of gradient.
!#zh alpha 关键帧 */
export class AlphaKey {
}
/** !#en The gradient data of color.
!#zh 颜色渐变数据 */
export class Gradient {
}
/** !#en The limit velocity module of 3d particle.
!#zh 3D 粒子的限速模块 */
export class LimitVelocityOvertimeModule {
/** !#en The enable of LimitVelocityOvertimeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en The coordinate system used when calculating the lower speed limit.
!#zh 计算速度下限时采用的坐标系。 */
space: ParticleSystem3DAssembler.Space;
/** !#en Whether to limit the three axes separately.
!#zh 是否三个轴分开限制。 */
separateAxes: boolean;
/** !#en Lower speed limit
!#zh 速度下限。 */
limit: CurveRange;
/** !#en Lower speed limit in X direction.
!#zh X 轴方向上的速度下限。 */
limitX: CurveRange;
/** !#en Lower speed limit in Y direction.
!#zh Y 轴方向上的速度下限。 */
limitY: CurveRange;
/** !#en Lower speed limit in Z direction.
!#zh Z 轴方向上的速度下限。 */
limitZ: CurveRange;
/** !#en Interpolation of current speed and lower speed limit.
!#zh 当前速度与速度下限的插值。 */
dampen: number;
}
/** !#en The optimized curve.
!#zh 优化曲线 */
export class OptimizedCurve {
}
/** !#en The rotation module of 3d particle.
!#zh 3D 粒子的旋转模块 */
export class RotationOvertimeModule {
/** !#en The enable of RotationOvertimeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Whether to set the rotation of three axes separately (not currently supported)
!#zh 是否三个轴分开设定旋转(暂不支持)。 */
separateAxes: boolean;
/** !#en Set rotation around X axis.
!#zh 绕 X 轴设定旋转。 */
x: CurveRange;
/** !#en Set rotation around Y axis.
!#zh 绕 Y 轴设定旋转。 */
y: CurveRange;
/** !#en Set rotation around Z axis.
!#zh 绕 Z 轴设定旋转。 */
z: CurveRange;
}
/** !#en The size module of 3d particle.
!#zh 3D 粒子的大小模块 */
export class SizeOvertimeModule {
/** !#en The enable of SizeOvertimeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Decide whether to control particle size independently on each axis.
!#zh 决定是否在每个轴上独立控制粒子大小。 */
separateAxes: boolean;
/** !#en Define a curve to determine the size change of particles during their life cycle.
!#zh 定义一条曲线来决定粒子在其生命周期中的大小变化。 */
size: CurveRange;
/** !#en Defines a curve to determine the size change of particles in the X-axis direction during their life cycle.
!#zh 定义一条曲线来决定粒子在其生命周期中 X 轴方向上的大小变化。 */
x: CurveRange;
/** !#en Defines a curve to determine the size change of particles in the Y-axis direction during their life cycle.
!#zh 定义一条曲线来决定粒子在其生命周期中 Y 轴方向上的大小变化。 */
y: CurveRange;
/** !#en Defines a curve to determine the size change of particles in the Z-axis direction during their life cycle.
!#zh 定义一条曲线来决定粒子在其生命周期中 Z 轴方向上的大小变化。 */
z: CurveRange;
}
/** !#en The texture animation module of 3d particle.
!#zh 3D 粒子的贴图动画模块 */
export class TextureAnimationModule {
/** !#en The enable of TextureAnimationModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Set the type of particle map animation (only supports Grid mode for the time being)
!#zh 设定粒子贴图动画的类型(暂只支持 Grid 模式。 */
mode: debug.DebugMode;
/** !#en Animation frames in X direction.
!#zh X 方向动画帧数。 */
numTilesX: number;
/** !#en Animation frames in Y direction.
!#zh Y 方向动画帧数。 */
numTilesY: number;
/** !#en The way of the animation plays.
!#zh 动画播放方式。 */
animation: Animation;
/** !#en Randomly select a line from the animated map to generate the animation. <br>
This option only takes effect when the animation playback mode is SingleRow.
!#zh 随机从动画贴图中选择一行以生成动画。<br>
此选项仅在动画播放方式为 SingleRow 时生效。 */
randomRow: boolean;
/** !#en Select specific lines from the animation map to generate the animation. <br>
This option is only available when the animation playback mode is SingleRow and randomRow is disabled.
!#zh 从动画贴图中选择特定行以生成动画。<br>
此选项仅在动画播放方式为 SingleRow 时且禁用 randomRow 时可用。 */
rowIndex: number;
/** !#en Frame and time curve of animation playback in one cycle.
!#zh 一个周期内动画播放的帧与时间变化曲线。 */
frameOverTime: CurveRange;
/** !#en Play from which frames, the time is the life cycle of the entire particle system.
!#zh 从第几帧开始播放,时间为整个粒子系统的生命周期。 */
startFrame: CurveRange;
/** !#en Number of playback loops in a life cycle.
!#zh 一个生命周期内播放循环的次数。 */
cycleCount: number;
}
/** !#en The velocity module of 3d particle.
!#zh 3D 粒子的速度模块 */
export class VelocityOvertimeModule {
/** !#en The enable of VelocityOvertimeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Coordinate system used in speed calculation.
!#zh 速度计算时采用的坐标系。 */
space: ParticleSystem3DAssembler.Space;
/** !#en Velocity component in X axis direction
!#zh X 轴方向上的速度分量。 */
x: CurveRange;
/** !#en Velocity component in Y axis direction
!#zh Y 轴方向上的速度分量。 */
y: CurveRange;
/** !#en Velocity component in Z axis direction
!#zh Z 轴方向上的速度分量。 */
z: CurveRange;
/** !#en Speed correction factor (only supports CPU particles).
!#zh 速度修正系数(只支持 CPU 粒子)。 */
speedModifier: CurveRange;
}
/** !#en The shape module of 3d particle.
!#zh 3D 粒子的发射形状模块 */
export class ShapeModule {
/** !#en The enable of shapeModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Particle emitter type.
!#zh 粒子发射器类型。 */
shapeType: shapeModule.ShapeType;
/** !#en The emission site of the particle.
!#zh 粒子从发射器哪个部位发射。 */
emitFrom: shapeModule.EmitLocation;
/** !#en Particle emitter radius.
!#zh 粒子发射器半径。 */
radius: number;
/** !#en Particle emitter emission position (not valid for Box type emitters):<bg>
- 0 means emitted from the surface;
- 1 means launch from the center;
- 0 ~ 1 indicates emission from the center to the surface.
!#zh 粒子发射器发射位置(对 Box 类型的发射器无效):<bg>
- 0 表示从表面发射;
- 1 表示从中心发射;
- 0 ~ 1 之间表示在中心到表面之间发射。 */
radiusThickness: number;
/** !#en The angle between the axis of the cone and the generatrix<bg>
Determines the opening and closing of the cone launcher
!#zh 圆锥的轴与母线的夹角<bg>。
决定圆锥发射器的开合程度。 */
angle: number;
/** !#en Particle emitters emit in a fan-shaped range.
!#zh 粒子发射器在一个扇形范围内发射。 */
arc: number;
/** !#en How particles are emitted in the sector range.
!#zh 粒子在扇形范围内的发射方式。 */
arcMode: shapeModule.ArcMode;
/** !#en Controls the discrete intervals around the arcs where particles might be generated.
!#zh 控制可能产生粒子的弧周围的离散间隔。 */
arcSpread: number;
/** !#en The speed at which particles are emitted around the circumference.
!#zh 粒子沿圆周发射的速度。 */
arcSpeed: CurveRange;
/** !#en Axis length from top of cone to bottom of cone <bg>.
Determines the height of the cone emitter.
!#zh 圆锥顶部截面距离底部的轴长<bg>。
决定圆锥发射器的高度。 */
length: number;
/** !#en Particle emitter emission location (for box-type particle emitters).
!#zh 粒子发射器发射位置(针对 Box 类型的粒子发射器。 */
boxThickness: Vec3;
/** !#en Particle Emitter Position
!#zh 粒子发射器位置。 */
position: Vec3;
/** !#en Particle emitter rotation angle.
!#zh 粒子发射器旋转角度。 */
rotation: Vec3;
/** !#en Particle emitter scaling
!#zh 粒子发射器缩放比例。 */
scale: Vec3;
/** !#en The direction of particle movement is determined based on the initial direction of the particles.
!#zh 根据粒子的初始方向决定粒子的移动方向。 */
alignToDirection: boolean;
/** !#en Set particle generation direction randomly.
!#zh 粒子生成方向随机设定。 */
randomDirectionAmount: number;
/** !#en Interpolation between the current emission direction and the direction from the current position to the center of the node.
!#zh 表示当前发射方向与当前位置到结点中心连线方向的插值。 */
sphericalDirectionAmount: number;
}
/** !#en The trail module of 3d particle.
!#zh 3D 粒子拖尾模块 */
export class TrailModule {
/** !#en The enable of trailModule.
!#zh 是否启用 */
enable: boolean;
/** !#en Sets how particles generate trajectories.
!#zh 设定粒子生成轨迹的方式。 */
mode: trailModule.TrailMode;
/** !#en Life cycle of trajectory.
!#zh 轨迹存在的生命周期。 */
lifeTime: CurveRange;
/** !#en Minimum spacing between each track particle
!#zh 每个轨迹粒子之间的最小间距。 */
minParticleDistance: number;
/** !#en The coordinate system of trajectories.
!#zh 轨迹设定时的坐标系。 */
space: ParticleSystem3DAssembler.Space;
/** !#en Whether the particle itself exists.
!#zh 粒子本身是否存在。 */
existWithParticles: boolean;
/** !#en Set the texture fill method
!#zh 设定纹理填充方式。 */
textureMode: trailModule.TextureMode;
/** !#en Whether to use particle width
!#zh 是否使用粒子的宽度。 */
widthFromParticle: boolean;
/** !#en Curves that control track length
!#zh 控制轨迹长度的曲线。 */
widthRatio: CurveRange;
/** !#en Whether to use particle color
!#zh 是否使用粒子的颜色。 */
colorFromParticle: boolean;
/** !#en The color of trajectories.
!#zh 轨迹的颜色。 */
colorOverTrail: GradientRange;
/** !#en Trajectories color over time.
!#zh 轨迹随时间变化的颜色。 */
colorOvertime: GradientRange;
}
/** !#en Manage Dynamic Atlas Manager. Dynamic Atlas Manager is used for merging textures at runtime, see [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) for details.
!#zh 管理动态图集。动态图集用于在运行时对贴图进行合并,详见 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。 */
export class DynamicAtlasManager {
/** !#en Enable or disable the dynamic atlas, see [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) for details.
!#zh 开启或者关闭动态图集,详见 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。 */
enabled: boolean;
/** !#en The maximum number of atlas that can be created.
!#zh 可以创建的最大图集数量。 */
maxAtlasCount: number;
/** !#en Is enable textureBleeding.
!#zh 是否开启 textureBleeding */
textureBleeding: boolean;
/** !#en The size of the atlas that was created
!#zh 创建的图集的宽高 */
textureSize: number;
/** !#en The maximum size of the picture that can be added to the atlas.
!#zh 可以添加进图集的图片的最大尺寸。 */
maxFrameSize: number;
/** !#en The minimum size of the picture that can be added to the atlas.
!#zh 可以添加进图集的图片的最小尺寸。 */
minFrameSize: number;
/**
!#en Append a sprite frame into the dynamic atlas.
!#zh 添加碎图进入动态图集。
@param spriteFrame spriteFrame
*/
insertSpriteFrame(spriteFrame: SpriteFrame): void;
/**
!#en Resets all dynamic atlas, and the existing ones will be destroyed.
!#zh 重置所有动态图集,已有的动态图集会被销毁。
*/
reset(): void;
/**
!#en Displays all the dynamic atlas in the current scene, which you can use to view the current atlas state.
!#zh 在当前场景中显示所有动态图集,可以用来查看当前的合图状态。
@param show show
*/
showDebug(show: boolean): Node;
}
/** !#en
Physics material.
!#zh
物理材质。 */
export class PhysicsMaterial extends Asset {
/** !#en
Friction for this material.
!#zh
物理材质的摩擦力。 */
friction: number;
/** !#en
Restitution for this material.
!#zh
物理材质的弹力。 */
restitution: number;
}
/** !#en
Each frame applies a constant force to a rigid body, depending on the RigidBody3D
!#zh
在每帧对一个刚体施加持续的力,依赖 RigidBody3D 组件 */
export class ConstantForce extends Component {
/** !#en
Set the force used in the world coordinate system, use `this.force = otherVec3`.
!#zh
设置世界坐标系中使用的力,设置时请用 `this.force = otherVec3` 的方式。 */
force: Vec3;
/** !#en
Set the force used in the local coordinate system, using `this.localforce = otherVec3`.
!#zh
获取和设置本地坐标系中使用的力,设置时请用 `this.localForce = otherVec3` 的方式。 */
localForce: Vec3;
/** !#en
Torque applied to the world orientation
!#zh
对世界朝向施加的扭矩 */
torque: Vec3;
/** !#en
Torque applied to local orientation, using `this.localtorque = otherVec3`.
!#zh
对本地朝向施加的扭矩,设置时请用 `this.localTorque = otherVec3` 的方式。 */
localTorque: Vec3;
}
/** !#en
RigidBody is the basic object that make up the physical world, and it can make a node physically affected and react.
!#zh
刚体是组成物理世界的基本对象,可以让一个节点受到物理影响并产生反应。该组件在使用 Builtin 物理引擎时无效。 */
export class RigidBody3D extends Component {
/** !#en
Whether sleep is allowed.
!#zh
是否允许休眠。 */
allowSleep: boolean;
/** !#en
The mass of the rigidbody.
!#zh
刚体的质量。 */
mass: number;
/** !#en
Used to reduce the linear rate of rigidbody. The larger the value, the slower the rigidbody moves.
!#zh
线性阻尼,用于减小刚体的线性速率,值越大物体移动越慢。 */
linearDamping: number;
/** !#en
Used to reduce the rotation rate of rigidbody. The larger the value, the slower the rigidbody rotates.
!#zh
角阻尼,用于减小刚体的旋转速率,值越大刚体旋转越慢。 */
angularDamping: number;
/** !#en
If enabled, the developer controls the displacement and rotation of the rigidbody, not the physics engine.
!#zh
是否由开发者来控制刚体的位移和旋转,而不是受物理引擎的影响。 */
isKinematic: boolean;
/** !#en
If enabled, the rigidbody is affected by gravity.
!#zh
如果开启,刚体会受到重力影响。 */
useGravity: boolean;
/** !#en
If enabled, the rigidbody will be fixed without rotation during a collision.
!#zh
如果开启,发生碰撞时会固定刚体不产生旋转。 */
fixedRotation: boolean;
/** !#en
It can affect the linear velocity change of the rigidbody in each axis. The larger the value, the faster the rigidbody moves.
!#zh
线性因子,可影响刚体在每个轴向的线性速度变化,值越大刚体移动越快。 */
linearFactor: Vec3;
/** !#en
It can affect the rotation speed change of the rigidbody in each axis. The larger the value, the faster the rigidbody rotates.
!#zh
旋转因子,可影响刚体在每个轴向的旋转速度变化,值越大刚体旋转越快。 */
angularFactor: Vec3;
/** !#en
The rigidbody is awake.
!#zh
刚体是否为唤醒的状态。 */
isAwake: boolean;
/** !#en
The rigidbody can enter hibernation.
!#zh
刚体是否为可进入休眠的状态。 */
isSleepy: boolean;
/** !#en
The rigidbody is sleeping.
!#zh
刚体是否为正在休眠的状态。 */
isSleeping: boolean;
/** !#en
Get the rigidbody object inside the physics engine.
!#zh
获得物理引擎内部刚体对象。 */
rigidBody: IRigidBody;
/**
!#en
A force is applied to a rigid body at a point in world space.
!#zh
在世界空间中的某点上对刚体施加一个作用力。
@param force force
@param relativePoint The point of action, relative to the center of the rigid body.
*/
applyForce(force: Vec3, relativePoint: Vec3): void;
/**
!#en
Apply a force on the rigid body at a point in local space.
!#zh
在本地空间中的某点上对刚体施加一个作用力。
@param force force
@param localPoint Point of application
*/
applyLocalForce(force: Vec3, localPoint: Vec3): void;
/**
!#en
Apply an impulse to a rigid body at a point in world space.
!#zh
在世界空间的某点上对刚体施加一个冲量。
@param impulse impulse
@param relativePoint The point of action, relative to the center of the rigid body.
*/
applyImpulse(impulse: Vec3, relativePoint: Vec3): void;
/**
!#en
Apply an impulse to the rigid body at a point in local space.
!#zh
在本地空间的某点上对刚体施加一个冲量。
@param impulse impulse
@param localPoint Point of application
*/
applyLocalImpulse(impulse: Vec3, localPoint: Vec3): void;
/**
!#en
Apply a torque to the rigid body.
!#zh
对刚体施加扭转力。
@param torque torque
*/
applyTorque(torque: Vec3): void;
/**
!#en
Apply a local torque to the rigid body.
!#zh
对刚体施加本地扭转力。
@param torque torque
*/
applyLocalTorque(torque: Vec3): void;
/**
!#en
Awaken the rigid body.
!#zh
唤醒刚体。
*/
wakeUp(): void;
/**
!#en
Dormant rigid body.
!#zh
休眠刚体。
*/
sleep(): void;
/**
!#en
Get linear velocity.
!#zh
获取线性速度。
@param out out
*/
getLinearVelocity(out: Vec3): void;
/**
!#en
Set linear speed.
!#zh
设置线性速度。
@param value value
*/
setLinearVelocity(value: Vec3): void;
/**
!#en
Gets the rotation speed.
!#zh
获取旋转速度。
@param out out
*/
getAngularVelocity(out: Vec3): void;
/**
!#en
Set rotation speed.
!#zh
设置旋转速度。
@param value value
*/
setAngularVelocity(value: Vec3): void;
}
/** !#en
Physics box collider
!#zh
物理盒子碰撞器 */
export class BoxCollider3D extends Collider3D {
/** !#en
Get or set the size of the box, in local space.
!#zh
获取或设置盒的大小。 */
size: Vec3;
boxShape: IBoxShape;
}
/** !#en
The base class of the collider.
!#zh
碰撞器的基类。 */
export class Collider3D extends Component implements EventTarget {
sharedMaterial: PhysicsMaterial;
/** !#en
get or set the collider is trigger, this will be always trigger if using builtin.
!#zh
获取或设置碰撞器是否为触发器。 */
isTrigger: boolean;
/** !#en
get or set the center of the collider, in local space.
!#zh
获取或设置碰撞器的中心点。 */
center: Vec3;
/** !#en
get the collider attached rigidbody, this may be null.
!#zh
获取碰撞器所绑定的刚体组件,可能为 null。 */
attachedRigidbody: RigidBody3D|void;
/** !#en
get collider shape.
!#zh
获取碰撞器形状。 */
shape: IBaseShape;
/**
!#en
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via `emit`.
!#zh
注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。
@param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null.
@example
```js
eventTarget.on('fire', function (event) {
// event is ITriggerEvent or ICollisionEvent
}, node);
```
*/
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
/**
!#en
Removes the listeners previously registered with the same type, callback, target and or useCapture,
if only type is passed as parameter, all listeners registered with that type will be removed.
!#zh
删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。
@param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`.
@param callback The callback to remove.
@param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed.
@example
```js
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
```
*/
off(type: string, callback?: Function, target?: any): void;
/**
!#en
Register an callback of a specific event type on the EventTarget,
the callback will remove itself after the first time it is triggered.
!#zh
注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。
@param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`.
@param callback The callback that will be invoked when the event is dispatched.
The callback is ignored if it is a duplicate (the callbacks are unique).
@param target The target (this object) to invoke the callback, can be null.
@example
```js
eventTarget.once('fire', function (event) {
// event is ITriggerEvent or ICollisionEvent
}, node);
```
*/
once(type: string, callback: (event: ITriggerEvent|ICollisionEvent) => void, target?: any): void;
/**
!#en Checks whether the EventTarget object has any callback registered for a specific type of event.
!#zh 检查事件目标对象是否有为特定类型的事件注册的回调。
@param type The type of event.
*/
hasEventListener(type: string): boolean;
/**
!#en Removes all callbacks previously registered with the same target (passed as parameter).
This is not for removing all listeners in the current event target,
and this is not for removing all listeners the target parameter have registered.
It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
!#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。
这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。
@param target The target to be searched for all related listeners
*/
targetOff(target: any): void;
/**
!#en
Send an event with the event object.
!#zh
通过事件对象派发事件
@param event event
*/
dispatchEvent(event: Event): void;
}
/** !#en
Physics sphere collider
!#zh
物理球碰撞器 */
export class SphereCollider3D extends Collider3D {
/** !#en
Get or set the radius of the sphere.
!#zh
获取或设置球的半径。 */
radius: number;
sphereShape: ISphereShape;
}
/****************************************************
* audioEngine
*****************************************************/
export namespace audioEngine {
/** !#en Audio state.
!#zh 声音播放状态 */
export enum AudioState {
ERROR = 0,
INITIALZING = 0,
PLAYING = 0,
PAUSED = 0,
STOPPED = 0,
}
}
/****************************************************
* debug
*****************************************************/
export namespace debug {
/** !#en Enum for debug modes.
!#zh 调试模式 */
export enum DebugMode {
NONE = 0,
INFO = 0,
WARN = 0,
ERROR = 0,
INFO_FOR_WEB_PAGE = 0,
WARN_FOR_WEB_PAGE = 0,
ERROR_FOR_WEB_PAGE = 0,
}
}
/****************************************************
* Node
*****************************************************/
export namespace Node {
/** !#en Node's local dirty properties flag
!#zh Node 的本地属性 dirty 状态位 */
export enum _LocalDirtyFlag {
POSITION = 0,
SCALE = 0,
ROTATION = 0,
SKEW = 0,
TRS = 0,
RS = 0,
TRS = 0,
PHYSICS_POSITION = 0,
PHYSICS_SCALE = 0,
PHYSICS_ROTATION = 0,
PHYSICS_TRS = 0,
PHYSICS_RS = 0,
ALL_POSITION = 0,
ALL_SCALE = 0,
ALL_ROTATION = 0,
ALL_TRS = 0,
ALL = 0,
}
}
/****************************************************
* Node
*****************************************************/
export namespace Node {
/** !#en The event type supported by Node
!#zh Node 支持的事件类型 */
export class EventType {
/** !#en The event type for touch start event, you can use its value directly: 'touchstart'
!#zh 当手指触摸到屏幕时。 */
static TOUCH_START: string;
/** !#en The event type for touch move event, you can use its value directly: 'touchmove'
!#zh 当手指在屏幕上移动时。 */
static TOUCH_MOVE: string;
/** !#en The event type for touch end event, you can use its value directly: 'touchend'
!#zh 当手指在目标节点区域内离开屏幕时。 */
static TOUCH_END: string;
/** !#en The event type for touch end event, you can use its value directly: 'touchcancel'
!#zh 当手指在目标节点区域外离开屏幕时。 */
static TOUCH_CANCEL: string;
/** !#en The event type for mouse down events, you can use its value directly: 'mousedown'
!#zh 当鼠标按下时触发一次。 */
static MOUSE_DOWN: string;
/** !#en The event type for mouse move events, you can use its value directly: 'mousemove'
!#zh 当鼠标在目标节点在目标节点区域中移动时,不论是否按下。 */
static MOUSE_MOVE: string;
/** !#en The event type for mouse enter target events, you can use its value directly: 'mouseenter'
!#zh 当鼠标移入目标节点区域时,不论是否按下。 */
static MOUSE_ENTER: string;
/** !#en The event type for mouse leave target events, you can use its value directly: 'mouseleave'
!#zh 当鼠标移出目标节点区域时,不论是否按下。 */
static MOUSE_LEAVE: string;
/** !#en The event type for mouse up events, you can use its value directly: 'mouseup'
!#zh 当鼠标从按下状态松开时触发一次。 */
static MOUSE_UP: string;
/** !#en The event type for mouse wheel events, you can use its value directly: 'mousewheel'
!#zh 当鼠标滚轮滚动时。 */
static MOUSE_WHEEL: string;
/** !#en The event type for position change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点位置改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static POSITION_CHANGED: string;
/** !#en The event type for rotation change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点旋转改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static ROTATION_CHANGED: string;
/** !#en The event type for scale change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点缩放改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static SCALE_CHANGED: string;
/** !#en The event type for size change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点尺寸改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static SIZE_CHANGED: string;
/** !#en The event type for anchor point change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点锚点改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static ANCHOR_CHANGED: string;
/** !#en The event type for color change events.
Performance note, this event will be triggered every time corresponding properties being changed,
if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.
!#zh 当节点颜色改变时触发的事件。
性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */
static COLOR_CHANGED: string;
/** !#en The event type for new child added events.
!#zh 当新的子节点被添加时触发的事件。 */
static CHILD_ADDED: string;
/** !#en The event type for child removed events.
!#zh 当子节点被移除时触发的事件。 */
static CHILD_REMOVED: string;
/** !#en The event type for children reorder events.
!#zh 当子节点顺序改变时触发的事件。 */
static CHILD_REORDER: string;
/** !#en The event type for node group changed events.
!#zh 当节点归属群组发生变化时触发的事件。 */
static GROUP_CHANGED: string;
/** !#en The event type for node's sibling order changed.
!#zh 当节点在兄弟节点中的顺序发生变化时触发的事件。 */
static SIBLING_ORDER_CHANGED: string;
}
}
/****************************************************
* ParticleSystem
*****************************************************/
export namespace ParticleSystem {
/** !#en Enum for emitter modes
!#zh 发射模式 */
export enum EmitterMode {
GRAVITY = 0,
RADIUS = 0,
}
}
/****************************************************
* ParticleSystem
*****************************************************/
export namespace ParticleSystem {
/** !#en Enum for particles movement type.
!#zh 粒子位置类型 */
export enum PositionType {
FREE = 0,
RELATIVE = 0,
GROUPED = 0,
}
}
/****************************************************
* WebView
*****************************************************/
export namespace WebView {
/** !#en WebView event type
!#zh 网页视图事件类型 */
export enum EventType {
LOADED = 0,
LOADING = 0,
ERROR = 0,
}
}
/****************************************************
* VideoPlayer
*****************************************************/
export namespace VideoPlayer {
/** !#en Video event type
!#zh 视频事件类型 */
export enum EventType {
PLAYING = 0,
PAUSED = 0,
STOPPED = 0,
COMPLETED = 0,
META_LOADED = 0,
CLICKED = 0,
READY_TO_PLAY = 0,
}
}
/****************************************************
* VideoPlayer
*****************************************************/
export namespace VideoPlayer {
/** !#en Enum for video resouce type type.
!#zh 视频来源 */
export enum ResourceType {
REMOTE = 0,
LOCAL = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** !#en The orientation of tiled map.
!#zh Tiled Map 地图方向。 */
export enum Orientation {
ORTHO = 0,
HEX = 0,
ISO = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** The property type of tiled map. */
export enum Property {
NONE = 0,
MAP = 0,
LAYER = 0,
OBJECTGROUP = 0,
OBJECT = 0,
TILE = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** The tile flags of tiled map. */
export enum TileFlag {
HORIZONTAL = 0,
VERTICAL = 0,
DIAGONAL = 0,
FLIPPED_ALL = 0,
FLIPPED_MASK = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** !#en The stagger axis of Hex tiled map.
!#zh 六边形地图的 stagger axis 值 */
export enum StaggerAxis {
STAGGERAXIS_X = 0,
STAGGERAXIS_Y = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** !#en The render order of tiled map.
!#zh 地图的渲染顺序 */
export enum RenderOrder {
STAGGERINDEX_ODD = 0,
STAGGERINDEX_EVEN = 0,
RightDown = 0,
RightUp = 0,
LeftDown = 0,
LeftUp = 0,
}
}
/****************************************************
* TiledMap
*****************************************************/
export namespace TiledMap {
/** !#en TiledMap Object Type
!#zh 地图物体类型 */
export enum TMXObjectType {
RECT = 0,
ELLIPSE = 0,
POLYGON = 0,
POLYLINE = 0,
IMAGE = 0,
TEXT = 0,
}
}
/****************************************************
* Prefab
*****************************************************/
export namespace Prefab {
/** !#zh
Prefab 创建实例所用的优化策略,配合 {{#crossLink "Prefab.optimizationPolicy"}}cc.Prefab#optimizationPolicy{{/crossLink}} 使用。
!#en
An enumeration used with the {{#crossLink "Prefab.optimizationPolicy"}}cc.Prefab#optimizationPolicy{{/crossLink}}
to specify how to optimize the instantiate operation. */
export enum OptimizationPolicy {
AUTO = 0,
SINGLE_INSTANCE = 0,
MULTI_INSTANCE = 0,
}
}
/****************************************************
* RenderTexture
*****************************************************/
export namespace RenderTexture {
/** !#en The depth buffer and stencil buffer format for RenderTexture.
!#zh RenderTexture 的深度缓冲以及模板缓冲格式。 */
export enum DepthStencilFormat {
RB_FMT_D24S8 = 0,
RB_FMT_S8 = 0,
RB_FMT_D16 = 0,
}
}
/****************************************************
* Texture2D
*****************************************************/
export namespace Texture2D {
/** The texture pixel format, default value is RGBA8888,
you should note that textures loaded by normal image files (png, jpg) can only support RGBA8888 format,
other formats are supported by compressed file types or raw data. */
export enum PixelFormat {
RGB565 = 0,
RGB5A1 = 0,
RGBA4444 = 0,
RGB888 = 0,
RGBA8888 = 0,
RGBA32F = 0,
A8 = 0,
I8 = 0,
AI88 = 0,
RGB_PVRTC_2BPPV1 = 0,
RGBA_PVRTC_2BPPV1 = 0,
RGB_A_PVRTC_2BPPV1 = 0,
RGB_PVRTC_4BPPV1 = 0,
RGBA_PVRTC_4BPPV1 = 0,
RGB_A_PVRTC_4BPPV1 = 0,
RGB_ETC1 = 0,
RGBA_ETC1 = 0,
RGB_ETC2 = 0,
RGBA_ETC2 = 0,
}
}
/****************************************************
* Texture2D
*****************************************************/
export namespace Texture2D {
/** The texture wrap mode */
export enum WrapMode {
REPEAT = 0,
CLAMP_TO_EDGE = 0,
MIRRORED_REPEAT = 0,
}
}
/****************************************************
* Texture2D
*****************************************************/
export namespace Texture2D {
/** The texture filter mode */
export enum Filter {
LINEAR = 0,
NEAREST = 0,
}
}
/****************************************************
* Light
*****************************************************/
export namespace Light {
/** !#en The light source type
!#zh 光源类型 */
export enum Type {
DIRECTIONAL = 0,
POINT = 0,
SPOT = 0,
AMBIENT = 0,
}
}
/****************************************************
* Light
*****************************************************/
export namespace Light {
/** !#en The shadow type
!#zh 阴影类型 */
export enum ShadowType {
NONE = 0,
HARD = 0,
SOFT_PCF3X3 = 0,
SOFT_PCF5X5 = 0,
}
}
/****************************************************
* Camera
*****************************************************/
export namespace Camera {
/** !#en Values for Camera.clearFlags, determining what to clear when rendering a Camera.
!#zh 摄像机清除标记位,决定摄像机渲染时会清除哪些状态 */
export enum ClearFlags {
COLOR = 0,
DEPTH = 0,
STENCIL = 0,
}
}
/****************************************************
* Event
*****************************************************/
export namespace Event {
/** !#en The Custom event
!#zh 自定义事件 */
export class EventCustom extends Event {
/**
@param type The name of the event (case-sensitive), e.g. "click", "fire", or "submit"
@param bubbles A boolean indicating whether the event bubbles up through the tree or not
*/
constructor(type: string, bubbles: boolean);
/** !#en A reference to the detailed data of the event
!#zh 事件的详细数据 */
detail: any;
/**
!#en Sets user data
!#zh 设置用户数据
@param data data
*/
setUserData(data: any): void;
/**
!#en Gets user data
!#zh 获取用户数据
*/
getUserData(): any;
/**
!#en Gets event name
!#zh 获取事件名称
*/
getEventName(): string;
}
}
/****************************************************
* SystemEvent
*****************************************************/
export namespace SystemEvent {
/** !#en The event type supported by SystemEvent
!#zh SystemEvent 支持的事件类型 */
export class EventType {
/** !#en The event type for press the key down event, you can use its value directly: 'keydown'
!#zh 当按下按键时触发的事件 */
static KEY_DOWN: string;
/** !#en The event type for press the key up event, you can use its value directly: 'keyup'
!#zh 当松开按键时触发的事件 */
static KEY_UP: string;
/** !#en The event type for press the devicemotion event, you can use its value directly: 'devicemotion'
!#zh 重力感应 */
static DEVICEMOTION: string;
}
}
/****************************************************
* Collider
*****************************************************/
export namespace Collider {
/** !#en Defines a Box Collider .
!#zh 用来定义包围盒碰撞体 */
export class Box {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Box size
!#zh 包围盒大小 */
size: Size;
}
}
/****************************************************
* Collider
*****************************************************/
export namespace Collider {
/** !#en Defines a Circle Collider .
!#zh 用来定义圆形碰撞体 */
export class Circle {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Circle radius
!#zh 圆形半径 */
radius: number;
}
}
/****************************************************
* Collider
*****************************************************/
export namespace Collider {
/** !#en Defines a Polygon Collider .
!#zh 用来定义多边形碰撞体 */
export class Polygon {
/** !#en Position offset
!#zh 位置偏移量 */
offset: Vec2;
/** !#en Polygon points
!#zh 多边形顶点数组 */
points: Vec2[];
}
}
/****************************************************
* Event
*****************************************************/
export namespace Event {
/** !#en The mouse event
!#zh 鼠标事件类型 */
export class EventMouse extends Event {
/**
!#en Sets scroll data.
!#zh 设置鼠标的滚动数据。
@param scrollX scrollX
@param scrollY scrollY
*/
setScrollData(scrollX: number, scrollY: number): void;
/**
!#en Returns the x axis scroll value.
!#zh 获取鼠标滚动的X轴距离,只有滚动时才有效。
*/
getScrollX(): number;
/**
!#en Returns the y axis scroll value.
!#zh 获取滚轮滚动的 Y 轴距离,只有滚动时才有效。
*/
getScrollY(): number;
/**
!#en Sets cursor location.
!#zh 设置当前鼠标位置。
@param x x
@param y y
*/
setLocation(x: number, y: number): void;
/**
!#en Returns cursor location.
!#zh 获取鼠标位置对象,对象包含 x 和 y 属性。
*/
getLocation(): Vec2;
/**
!#en Returns the current cursor location in screen coordinates.
!#zh 获取当前事件在游戏窗口内的坐标位置对象,对象包含 x 和 y 属性。
*/
getLocationInView(): Vec2;
/**
!#en Returns the previous touch location.
!#zh 获取鼠标点击在上一次事件时的位置对象,对象包含 x 和 y 属性。
*/
getPreviousLocation(): Vec2;
/**
!#en Returns the delta distance from the previous location to current location.
!#zh 获取鼠标距离上一次事件移动的距离对象,对象包含 x 和 y 属性。
*/
getDelta(): Vec2;
/**
!#en Returns the X axis delta distance from the previous location to current location.
!#zh 获取鼠标距离上一次事件移动的 X 轴距离。
*/
getDeltaX(): number;
/**
!#en Returns the Y axis delta distance from the previous location to current location.
!#zh 获取鼠标距离上一次事件移动的 Y 轴距离。
*/
getDeltaY(): number;
/**
!#en Sets mouse button.
!#zh 设置鼠标按键。
@param button button
*/
setButton(button: number): void;
/**
!#en Returns mouse button.
!#zh 获取鼠标按键。
*/
getButton(): number;
/**
!#en Returns location X axis data.
!#zh 获取鼠标当前位置 X 轴。
*/
getLocationX(): number;
/**
!#en Returns location Y axis data.
!#zh 获取鼠标当前位置 Y 轴。
*/
getLocationY(): number;
/** !#en The none event code of mouse event.
!#zh 无。 */
static NONE: number;
/** !#en The event type code of mouse down event.
!#zh 鼠标按下事件。 */
static DOWN: number;
/** !#en The event type code of mouse up event.
!#zh 鼠标按下后释放事件。 */
static UP: number;
/** !#en The event type code of mouse move event.
!#zh 鼠标移动事件。 */
static MOVE: number;
/** !#en The event type code of mouse scroll event.
!#zh 鼠标滚轮事件。 */
static SCROLL: number;
/** !#en The tag of Mouse left button.
!#zh 鼠标左键的标签。 */
static BUTTON_LEFT: number;
/** !#en The tag of Mouse right button (The right button number is 2 on browser).
!#zh 鼠标右键的标签。 */
static BUTTON_RIGHT: number;
/** !#en The tag of Mouse middle button (The right button number is 1 on browser).
!#zh 鼠标中键的标签。 */
static BUTTON_MIDDLE: number;
/** !#en The tag of Mouse button 4.
!#zh 鼠标按键 4 的标签。 */
static BUTTON_4: number;
/** !#en The tag of Mouse button 5.
!#zh 鼠标按键 5 的标签。 */
static BUTTON_5: number;
/** !#en The tag of Mouse button 6.
!#zh 鼠标按键 6 的标签。 */
static BUTTON_6: number;
/** !#en The tag of Mouse button 7.
!#zh 鼠标按键 7 的标签。 */
static BUTTON_7: number;
/** !#en The tag of Mouse button 8.
!#zh 鼠标按键 8 的标签。 */
static BUTTON_8: number;
}
}
/****************************************************
* Event
*****************************************************/
export namespace Event {
/** !#en The touch event
!#zh 触摸事件 */
export class EventTouch extends Event {
/**
@param touchArr The array of the touches
@param bubbles A boolean indicating whether the event bubbles up through the tree or not
*/
constructor(touchArr: any[], bubbles: boolean);
/** !#en The current touch object
!#zh 当前触点对象 */
touch: Touch;
/**
!#en Returns event code.
!#zh 获取事件类型。
*/
getEventCode(): number;
/**
!#en Returns touches of event.
!#zh 获取触摸点的列表。
*/
getTouches(): any[];
/**
!#en Sets touch location.
!#zh 设置当前触点位置
@param x x
@param y y
*/
setLocation(x: number, y: number): void;
/**
!#en Returns touch location.
!#zh 获取触点位置。
*/
getLocation(): Vec2;
/**
!#en Returns the current touch location in screen coordinates.
!#zh 获取当前触点在游戏窗口中的位置。
*/
getLocationInView(): Vec2;
/**
!#en Returns the previous touch location.
!#zh 获取触点在上一次事件时的位置对象,对象包含 x 和 y 属性。
*/
getPreviousLocation(): Vec2;
/**
!#en Returns the start touch location.
!#zh 获取触点落下时的位置对象,对象包含 x 和 y 属性。
*/
getStartLocation(): Vec2;
/**
!#en Returns the id of cc.Touch.
!#zh 触点的标识 ID,可以用来在多点触摸中跟踪触点。
*/
getID(): number;
/**
!#en Returns the delta distance from the previous location to current location.
!#zh 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性。
*/
getDelta(): Vec2;
/**
!#en Returns the X axis delta distance from the previous location to current location.
!#zh 获取触点距离上一次事件移动的 x 轴距离。
*/
getDeltaX(): number;
/**
!#en Returns the Y axis delta distance from the previous location to current location.
!#zh 获取触点距离上一次事件移动的 y 轴距离。
*/
getDeltaY(): number;
/**
!#en Returns location X axis data.
!#zh 获取当前触点 X 轴位置。
*/
getLocationX(): number;
/**
!#en Returns location Y axis data.
!#zh 获取当前触点 Y 轴位置。
*/
getLocationY(): number;
}
}
/****************************************************
* Event
*****************************************************/
export namespace Event {
/** !#en The acceleration event
!#zh 加速度事件 */
export class EventAcceleration extends Event {
}
}
/****************************************************
* Event
*****************************************************/
export namespace Event {
/** !#en The keyboard event
!#zh 键盘事件 */
export class EventKeyboard extends Event {
/** !#en
The keyCode read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key.
This is usually the decimal ASCII (RFC 20) or Windows 1252 code corresponding to the key.
If the key can't be identified, this value is 0.
!#zh
keyCode 是只读属性它表示一个系统和依赖于实现的数字代码,可以识别按键的未修改值。
这通常是十进制 ASCII (RFC20) 或者 Windows 1252 代码,所对应的密钥。
如果无法识别该键,则该值为 0。 */
keyCode: number;
}
}
/****************************************************
* Animation
*****************************************************/
export namespace Animation {
/** !#en The event type supported by Animation
!#zh Animation 支持的事件类型 */
export class EventType {
/** !#en Emit when begin playing animation
!#zh 开始播放时触发 */
static PLAY: string;
/** !#en Emit when stop playing animation
!#zh 停止播放时触发 */
static STOP: string;
/** !#en Emit when pause animation
!#zh 暂停播放时触发 */
static PAUSE: string;
/** !#en Emit when resume animation
!#zh 恢复播放时触发 */
static RESUME: string;
/** !#en If animation repeat count is larger than 1, emit when animation play to the last frame
!#zh 假如动画循环次数大于 1,当动画播放到最后一帧时触发 */
static LASTFRAME: string;
/** !#en Emit when finish playing animation
!#zh 动画播放完成时触发 */
static FINISHED: string;
}
}
/****************************************************
* Button
*****************************************************/
export namespace Button {
/** !#en Enum for transition type.
!#zh 过渡类型 */
export enum Transition {
NONE = 0,
COLOR = 0,
SPRITE = 0,
SCALE = 0,
}
}
/****************************************************
* Component
*****************************************************/
export namespace Component {
/** !#en
Component will register a event to target component's handler.
And it will trigger the handler when a certain event occurs.
!@zh
“EventHandler” 类用来设置场景中的事件回调,
该类允许用户设置回调目标节点,目标组件名,组件方法名,
并可通过 emit 方法调用目标函数。 */
export class EventHandler {
/** !#en the node that contains target callback, such as the node example script belongs to
!#zh 事件响应函数所在节点 ,比如例子中脚本归属的节点本身 */
target: Node;
/** !#en name of the component(script) that contains target callback, such as the name 'MainMenu' of script in example
!#zh 事件响应函数所在组件名(脚本名), 比如例子中的脚本名 'MainMenu' */
component: string;
/** !#en Event handler, such as function's name 'onClick' in example
!#zh 响应事件函数名,比如例子中的 'onClick' */
handler: string;
/** !#en Custom Event Data, such as 'eventType' in example
!#zh 自定义事件数据,比如例子中的 eventType */
customEventData: string;
/**
@param events events
@param params params
*/
static emitEvents(events: EventHandler[], ...params: any[]): void;
/**
!#en Emit event with params
!#zh 触发目标组件上的指定 handler 函数,该参数是回调函数的参数值(可不填)。
@param params params
@example
```js
// Call Function
var eventHandler = new cc.Component.EventHandler();
eventHandler.target = newTarget;
eventHandler.component = "MainMenu";
eventHandler.handler = "OnClick"
eventHandler.emit(["param1", "param2", ....]);
```
*/
emit(params: any[]): void;
}
}
/****************************************************
* Label
*****************************************************/
export namespace Label {
/** !#en Enum for text alignment.
!#zh 文本横向对齐类型 */
export enum HorizontalAlign {
LEFT = 0,
CENTER = 0,
RIGHT = 0,
}
}
/****************************************************
* Label
*****************************************************/
export namespace Label {
/** !#en Enum for vertical text alignment.
!#zh 文本垂直对齐类型 */
export enum VerticalAlign {
TOP = 0,
CENTER = 0,
BOTTOM = 0,
}
}
/****************************************************
* Label
*****************************************************/
export namespace Label {
/** !#en Enum for Overflow.
!#zh Overflow 类型 */
export enum Overflow {
NONE = 0,
CLAMP = 0,
SHRINK = 0,
RESIZE_HEIGHT = 0,
}
}
/****************************************************
* Label
*****************************************************/
export namespace Label {
/** !#en Enum for font type.
!#zh Type 类型 */
export enum Type {
TTF = 0,
BMFont = 0,
SystemFont = 0,
}
}
/****************************************************
* Label
*****************************************************/
export namespace Label {
/** !#en Enum for cache mode.
!#zh CacheMode 类型 */
export enum CacheMode {
NONE = 0,
BITMAP = 0,
CHAR = 0,
}
}
/****************************************************
* Layout
*****************************************************/
export namespace Layout {
/** !#en Enum for Layout type
!#zh 布局类型 */
export enum Type {
NONE = 0,
HORIZONTAL = 0,
VERTICAL = 0,
GRID = 0,
}
}
/****************************************************
* Layout
*****************************************************/
export namespace Layout {
/** !#en Enum for Layout Resize Mode
!#zh 缩放模式 */
export enum ResizeMode {
NONE = 0,
CONTAINER = 0,
CHILDREN = 0,
}
}
/****************************************************
* Layout
*****************************************************/
export namespace Layout {
/** !#en Enum for Grid Layout start axis direction.
The items in grid layout will be arranged in each axis at first.;
!#zh 布局轴向,只用于 GRID 布局。 */
export enum AxisDirection {
HORIZONTAL = 0,
VERTICAL = 0,
}
}
/****************************************************
* Layout
*****************************************************/
export namespace Layout {
/** !#en Enum for vertical layout direction.
Used in Grid Layout together with AxisDirection is VERTICAL
!#zh 垂直方向布局方式 */
export enum VerticalDirection {
BOTTOM_TO_TOP = 0,
TOP_TO_BOTTOM = 0,
}
}
/****************************************************
* Layout
*****************************************************/
export namespace Layout {
/** !#en Enum for horizontal layout direction.
Used in Grid Layout together with AxisDirection is HORIZONTAL
!#zh 水平方向布局方式 */
export enum HorizontalDirection {
LEFT_TO_RIGHT = 0,
RIGHT_TO_LEFT = 0,
}
}
/****************************************************
* Mask
*****************************************************/
export namespace Mask {
/** !#en the type for mask.
!#zh 遮罩组件类型 */
export enum Type {
RECT = 0,
ELLIPSE = 0,
IMAGE_STENCIL = 0,
}
}
/****************************************************
* PageView
*****************************************************/
export namespace PageView {
/** !#en The Page View Size Mode
!#zh 页面视图每个页面统一的大小类型 */
export enum SizeMode {
Unified = 0,
Free = 0,
}
}
/****************************************************
* PageView
*****************************************************/
export namespace PageView {
/** !#en The Page View Direction
!#zh 页面视图滚动类型 */
export enum Direction {
Horizontal = 0,
Vertical = 0,
}
}
/****************************************************
* PageView
*****************************************************/
export namespace PageView {
/** !#en Enum for ScrollView event type.
!#zh 滚动视图事件类型 */
export enum EventType {
PAGE_TURNING = 0,
}
}
/****************************************************
* PageViewIndicator
*****************************************************/
export namespace PageViewIndicator {
/** !#en Enum for PageView Indicator direction
!#zh 页面视图指示器的摆放方向 */
export enum Direction {
HORIZONTAL = 0,
VERTICAL = 0,
}
}
/****************************************************
* ProgressBar
*****************************************************/
export namespace ProgressBar {
/** !#en Enum for ProgressBar mode
!#zh 进度条模式 */
export enum Mode {
HORIZONTAL = 0,
VERTICAL = 0,
FILLED = 0,
}
}
/****************************************************
* Scrollbar
*****************************************************/
export namespace Scrollbar {
/** Enum for Scrollbar direction */
export enum Direction {
HORIZONTAL = 0,
VERTICAL = 0,
}
}
/****************************************************
* ScrollView
*****************************************************/
export namespace ScrollView {
/** !#en Enum for ScrollView event type.
!#zh 滚动视图事件类型 */
export enum EventType {
SCROLL_TO_TOP = 0,
SCROLL_TO_BOTTOM = 0,
SCROLL_TO_LEFT = 0,
SCROLL_TO_RIGHT = 0,
SCROLLING = 0,
BOUNCE_TOP = 0,
BOUNCE_BOTTOM = 0,
BOUNCE_LEFT = 0,
BOUNCE_RIGHT = 0,
SCROLL_ENDED = 0,
TOUCH_UP = 0,
AUTOSCROLL_ENDED_WITH_THRESHOLD = 0,
SCROLL_BEGAN = 0,
}
}
/****************************************************
* Slider
*****************************************************/
export namespace Slider {
/** !#en The Slider Direction
!#zh 滑动器方向 */
export enum Direction {
Horizontal = 0,
Vertical = 0,
}
}
/****************************************************
* Sprite
*****************************************************/
export namespace Sprite {
/** !#en Enum for sprite type.
!#zh Sprite 类型 */
export enum Type {
SIMPLE = 0,
SLICED = 0,
TILED = 0,
FILLED = 0,
MESH = 0,
}
}
/****************************************************
* Sprite
*****************************************************/
export namespace Sprite {
/** !#en Enum for fill type.
!#zh 填充类型 */
export enum FillType {
HORIZONTAL = 0,
VERTICAL = 0,
RADIAL = 0,
}
}
/****************************************************
* Sprite
*****************************************************/
export namespace Sprite {
/** !#en Sprite Size can track trimmed size, raw size or none.
!#zh 精灵尺寸调整模式 */
export enum SizeMode {
CUSTOM = 0,
TRIMMED = 0,
RAW = 0,
}
}
/****************************************************
* Sprite
*****************************************************/
export namespace Sprite {
/** !#en Sprite state can choice the normal or grayscale.
!#zh 精灵颜色通道模式。 */
export enum State {
NORMAL = 0,
GRAY = 0,
}
}
/****************************************************
* Widget
*****************************************************/
export namespace Widget {
/** !#en Enum for Widget's alignment mode, indicating when the widget should refresh.
!#zh Widget 的对齐模式,表示 Widget 应该何时刷新。 */
export enum AlignMode {
ONCE = 0,
ON_WINDOW_RESIZE = 0,
ALWAYS = 0,
}
}
/****************************************************
* Graphics
*****************************************************/
export namespace Graphics {
/** !#en Enum for LineCap.
!#zh 线段末端属性 */
export enum LineCap {
BUTT = 0,
ROUND = 0,
SQUARE = 0,
}
}
/****************************************************
* Graphics
*****************************************************/
export namespace Graphics {
/** !#en Enum for LineJoin.
!#zh 线段拐角属性 */
export enum LineJoin {
BEVEL = 0,
ROUND = 0,
MITER = 0,
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** Aabb */
export class Aabb {
/**
create a new aabb
@param px X coordinates for aabb's original point
@param py Y coordinates for aabb's original point
@param pz Z coordinates for aabb's original point
@param w the half of aabb width
@param h the half of aabb height
@param l the half of aabb length
*/
create(px: number, py: number, pz: number, w: number, h: number, l: number): Aabb;
/**
clone a new aabb
@param a the source aabb
*/
clone(a: Aabb): Aabb;
/**
copy the values from one aabb to another
@param out the receiving aabb
@param a the source aabb
*/
copy(out: Aabb, a: Aabb): Aabb;
/**
create a new aabb from two corner points
@param out the receiving aabb
@param minPos lower corner position of the aabb
@param maxPos upper corner position of the aabb
*/
fromPoints(out: Aabb, minPos: Vec3, maxPos: Vec3): Aabb;
/**
Set the components of a aabb to the given values
@param out the receiving aabb
@param px X coordinates for aabb's original point
@param py Y coordinates for aabb's original point
@param pz Z coordinates for aabb's original point
@param w the half of aabb width
@param h the half of aabb height
@param l the half of aabb length
*/
set(out: Aabb, px: number, py: number, pz: number, w: number, h: number, l: number): Aabb;
center: Vec3;
halfExtents: Vec3;
_type: number;
/**
Get the bounding points of this shape
@param minPos minPos
@param maxPos maxPos
*/
getBoundary(minPos: Vec3, maxPos: Vec3): void;
/**
Transform this shape
@param m the transform matrix
@param pos the position part of the transform
@param rot the rotation part of the transform
@param scale the scale part of the transform
@param out the target shape
*/
transform(m: Mat4, pos: Vec3, rot: Quat, scale: Vec3, out?: Aabb): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en Shape type. */
export enum enums {
SHAPE_RAY = 0,
SHAPE_LINE = 0,
SHAPE_SPHERE = 0,
SHAPE_AABB = 0,
SHAPE_OBB = 0,
SHAPE_PLANE = 0,
SHAPE_TRIANGLE = 0,
SHAPE_FRUSTUM = 0,
SHAPE_FRUSTUM_ACCURATE = 0,
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en frustum
!#zh 平截头体 */
export class Frustum {
/** Set whether to use accurate intersection testing function on this frustum */
accurate: boolean;
/**
create a new frustum
*/
static create(): Frustum;
/**
Clone a frustum
@param f f
*/
static clone(f: Frustum): Frustum;
/**
Copy the values from one frustum to another
@param out out
@param f f
*/
copy(out: Frustum, f: Frustum): Frustum;
planes: geomUtils.Plane[];
planes: Vec3[];
/**
!#en Update the frustum information according to the given transform matrix.
Note that the resulting planes are not normalized under normal mode.
@param m the view-projection matrix
@param inv the inverse view-projection matrix
*/
update(m: Mat4, inv: Mat4): void;
/**
!#en transform by matrix
@param mat mat
*/
transform(mat: Mat4): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** undefined */
export class intersect {
/**
!#en
Check whether ray intersect with nodes
!#zh
检测射线是否与物体有交集
@param root If root is null, then traversal nodes from scene node
@param worldRay worldRay
@param handler handler
@param filter filter
*/
static ray_cast(root: Node, worldRay: geomUtils.Ray, handler: Function, filter: Function): any[];
/**
!#en ray-plane intersect<br/>
!#zh 射线与平面的相交性检测。
@param ray ray
@param plane plane
*/
static ray_plane(ray: geomUtils.Ray, plane: geomUtils.Plane): number;
/**
!#en line-plane intersect<br/>
!#zh 线段与平面的相交性检测。
@param line line
@param plane plane
*/
static line_plane(line: geomUtils.Line, plane: geomUtils.Plane): number;
/**
!#en ray-triangle intersect<br/>
!#zh 射线与三角形的相交性检测。
@param ray ray
@param triangle triangle
@param doubleSided doubleSided
*/
static ray_triangle(ray: geomUtils.Ray, triangle: geomUtils.Triangle, doubleSided: boolean): number;
/**
!#en line-triangle intersect<br/>
!#zh 线段与三角形的相交性检测。
@param line line
@param triangle triangle
@param outPt optional, The intersection point
*/
static line_triangle(line: geomUtils.Line, triangle: geomUtils.Triangle, outPt: Vec3): number;
/**
!#en line-quad intersect<br/>
!#zh 线段与四边形的相交性检测。
@param p A point on a line segment
@param q Another point on the line segment
@param a Quadrilateral point a
@param b Quadrilateral point b
@param c Quadrilateral point c
@param d Quadrilateral point d
@param outPt optional, The intersection point
*/
static line_quad(p: Vec3, q: Vec3, a: Vec3, b: Vec3, c: Vec3, d: Vec3, outPt: Vec3): number;
/**
!#en ray-sphere intersect<br/>
!#zh 射线和球的相交性检测。
@param ray ray
@param sphere sphere
*/
static ray_sphere(ray: geomUtils.Ray, sphere: geomUtils.Sphere): number;
/**
!#en ray-aabb intersect<br/>
!#zh 射线和轴对齐包围盒的相交性检测。
@param ray ray
@param aabb Align the axis around the box
*/
static ray_aabb(ray: geomUtils.Ray, aabb: Aabb): number;
/**
!#en ray-obb intersect<br/>
!#zh 射线和方向包围盒的相交性检测。
@param ray ray
@param obb Direction box
*/
static ray_obb(ray: geomUtils.Ray, obb: geomUtils.Obb): number;
/**
!#en aabb-aabb intersect<br/>
!#zh 轴对齐包围盒和轴对齐包围盒的相交性检测。
@param aabb1 Axis alignment surrounds box 1
@param aabb2 Axis alignment surrounds box 2
*/
static aabb_aabb(aabb1: Aabb, aabb2: Aabb): number;
/**
!#en aabb-obb intersect<br/>
!#zh 轴对齐包围盒和方向包围盒的相交性检测。
@param aabb Align the axis around the box
@param obb Direction box
*/
static aabb_obb(aabb: Aabb, obb: geomUtils.Obb): number;
/**
!#en aabb-plane intersect<br/>
!#zh 轴对齐包围盒和平面的相交性检测。
@param aabb Align the axis around the box
@param plane plane
*/
static aabb_plane(aabb: Aabb, plane: geomUtils.Plane): number;
/**
!#en aabb-frustum intersect, faster but has false positive corner cases<br/>
!#zh 轴对齐包围盒和锥台相交性检测,速度快,但有错误情况。
@param aabb Align the axis around the box
@param frustum frustum
*/
static aabb_frustum(aabb: Aabb, frustum: Frustum): number;
/**
!#en aabb-frustum intersect, handles most of the false positives correctly<br/>
!#zh 轴对齐包围盒和锥台相交性检测,正确处理大多数错误情况。
@param aabb Align the axis around the box
@param frustum frustum
*/
static aabb_frustum_accurate(aabb: Aabb, frustum: Frustum): number;
/**
!#en obb-point intersect<br/>
!#zh 方向包围盒和点的相交性检测。
@param obb Direction box
@param point point
*/
static obb_point(obb: geomUtils.Obb, point: geomUtils.Vec3): boolean;
/**
!#en obb-plane intersect<br/>
!#zh 方向包围盒和平面的相交性检测。
@param obb Direction box
@param plane plane
*/
static obb_plane(obb: geomUtils.Obb, plane: geomUtils.Plane): number;
/**
!#en obb-frustum intersect, faster but has false positive corner cases<br/>
!#zh 方向包围盒和锥台相交性检测,速度快,但有错误情况。
@param obb Direction box
@param frustum frustum
*/
static obb_frustum(obb: geomUtils.Obb, frustum: Frustum): number;
/**
!#en obb-frustum intersect, handles most of the false positives correctly<br/>
!#zh 方向包围盒和锥台相交性检测,正确处理大多数错误情况。
@param obb Direction box
@param frustum frustum
*/
static obb_frustum_accurate(obb: geomUtils.Obb, frustum: Frustum): number;
/**
!#en obb-obb intersect<br/>
!#zh 方向包围盒和方向包围盒的相交性检测。
@param obb1 Direction box1
@param obb2 Direction box2
*/
static obb_obb(obb1: geomUtils.Obb, obb2: geomUtils.Obb): number;
/**
!#en phere-plane intersect, not necessarily faster than obb-plane<br/>
due to the length calculation of the plane normal to factor out<br/>
the unnomalized plane distance<br/>
!#zh 球与平面的相交性检测。
@param sphere sphere
@param plane plane
*/
static sphere_plane(sphere: geomUtils.Sphere, plane: geomUtils.Plane): number;
/**
!#en sphere-frustum intersect, faster but has false positive corner cases<br/>
!#zh 球和锥台的相交性检测,速度快,但有错误情况。
@param sphere sphere
@param frustum frustum
*/
static sphere_frustum(sphere: geomUtils.Sphere, frustum: Frustum): number;
/**
!#en sphere-frustum intersect, handles the false positives correctly<br/>
!#zh 球和锥台的相交性检测,正确处理大多数错误情况。
@param sphere sphere
@param frustum frustum
*/
static sphere_frustum_accurate(sphere: geomUtils.Sphere, frustum: Frustum): number;
/**
!#en sphere-sphere intersect<br/>
!#zh 球和球的相交性检测。
@param sphere0 sphere0
@param sphere1 sphere1
*/
static sphere_sphere(sphere0: geomUtils.Sphere, sphere1: geomUtils.Sphere): boolean;
/**
!#en sphere-aabb intersect<br/>
!#zh 球和轴对齐包围盒的相交性检测。
@param sphere sphere
@param aabb aabb
*/
static sphere_aabb(sphere: geomUtils.Sphere, aabb: Aabb): boolean;
/**
!#en sphere-obb intersect<br/>
!#zh 球和方向包围盒的相交性检测。
@param sphere sphere
@param obb obb
*/
static sphere_obb(sphere: geomUtils.Sphere, obb: geomUtils.Obb): boolean;
/**
!#en
The intersection detection of g1 and g2 can fill in the shape in the basic geometry.
!#zh
g1 和 g2 的相交性检测,可填入基础几何中的形状。
@param g1 Geometry 1
@param g2 Geometry 2
@param outPt optional, Intersection point. (note: only partial shape detection with this return value)
*/
static resolve(g1: any, g2: any, outPt: any): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en
line
!#zh
直线 */
export class Line {
/**
!#en
create a new line
!#zh
创建一个新的 line。
@param sx The x part of the starting point.
@param sy The y part of the starting point.
@param sz The z part of the starting point.
@param ex The x part of the end point.
@param ey The y part of the end point.
@param ez The z part of the end point.
*/
create(sx: number, sy: number, sz: number, ex: number, ey: number, ez: number): Line;
/**
!#en
Creates a new line initialized with values from an existing line
!#zh
克隆一个新的 line。
@param a The source of cloning.
*/
clone(a: Line): Line;
/**
!#en
Copy the values from one line to another
!#zh
复制一个线的值到另一个。
@param out The object that accepts the action.
@param a The source of the copy.
*/
copy(out: Line, a: Line): Line;
/**
!#en
create a line from two points
!#zh
用两个点创建一个线。
@param out The object that accepts the action.
@param start The starting point.
@param end At the end.
*/
fromPoints(out: Line, start: Vec3, end: Vec3): Line;
/**
!#en
Set the components of a Vec3 to the given values
!#zh
将给定线的属性设置为给定值。
@param out The object that accepts the action.
@param sx The x part of the starting point.
@param sy The y part of the starting point.
@param sz The z part of the starting point.
@param ex The x part of the end point.
@param ey The y part of the end point.
@param ez The z part of the end point.
*/
set(out: Line, sx: number, sy: number, sz: number, ex: number, ey: number, ez: number): Line;
/**
!#en
Calculate the length of the line.
!#zh
计算线的长度。
@param a The line to calculate.
*/
len(a: Line): number;
/** !#en
Start points.
!#zh
起点。 */
s: Vec3;
/** !#en
End points.
!#zh
终点。 */
e: Vec3;
/**
!#en
Calculate the length of the line.
!#zh
计算线的长度。
*/
length(): number;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en obb
!#zh
基础几何 方向包围盒。 */
export class Obb {
/** !#zh
获取形状的类型。 */
type: number;
/**
!#en
create a new obb
!#zh
创建一个新的 obb 实例。
@param cx X coordinates of the shape relative to the origin.
@param cy Y coordinates of the shape relative to the origin.
@param cz Z coordinates of the shape relative to the origin.
@param hw Obb is half the width.
@param hh Obb is half the height.
@param hl Obb is half the Length.
@param ox_1 Direction matrix parameter.
@param ox_2 Direction matrix parameter.
@param ox_3 Direction matrix parameter.
@param oy_1 Direction matrix parameter.
@param oy_2 Direction matrix parameter.
@param oy_3 Direction matrix parameter.
@param oz_1 Direction matrix parameter.
@param oz_2 Direction matrix parameter.
@param oz_3 Direction matrix parameter.
*/
create(cx: number, cy: number, cz: number, hw: number, hh: number, hl: number, ox_1: number, ox_2: number, ox_3: number, oy_1: number, oy_2: number, oy_3: number, oz_1: number, oz_2: number, oz_3: number): Obb;
/**
!#en
clone a new obb
!#zh
克隆一个 obb。
@param a The target of cloning.
*/
clone(a: Obb): Obb;
/**
!#en
copy the values from one obb to another
!#zh
将从一个 obb 的值复制到另一个 obb。
@param out Obb that accepts the operation.
@param a Obb being copied.
*/
copy(out: Obb, a: Obb): Obb;
/**
!#en
create a new obb from two corner points
!#zh
用两个点创建一个新的 obb。
@param out Obb that accepts the operation.
@param minPos The smallest point of obb.
@param maxPos Obb's maximum point.
*/
fromPoints(out: Obb, minPos: Vec3, maxPos: Vec3): Obb;
/**
!#en
Set the components of a obb to the given values
!#zh
将给定 obb 的属性设置为给定的值。
@param cx X coordinates of the shape relative to the origin.
@param cy Y coordinates of the shape relative to the origin.
@param cz Z coordinates of the shape relative to the origin.
@param hw Obb is half the width.
@param hh Obb is half the height.
@param hl Obb is half the Length.
@param ox_1 Direction matrix parameter.
@param ox_2 Direction matrix parameter.
@param ox_3 Direction matrix parameter.
@param oy_1 Direction matrix parameter.
@param oy_2 Direction matrix parameter.
@param oy_3 Direction matrix parameter.
@param oz_1 Direction matrix parameter.
@param oz_2 Direction matrix parameter.
@param oz_3 Direction matrix parameter.
*/
set(cx: number, cy: number, cz: number, hw: number, hh: number, hl: number, ox_1: number, ox_2: number, ox_3: number, oy_1: number, oy_2: number, oy_3: number, oz_1: number, oz_2: number, oz_3: number): Obb;
/** !#en
The center of the local coordinate.
!#zh
本地坐标的中心点。 */
center: Vec3;
/** !#en
Half the length, width, and height.
!#zh
长宽高的一半。 */
halfExtents: Vec3;
/** !#en
Direction matrix.
!#zh
方向矩阵。 */
orientation: Mat3;
/**
!#en
Get the bounding points of this shape
!#zh
获取 obb 的最小点和最大点。
@param minPos minPos
@param maxPos maxPos
*/
getBoundary(minPos: Vec3, maxPos: Vec3): void;
/**
!#en Transform this shape
!#zh
将 out 根据这个 obb 的数据进行变换。
@param m The transformation matrix.
@param pos The position part of the transformation.
@param rot The rotating part of the transformation.
@param scale The scaling part of the transformation.
@param out Target of transformation.
*/
transform(m: Mat4, pos: Vec3, rot: Quat, scale: Vec3, out: Obb): void;
/**
!#en
Transform out based on this obb data.
!#zh
将 out 根据这个 obb 的数据进行变换。
@param m The transformation matrix.
@param rot The rotating part of the transformation.
@param out Target of transformation.
*/
translateAndRotate(m: Mat4, rot: Quat, out: Obb): void;
/**
!#en
Scale out based on this obb data.
!#zh
将 out 根据这个 obb 的数据进行缩放。
@param scale Scale value.
@param out Scaled target.
*/
setScale(scale: Vec3, out: Obb): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en
plane。
!#zh
平面。 */
export class Plane {
/**
!#en
create a new plane
!#zh
创建一个新的 plane。
@param nx The x part of the normal component.
@param ny The y part of the normal component.
@param nz The z part of the normal component.
@param d Distance from the origin.
*/
create(nx: number, ny: number, nz: number, d: number): Plane;
/**
!#en
clone a new plane
!#zh
克隆一个新的 plane。
@param p The source of cloning.
*/
clone(p: Plane): Plane;
/**
!#en
copy the values from one plane to another
!#zh
复制一个平面的值到另一个。
@param out The object that accepts the action.
@param p The source of the copy.
*/
copy(out: Plane, p: Plane): Plane;
/**
!#en
create a plane from three points
!#zh
用三个点创建一个平面。
@param out The object that accepts the action.
@param a Point a。
@param b Point b。
@param c Point c。
*/
fromPoints(out: Plane, a: Vec3, b: Vec3, c: Vec3): Plane;
/**
!#en
Set the components of a plane to the given values
!#zh
将给定平面的属性设置为给定值。
@param out The object that accepts the action.
@param nx The x part of the normal component.
@param ny The y part of the normal component.
@param nz The z part of the normal component.
@param d Distance from the origin.
*/
set(out: Plane, nx: number, ny: number, nz: number, d: number): Plane;
/**
!#en
create plane from normal and point
!#zh
用一条法线和一个点创建平面。
@param out The object that accepts the action.
@param normal The normal of a plane.
@param point A point on the plane.
*/
fromNormalAndPoint(out: Plane, normal: Vec3, point: Vec3): Plane;
/**
!#en
normalize a plane
!#zh
归一化一个平面。
@param out The object that accepts the action.
@param a Source data for operations.
*/
normalize(out: Plane, a: Plane): Plane;
/** !#en
A normal vector.
!#zh
法线向量。 */
n: Vec3;
/** !#en
The distance from the origin to the plane.
!#zh
原点到平面的距离。 */
d: number;
/**
!#en
Transform a plane.
!#zh
变换一个平面。
@param mat mat
*/
transform(mat: Mat4): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en
ray
!#zh
射线。 */
export class Ray {
/**
!#en
create a new ray
!#zh
创建一条射线。
@param ox The x part of the starting point.
@param oy The y part of the starting point.
@param oz The z part of the starting point.
@param dx X in the direction.
@param dy Y in the direction.
@param dz Z in the direction.
*/
create(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): Ray;
/**
!#en
Creates a new ray initialized with values from an existing ray
!#zh
从一条射线克隆出一条新的射线。
@param a Clone target
*/
clone(a: Ray): Ray;
/**
!#en
Copy the values from one ray to another
!#zh
将从一个 ray 的值复制到另一个 ray。
@param out Accept the ray of the operation.
@param a Copied ray.
*/
copy(out: Ray, a: Ray): Ray;
/**
!#en
create a ray from two points
!#zh
用两个点创建一条射线。
@param out Receive the operating ray.
@param origin Origin of ray
@param target A point on a ray.
*/
fromPoints(out: Ray, origin: Vec3, target: Vec3): Ray;
/**
!#en
Set the components of a ray to the given values
!#zh
将给定射线的属性设置为给定的值。
@param out Receive the operating ray.
@param ox The x part of the starting point.
@param oy The y part of the starting point.
@param oz The z part of the starting point.
@param dx X in the direction.
@param dy Y in the direction.
@param dz Z in the direction.
*/
set(out: Ray, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): Ray;
/** !#en
Start point.
!#zh
起点。 */
o: Vec3;
/** !#e
Direction
!#zh
方向。 */
d: Vec3;
/**
!#en Compute hit.
@param out out
@param distance distance
*/
computeHit(out: IVec3Like, distance: number): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** !#en
Sphere.
!#zh
轴对齐球。 */
export class Sphere {
/**
!#en
create a new sphere
!#zh
创建一个新的 sphere 实例。
@param cx X coordinates of the shape relative to the origin.
@param cy Y coordinates of the shape relative to the origin.
@param cz Z coordinates of the shape relative to the origin.
@param r Radius of sphere
*/
create(cx: any, cy: any, cz: any, r: any): Sphere;
/**
!#en
clone a new sphere
!#zh
克隆一个新的 sphere 实例。
@param p The target of cloning.
*/
clone(p: Sphere): Sphere;
/**
!#en
copy the values from one sphere to another
!#zh
将从一个 sphere 的值复制到另一个 sphere。
@param out Accept the sphere of operations.
@param a Sphere being copied.
*/
copy(out: Sphere, a: Sphere): Sphere;
/**
!#en
create a new bounding sphere from two corner points
!#zh
从两个点创建一个新的 sphere。
@param out Accept the sphere of operations.
@param minPos The smallest point of sphere.
@param maxPos The maximum point of sphere.
*/
fromPoints(out: any, minPos: any, maxPos: any): Sphere;
/**
!#en Set the components of a sphere to the given values
!#zh 将球体的属性设置为给定的值。
@param out Accept the sphere of operations.
@param cx X coordinates of the shape relative to the origin.
@param cy Y coordinates of the shape relative to the origin.
@param cz Z coordinates of the shape relative to the origin.
@param r Radius.
*/
set(out: Sphere, cx: any, cy: any, cz: any, r: number): Sphere;
/** !#en
The center of the local coordinate.
!#zh
本地坐标的中心点。 */
center: Vec3;
/** !#zh
半径。 */
radius: number;
/**
!#en
Clone.
!#zh
获得克隆。
*/
clone(): void;
/**
!#en
Copy sphere
!#zh
拷贝对象。
@param a Copy target.
*/
copy(a: any): void;
/**
!#en
Get the bounding points of this shape
!#zh
获取此形状的边界点。
@param minPos minPos
@param maxPos maxPos
*/
getBoundary(minPos: Vec3, maxPos: Vec3): void;
/**
!#en
Transform this shape
!#zh
将 out 根据这个 sphere 的数据进行变换。
@param m The transformation matrix.
@param pos The position part of the transformation.
@param rot The rotating part of the transformation.
@param scale The scaling part of the transformation.
@param out The target of the transformation.
*/
transform(m: any, pos: any, rot: any, scale: any, out: any): void;
/**
!#en
Scale out based on the sphere data.
!#zh
将 out 根据这个 sphere 的数据进行缩放。
@param scale Scale value
@param out Scale target
*/
setScale(scale: any, out: any): void;
}
}
/****************************************************
* geomUtils
*****************************************************/
export namespace geomUtils {
/** Triangle */
export class Triangle {
/**
create a new triangle
@param ax ax
@param ay ay
@param az az
@param bx bx
@param by by
@param bz bz
@param cx cx
@param cy cy
@param cz cz
*/
create(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): Triangle;
/**
clone a new triangle
@param t the source plane
*/
clone(t: Triangle): Triangle;
/**
copy the values from one triangle to another
@param out the receiving triangle
@param t the source triangle
*/
copy(out: Triangle, t: Triangle): Triangle;
/**
Create a triangle from three points
@param out the receiving triangle
@param a a
@param b b
@param c c
*/
fromPoints(out: Triangle, a: Vec3, b: Vec3, c: Vec3): Triangle;
/**
Set the components of a triangle to the given values
@param out the receiving plane
@param ax X component of a
@param ay Y component of a
@param az Z component of a
@param bx X component of b
@param by Y component of b
@param bz Z component of b
@param cx X component of c
@param cy Y component of c
@param cz Z component of c
*/
set(out: Triangle, ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): Plane;
a: Vec3;
b: Vec3;
c: Vec3;
}
}
/****************************************************
* MeshRenderer
*****************************************************/
export namespace MeshRenderer {
/** !#en Shadow projection mode
!#ch 阴影投射方式 */
export enum ShadowCastingMode {
OFF = 0,
ON = 0,
}
}
/****************************************************
* PhysicsManager
*****************************************************/
export namespace PhysicsManager {
/** !#en
The draw bits for drawing physics debug information.<br>
example:<br>
```js
cc.director.getPhysicsManager().debugDrawFlags =
// cc.PhysicsManager.DrawBits.e_aabbBit |
// cc.PhysicsManager.DrawBits.e_pairBit |
// cc.PhysicsManager.DrawBits.e_centerOfMassBit |
cc.PhysicsManager.DrawBits.e_jointBit |
cc.PhysicsManager.DrawBits.e_shapeBit;
```
!#zh
指定物理系统需要绘制哪些调试信息。<br>
example:<br>
```js
cc.director.getPhysicsManager().debugDrawFlags =
// cc.PhysicsManager.DrawBits.e_aabbBit |
// cc.PhysicsManager.DrawBits.e_pairBit |
// cc.PhysicsManager.DrawBits.e_centerOfMassBit |
cc.PhysicsManager.DrawBits.e_jointBit |
cc.PhysicsManager.DrawBits.e_shapeBit;
``` */
export enum DrawBits {
e_aabbBit = 0,
e_jointBit = 0,
e_shapeBit = 0,
}
}
/****************************************************
* macro
*****************************************************/
export namespace macro {
/** !#en Key map for keyboard event
!#zh 键盘事件的按键值 */
export enum KEY {
none = 0,
back = 0,
menu = 0,
backspace = 0,
tab = 0,
enter = 0,
shift = 0,
ctrl = 0,
alt = 0,
pause = 0,
capslock = 0,
escape = 0,
space = 0,
pageup = 0,
pagedown = 0,
end = 0,
home = 0,
left = 0,
up = 0,
right = 0,
down = 0,
select = 0,
insert = 0,
Delete = 0,
a = 0,
b = 0,
c = 0,
d = 0,
e = 0,
f = 0,
g = 0,
h = 0,
i = 0,
j = 0,
k = 0,
l = 0,
m = 0,
n = 0,
o = 0,
p = 0,
q = 0,
r = 0,
s = 0,
t = 0,
u = 0,
v = 0,
w = 0,
x = 0,
y = 0,
z = 0,
num0 = 0,
num1 = 0,
num2 = 0,
num3 = 0,
num4 = 0,
num5 = 0,
num6 = 0,
num7 = 0,
num8 = 0,
num9 = 0,
'*' = 0,
'+' = 0,
'-' = 0,
numdel = 0,
'/' = 0,
f1 = 0,
f2 = 0,
f3 = 0,
f4 = 0,
f5 = 0,
f6 = 0,
f7 = 0,
f8 = 0,
f9 = 0,
f10 = 0,
f11 = 0,
f12 = 0,
numlock = 0,
scrolllock = 0,
';' = 0,
semicolon = 0,
equal = 0,
'=' = 0,
',' = 0,
comma = 0,
dash = 0,
'.' = 0,
period = 0,
forwardslash = 0,
grave = 0,
'[' = 0,
openbracket = 0,
backslash = 0,
']' = 0,
closebracket = 0,
quote = 0,
dpadLeft = 0,
dpadRight = 0,
dpadUp = 0,
dpadDown = 0,
dpadCenter = 0,
}
}
/****************************************************
* macro
*****************************************************/
export namespace macro {
/** Image formats */
export enum ImageFormat {
JPG = 0,
PNG = 0,
TIFF = 0,
WEBP = 0,
PVR = 0,
ETC = 0,
S3TC = 0,
ATITC = 0,
TGA = 0,
RAWDATA = 0,
UNKNOWN = 0,
}
}
/****************************************************
* macro
*****************************************************/
export namespace macro {
/** !#en
Enum for blend factor
Refer to: http://www.andersriggelsen.dk/glblendfunc.php
!#zh
混合因子
可参考: http://www.andersriggelsen.dk/glblendfunc.php */
export enum BlendFactor {
ONE = 0,
ZERO = 0,
SRC_ALPHA = 0,
SRC_COLOR = 0,
DST_ALPHA = 0,
DST_COLOR = 0,
ONE_MINUS_SRC_ALPHA = 0,
ONE_MINUS_SRC_COLOR = 0,
ONE_MINUS_DST_ALPHA = 0,
ONE_MINUS_DST_COLOR = 0,
}
}
/****************************************************
* macro
*****************************************************/
export namespace macro {
/** undefined */
export enum TextAlignment {
LEFT = 0,
CENTER = 0,
RIGHT = 0,
}
}
/****************************************************
* sys
*****************************************************/
export namespace sys {
/** !#en
Network type enumeration
!#zh
网络类型枚举 */
export enum NetworkType {
NONE = 0,
LAN = 0,
WWAN = 0,
}
}
/****************************************************
* Material
*****************************************************/
export namespace Material {
/** !#en Material builtin name
!#zh 内置材质名字 */
export enum BUILTIN_NAME {
SPRITE = 0,
GRAY_SPRITE = 0,
UNLIT = 0,
}
}
/****************************************************
* ParticleSystem3DAssembler
*****************************************************/
export namespace ParticleSystem3DAssembler {
/** undefined */
export enum Space {
}
}
/****************************************************
* ParticleSystem3DAssembler
*****************************************************/
export namespace ParticleSystem3DAssembler {
/** 粒子的生成模式 */
export enum RenderMode {
}
}
/****************************************************
* shapeModule
*****************************************************/
export namespace shapeModule {
/** 粒子发射器类型 */
export enum ShapeType {
Box = 0,
Circle = 0,
Cone = 0,
Sphere = 0,
Hemisphere = 0,
}
}
/****************************************************
* shapeModule
*****************************************************/
export namespace shapeModule {
/** 粒子从发射器的哪个部位发射 */
export enum EmitLocation {
Base = 0,
Edge = 0,
Shell = 0,
Volume = 0,
}
}
/****************************************************
* shapeModule
*****************************************************/
export namespace shapeModule {
/** 粒子在扇形区域的发射方式 */
export enum ArcMode {
Random = 0,
Loop = 0,
PingPong = 0,
}
}
/****************************************************
* trailModule
*****************************************************/
export namespace trailModule {
/** 选择如何为粒子系统生成轨迹 */
export enum TrailMode {
}
}
/****************************************************
* trailModule
*****************************************************/
export namespace trailModule {
/** 纹理填充模式 */
export enum TextureMode {
}
}
/****************************************************
* primitive
*****************************************************/
export namespace primitive {
/** undefined */
export enum PolyhedronType {
Tetrahedron = 0,
Octahedron = 0,
Dodecahedron = 0,
Icosahedron = 0,
Rhombicuboctahedron = 0,
TriangularPrism = 0,
PentagonalPrism = 0,
HexagonalPrism = 0,
SquarePyramid = 0,
PentagonalPyramid = 0,
TriangularDipyramid = 0,
PentagonalDipyramid = 0,
ElongatedSquareDipyramid = 0,
ElongatedPentagonalDipyramid = 0,
ElongatedPentagonalCupola = 0,
}
}
/****************************************************
* primitive
*****************************************************/
export namespace primitive {
/** undefined */
export class VertexData {
positions: number[];
normals: number[];
uvs: number[];
indices: number[];
minPos: Vec3;
maxPos: Vec3;
boundingRadius: number;
}
}
/****************************************************
* EditBox
*****************************************************/
export namespace EditBox {
/** !#en Enum for keyboard return types
!#zh 键盘的返回键类型 */
export enum KeyboardReturnType {
DEFAULT = 0,
DONE = 0,
SEND = 0,
SEARCH = 0,
GO = 0,
NEXT = 0,
}
}
/****************************************************
* EditBox
*****************************************************/
export namespace EditBox {
/** !#en The EditBox's InputMode defines the type of text that the user is allowed to enter.
!#zh 输入模式 */
export enum InputMode {
ANY = 0,
EMAIL_ADDR = 0,
NUMERIC = 0,
PHONE_NUMBER = 0,
URL = 0,
DECIMAL = 0,
SINGLE_LINE = 0,
}
}
/****************************************************
* EditBox
*****************************************************/
export namespace EditBox {
/** !#en Enum for the EditBox's input flags
!#zh 定义了一些用于设置文本显示和文本格式化的标志位。 */
export enum InputFlag {
PASSWORD = 0,
SENSITIVE = 0,
INITIAL_CAPS_WORD = 0,
INITIAL_CAPS_SENTENCE = 0,
INITIAL_CAPS_ALL_CHARACTERS = 0,
DEFAULT = 0,
}
}
/****************************************************
* textureAnimationModule
*****************************************************/
export namespace textureAnimationModule {
/** 粒子贴图动画类型 */
export enum Mode {
}
}
/****************************************************
* textureAnimationModule
*****************************************************/
export namespace textureAnimationModule {
/** 贴图动画的播放方式 */
export enum Animation {
}
}
}
/** !#en
The global main namespace of Spine, all classes, functions,
properties and constants of Spine are defined in this namespace
!#zh
Spine 的全局的命名空间,
与 Spine 相关的所有的类,函数,属性,常量都在这个命名空间中定义。 */
declare namespace sp {
/** !#en
The skeleton of Spine <br/>
<br/>
(Skeleton has a reference to a SkeletonData and stores the state for skeleton instance,
which consists of the current pose's bone SRT, slot colors, and which slot attachments are visible. <br/>
Multiple skeletons can use the same SkeletonData which includes all animations, skins, and attachments.) <br/>
!#zh
Spine 骨骼动画 <br/>
<br/>
(Skeleton 具有对骨骼数据的引用并且存储了骨骼实例的状态,
它由当前的骨骼动作,slot 颜色,和可见的 slot attachments 组成。<br/>
多个 Skeleton 可以使用相同的骨骼数据,其中包括所有的动画,皮肤和 attachments。 */
export class Skeleton extends cc.RenderComponent {
/** !#en The skeletal animation is paused?
!#zh 该骨骼动画是否暂停。 */
paused: boolean;
/** !#en
The skeleton data contains the skeleton information (bind pose bones, slots, draw order,
attachments, skins, etc) and animations but does not hold any state.<br/>
Multiple skeletons can share the same skeleton data.
!#zh
骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序,
attachments,皮肤等等)和动画但不持有任何状态。<br/>
多个 Skeleton 可以共用相同的骨骼数据。 */
skeletonData: SkeletonData;
/** !#en The name of default skin.
!#zh 默认的皮肤名称。 */
defaultSkin: string;
/** !#en The name of default animation.
!#zh 默认的动画名称。 */
defaultAnimation: string;
/** !#en The name of current playing animation.
!#zh 当前播放的动画名称。 */
animation: string;
_defaultSkinIndex: number;
/** !#en TODO
!#zh 是否循环播放当前骨骼动画。 */
loop: boolean;
/** !#en Indicates whether to enable premultiplied alpha.
You should disable this option when image's transparent area appears to have opaque pixels,
or enable this option when image's half transparent area appears to be darken.
!#zh 是否启用贴图预乘。
当图片的透明区域出现色块时需要关闭该选项,当图片的半透明区域颜色变黑时需要启用该选项。 */
premultipliedAlpha: boolean;
/** !#en The time scale of this skeleton.
!#zh 当前骨骼中所有动画的时间缩放率。 */
timeScale: number;
/** !#en Indicates whether open debug slots.
!#zh 是否显示 slot 的 debug 信息。 */
debugSlots: boolean;
/** !#en Indicates whether open debug bones.
!#zh 是否显示 bone 的 debug 信息。 */
debugBones: boolean;
/** !#en Indicates whether open debug mesh.
!#zh 是否显示 mesh 的 debug 信息。 */
debugMesh: boolean;
/** !#en Enabled two color tint.
!#zh 是否启用染色效果。 */
useTint: boolean;
/** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance.
!#zh 开启合批,如果渲染大量相同纹理,且结构简单的骨骼动画,开启合批可以降低drawcall,否则请不要开启,cpu消耗会上升。 */
enableBatch: boolean;
/**
!#en
Sets runtime skeleton data to sp.Skeleton.<br>
This method is different from the `skeletonData` property. This method is passed in the raw data provided by the Spine runtime, and the skeletonData type is the asset type provided by Creator.
!#zh
设置底层运行时用到的 SkeletonData。<br>
这个接口有别于 `skeletonData` 属性,这个接口传入的是 Spine runtime 提供的原始数据,而 skeletonData 的类型是 Creator 提供的资源类型。
@param skeletonData skeletonData
*/
setSkeletonData(skeletonData: sp.spine.SkeletonData): void;
/**
!#en Sets slots visible range.
!#zh 设置骨骼插槽可视范围。
@param startSlotIndex startSlotIndex
@param endSlotIndex endSlotIndex
*/
setSlotsRange(startSlotIndex: number, endSlotIndex: number): void;
/**
!#en Sets animation state data.<br>
The parameter type is {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.AnimationStateData.
!#zh 设置动画状态数据。<br>
参数是 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.AnimationStateData。
@param stateData stateData
*/
setAnimationStateData(stateData: sp.spine.AnimationStateData): void;
/**
!#en
It's best to set cache mode before set property 'dragonAsset', or will waste some cpu time.
If set the mode in editor, then no need to worry about order problem.
!#zh
若想切换渲染模式,最好在设置'dragonAsset'之前,先设置好渲染模式,否则有运行时开销。
若在编辑中设置渲染模式,则无需担心设置次序的问题。
@param cacheMode cacheMode
@example
```js
skeleton.setAnimationCacheMode(sp.Skeleton.AnimationCacheMode.SHARED_CACHE);
```
*/
setAnimationCacheMode(cacheMode: Skeleton.AnimationCacheMode): void;
/**
!#en Whether in cached mode.
!#zh 当前是否处于缓存模式。
*/
isAnimationCached(): boolean;
/**
!#en Sets vertex effect delegate.
!#zh 设置顶点动画代理
@param effectDelegate effectDelegate
*/
setVertexEffectDelegate(effectDelegate: VertexEffectDelegate): void;
/**
!#en Computes the world SRT from the local SRT for each bone.
!#zh 重新更新所有骨骼的世界 Transform,
当获取 bone 的数值未更新时,即可使用该函数进行更新数值。
@example
```js
var bone = spine.findBone('head');
cc.log(bone.worldX); // return 0;
spine.updateWorldTransform();
bone = spine.findBone('head');
cc.log(bone.worldX); // return -23.12;
```
*/
updateWorldTransform(): void;
/**
!#en Sets the bones and slots to the setup pose.
!#zh 还原到起始动作
*/
setToSetupPose(): void;
/**
!#en
Sets the bones to the setup pose,
using the values from the `BoneData` list in the `SkeletonData`.
!#zh
设置 bone 到起始动作
使用 SkeletonData 中的 BoneData 列表中的值。
*/
setBonesToSetupPose(): void;
/**
!#en
Sets the slots to the setup pose,
using the values from the `SlotData` list in the `SkeletonData`.
!#zh
设置 slot 到起始动作。
使用 SkeletonData 中的 SlotData 列表中的值。
*/
setSlotsToSetupPose(): void;
/**
!#en
Updating an animation cache to calculate all frame data in the animation is a cost in
performance due to calculating all data in a single frame.
To update the cache, use the invalidAnimationCache method with high performance.
!#zh
更新某个动画缓存, 预计算动画中所有帧数据,由于在单帧计算所有数据,所以较消耗性能。
若想更新缓存,可使用 invalidAnimationCache 方法,具有较高性能。
@param animName animName
*/
updateAnimationCache(animName: string): void;
/**
!#en
Invalidates the animation cache, which is then recomputed on each frame..
!#zh
使动画缓存失效,之后会在每帧重新计算。
*/
invalidAnimationCache(): void;
/**
!#en
Finds a bone by name.
This does a string comparison for every bone.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Bone object.
!#zh
通过名称查找 bone。
这里对每个 bone 的名称进行了对比。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Bone 对象。
@param boneName boneName
*/
findBone(boneName: string): sp.spine.Bone;
/**
!#en
Finds a slot by name. This does a string comparison for every slot.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Slot object.
!#zh
通过名称查找 slot。这里对每个 slot 的名称进行了比较。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Slot 对象。
@param slotName slotName
*/
findSlot(slotName: string): sp.spine.Slot;
/**
!#en
Finds a skin by name and makes it the active skin.
This does a string comparison for every skin.<br>
Note that setting the skin does not change which attachments are visible.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Skin object.
!#zh
按名称查找皮肤,激活该皮肤。这里对每个皮肤的名称进行了比较。<br>
注意:设置皮肤不会改变 attachment 的可见性。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Skin 对象。
@param skinName skinName
*/
setSkin(skinName: string): void;
/**
!#en
Returns the attachment for the slot and attachment name.
The skeleton looks first in its skin, then in the skeleton data’s default skin.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Attachment object.
!#zh
通过 slot 和 attachment 的名称获取 attachment。Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Attachment 对象。
@param slotName slotName
@param attachmentName attachmentName
*/
getAttachment(slotName: string, attachmentName: string): sp.spine.Attachment;
/**
!#en
Sets the attachment for the slot and attachment name.
The skeleton looks first in its skin, then in the skeleton data’s default skin.
!#zh
通过 slot 和 attachment 的名字来设置 attachment。
Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。
@param slotName slotName
@param attachmentName attachmentName
*/
setAttachment(slotName: string, attachmentName: string): void;
/**
Return the renderer of attachment.
@param regionAttachment regionAttachment
*/
getTextureAtlas(regionAttachment: sp.spine.RegionAttachment|spine.BoundingBoxAttachment): sp.spine.TextureAtlasRegion;
/**
!#en
Mix applies all keyframe values,
interpolated for the specified time and mixed with the current values.
!#zh 为所有关键帧设定混合及混合时间(从当前值开始差值)。
@param fromAnimation fromAnimation
@param toAnimation toAnimation
@param duration duration
*/
setMix(fromAnimation: string, toAnimation: string, duration: number): void;
/**
!#en Set the current animation. Any queued animations are cleared.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object.
!#zh 设置当前动画。队列中的任何的动画将被清除。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。
@param trackIndex trackIndex
@param name name
@param loop loop
*/
setAnimation(trackIndex: number, name: string, loop: boolean): sp.spine.TrackEntry;
/**
!#en Adds an animation to be played delay seconds after the current or last queued animation.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object.
!#zh 添加一个动画到动画队列尾部,还可以延迟指定的秒数。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。
@param trackIndex trackIndex
@param name name
@param loop loop
@param delay delay
*/
addAnimation(trackIndex: number, name: string, loop: boolean, delay?: number): sp.spine.TrackEntry;
/**
!#en Find animation with specified name.
!#zh 查找指定名称的动画
@param name name
*/
findAnimation(name: string): sp.spine.Animation;
/**
!#en Returns track entry by trackIndex.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object.
!#zh 通过 track 索引获取 TrackEntry。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。
@param trackIndex trackIndex
*/
getCurrent(trackIndex: any): sp.spine.TrackEntry;
/**
!#en Clears all tracks of animation state.
!#zh 清除所有 track 的动画状态。
*/
clearTracks(): void;
/**
!#en Clears track of animation state by trackIndex.
!#zh 清除出指定 track 的动画状态。
@param trackIndex trackIndex
*/
clearTrack(trackIndex: number): void;
/**
!#en Set the start event listener.
!#zh 用来设置开始播放动画的事件监听。
@param listener listener
*/
setStartListener(listener: Function): void;
/**
!#en Set the interrupt event listener.
!#zh 用来设置动画被打断的事件监听。
@param listener listener
*/
setInterruptListener(listener: Function): void;
/**
!#en Set the end event listener.
!#zh 用来设置动画播放完后的事件监听。
@param listener listener
*/
setEndListener(listener: Function): void;
/**
!#en Set the dispose event listener.
!#zh 用来设置动画将被销毁的事件监听。
@param listener listener
*/
setDisposeListener(listener: Function): void;
/**
!#en Set the complete event listener.
!#zh 用来设置动画播放一次循环结束后的事件监听。
@param listener listener
*/
setCompleteListener(listener: Function): void;
/**
!#en Set the animation event listener.
!#zh 用来设置动画播放过程中帧事件的监听。
@param listener listener
*/
setEventListener(listener: Function): void;
/**
!#en Set the start event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画开始播放的事件监听。
@param entry entry
@param listener listener
*/
setTrackStartListener(entry: sp.spine.TrackEntry, listener: Function): void;
/**
!#en Set the interrupt event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画被打断的事件监听。
@param entry entry
@param listener listener
*/
setTrackInterruptListener(entry: sp.spine.TrackEntry, listener: Function): void;
/**
!#en Set the end event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画播放结束的事件监听。
@param entry entry
@param listener listener
*/
setTrackEndListener(entry: sp.spine.TrackEntry, listener: Function): void;
/**
!#en Set the dispose event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画即将被销毁的事件监听。
@param entry entry
@param listener listener
*/
setTrackDisposeListener(entry: sp.spine.TrackEntry, listener: Function): void;
/**
!#en Set the complete event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画一次循环播放结束的事件监听。
@param entry entry
@param listener listener
*/
setTrackCompleteListener(entry: sp.spine.TrackEntry, listener: (entry: sp.spine.TrackEntry, loopCount: number) => void): void;
/**
!#en Set the event listener for specified TrackEntry.
!#zh 用来为指定的 TrackEntry 设置动画帧事件的监听。
@param entry entry
@param listener listener
*/
setTrackEventListener(entry: sp.spine.TrackEntry, listener: Function): void;
/**
!#en Get the animation state object
!#zh 获取动画状态
*/
getState(): sp.spine.AnimationState;
}
/** !#en The event type of spine skeleton animation.
!#zh 骨骼动画事件类型。 */
export enum AnimationEventType {
START = 0,
END = 0,
COMPLETE = 0,
EVENT = 0,
}
/** !#en The skeleton data of spine.
!#zh Spine 的 骨骼数据。 */
export class SkeletonData extends cc.Asset {
/** !#en See http://en.esotericsoftware.com/spine-json-format
!#zh 可查看 Spine 官方文档 http://zh.esotericsoftware.com/spine-json-format */
skeletonJson: any;
atlasText: string;
textures: cc.Texture2D[];
/** !#en
A scale can be specified on the JSON or binary loader which will scale the bone positions,
image sizes, and animation translations.
This can be useful when using different sized images than were used when designing the skeleton
in Spine. For example, if using images that are half the size than were used in Spine,
a scale of 0.5 can be used. This is commonly used for games that can run with either low or high
resolution texture atlases.
see http://en.esotericsoftware.com/spine-using-runtimes#Scaling
!#zh 可查看 Spine 官方文档: http://zh.esotericsoftware.com/spine-using-runtimes#Scaling */
scale: number;
/**
!#en Get the included SkeletonData used in spine runtime.<br>
Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.SkeletonData object.
!#zh 获取 Spine Runtime 使用的 SkeletonData。<br>
返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.SkeletonData 对象。
@param quiet quiet
*/
getRuntimeData(quiet?: boolean): sp.spine.SkeletonData;
}
/** !#en
The delegate of spine vertex effect
!#zh
Spine 顶点动画代理 */
export class VertexEffectDelegate {
/**
!#en Clears vertex effect.
!#zh 清空顶点效果
*/
clear(): void;
/**
!#en Inits delegate with jitter effect
!#zh 设置顶点抖动效果
@param jitterX jitterX
@param jitterY jitterY
*/
initJitter(jitterX: number, jitterY: number): void;
/**
!#en Inits delegate with swirl effect
!#zh 设置顶点漩涡效果
@param radius radius
@param power power
*/
initSwirlWithPow(radius: number, power: number): sp.spine.JitterEffect;
/**
!#en Inits delegate with swirl effect
!#zh 设置顶点漩涡效果
@param radius radius
@param power power
*/
initSwirlWithPowOut(radius: number, power: number): sp.spine.SwirlEffect;
/**
!#en Gets jitter vertex effect
!#zh 获取顶点抖动效果
*/
getJitterVertexEffect(): sp.spine.JitterEffect;
/**
!#en Gets swirl vertex effect
!#zh 获取顶点漩涡效果
*/
getSwirlVertexEffect(): sp.spine.SwirlEffect;
/**
!#en Gets vertex effect
!#zh 获取顶点效果
*/
getVertexEffect(): sp.spine.JitterEffect;
/**
!#en Gets effect type
!#zh 获取效果类型
*/
getEffectType(): string;
}
/****************************************************
* sp
*****************************************************/
export namespace sp {
/** !#en Attach node tool
!#zh 挂点工具类 */
export class AttachUtil {
/**
!#en Gets attached root node.
!#zh 获取挂接节点树的根节点
*/
getAttachedRootNode(): cc.Node;
/**
!#en Gets attached node which you want.
!#zh 获得对应的挂点
@param boneName boneName
*/
getAttachedNodes(boneName: string): cc.Node[];
/**
!#en Destroy attached node which you want.
!#zh 销毁对应的挂点
@param boneName boneName
*/
destroyAttachedNodes(boneName: string): void;
/**
!#en Traverse all bones to generate the minimum node tree containing the given bone names, NOTE that make sure the skeleton has initialized before calling this interface.
!#zh 遍历所有插槽,生成包含所有给定插槽名称的最小节点树,注意,调用该接口前请确保骨骼动画已经初始化好。
@param boneName boneName
*/
generateAttachedNodes(boneName: string): cc.Node[];
/**
!#en Destroy all attached node.
!#zh 销毁所有挂点
*/
destroyAllAttachedNodes(): void;
/**
!#en Traverse all bones to generate a tree containing all bones nodes, NOTE that make sure the skeleton has initialized before calling this interface.
!#zh 遍历所有插槽,生成包含所有插槽的节点树,注意,调用该接口前请确保骨骼动画已经初始化好。
*/
generateAllAttachedNodes(): cc.Node;
}
}
/****************************************************
* Skeleton
*****************************************************/
export namespace Skeleton {
/** !#en Enum for animation cache mode type.
!#zh Spine动画缓存类型 */
export enum AnimationCacheMode {
REALTIME = 0,
SHARED_CACHE = 0,
PRIVATE_CACHE = 0,
}
}
}
/** !#en
`sp.spine` is the namespace for official Spine Runtime, which officially implemented and maintained by Spine.<br>
Please refer to the official documentation for its detailed usage: [http://en.esotericsoftware.com/spine-using-runtimes](http://en.esotericsoftware.com/spine-using-runtimes)
!#zh
sp.spine 模块是 Spine 官方运行库的 API 入口,由 Spine 官方统一实现和维护,具体用法请参考:[http://zh.esotericsoftware.com/spine-using-runtimes](http://zh.esotericsoftware.com/spine-using-runtimes) */
declare namespace sp.spine {
}
/** !#en
The global main namespace of DragonBones, all classes, functions,
properties and constants of DragonBones are defined in this namespace
!#zh
DragonBones 的全局的命名空间,
与 DragonBones 相关的所有的类,函数,属性,常量都在这个命名空间中定义。 */
declare namespace dragonBones {
/** !#en
The Armature Display of DragonBones <br/>
<br/>
(Armature Display has a reference to a DragonBonesAsset and stores the state for ArmatureDisplay instance,
which consists of the current pose's bone SRT, slot colors, and which slot attachments are visible. <br/>
Multiple Armature Display can use the same DragonBonesAsset which includes all animations, skins, and attachments.) <br/>
!#zh
DragonBones 骨骼动画 <br/>
<br/>
(Armature Display 具有对骨骼数据的引用并且存储了骨骼实例的状态,
它由当前的骨骼动作,slot 颜色,和可见的 slot attachments 组成。<br/>
多个 Armature Display 可以使用相同的骨骼数据,其中包括所有的动画,皮肤和 attachments。)<br/> */
export class ArmatureDisplay extends cc.RenderComponent {
/** !#en
The DragonBones data contains the armatures information (bind pose bones, slots, draw order,
attachments, skins, etc) and animations but does not hold any state.<br/>
Multiple ArmatureDisplay can share the same DragonBones data.
!#zh
骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序,
attachments,皮肤等等)和动画但不持有任何状态。<br/>
多个 ArmatureDisplay 可以共用相同的骨骼数据。 */
dragonAsset: DragonBonesAsset;
/** !#en
The atlas asset for the DragonBones.
!#zh
骨骼数据所需的 Atlas Texture 数据。 */
dragonAtlasAsset: DragonBonesAtlasAsset;
/** !#en The name of current armature.
!#zh 当前的 Armature 名称。 */
armatureName: string;
/** !#en The name of current playing animation.
!#zh 当前播放的动画名称。 */
animationName: string;
_defaultArmatureIndex: number;
/** !#en The time scale of this armature.
!#zh 当前骨骼中所有动画的时间缩放率。 */
timeScale: number;
/** !#en The play times of the default animation.
-1 means using the value of config file;
0 means repeat for ever
>0 means repeat times
!#zh 播放默认动画的循环次数
-1 表示使用配置文件中的默认值;
0 表示无限循环
>0 表示循环次数 */
playTimes: number;
/** !#en Indicates whether to enable premultiplied alpha.
You should disable this option when image's transparent area appears to have opaque pixels,
or enable this option when image's half transparent area appears to be darken.
!#zh 是否启用贴图预乘。
当图片的透明区域出现色块时需要关闭该选项,当图片的半透明区域颜色变黑时需要启用该选项。 */
premultipliedAlpha: boolean;
/** !#en Indicates whether open debug bones.
!#zh 是否显示 bone 的 debug 信息。 */
debugBones: boolean;
/** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance.
!#zh 开启合批,如果渲染大量相同纹理,且结构简单的骨骼动画,开启合批可以降低drawcall,否则请不要开启,cpu消耗会上升。 */
enableBatch: boolean;
/**
!#en
The key of dragonbones cache data, which is regard as 'dragonbonesName', when you want to change dragonbones cloth.
!#zh
缓存龙骨数据的key值,换装的时会使用到该值,作为dragonbonesName使用
@example
```js
let factory = dragonBones.CCFactory.getInstance();
let needChangeSlot = needChangeArmature.armature().getSlot("changeSlotName");
factory.replaceSlotDisplay(toChangeArmature.getArmatureKey(), "armatureName", "slotName", "displayName", needChangeSlot);
```
*/
getArmatureKey(): string;
/**
!#en
It's best to set cache mode before set property 'dragonAsset', or will waste some cpu time.
If set the mode in editor, then no need to worry about order problem.
!#zh
若想切换渲染模式,最好在设置'dragonAsset'之前,先设置好渲染模式,否则有运行时开销。
若在编辑中设置渲染模式,则无需担心设置次序的问题。
@param cacheMode cacheMode
@example
```js
armatureDisplay.setAnimationCacheMode(dragonBones.ArmatureDisplay.AnimationCacheMode.SHARED_CACHE);
```
*/
setAnimationCacheMode(cacheMode: ArmatureDisplay.AnimationCacheMode): void;
/**
!#en Whether in cached mode.
!#zh 当前是否处于缓存模式。
*/
isAnimationCached(): boolean;
/**
!#en
Play the specified animation.
Parameter animName specify the animation name.
Parameter playTimes specify the repeat times of the animation.
-1 means use the value of the config file.
0 means play the animation for ever.
>0 means repeat times.
!#zh
播放指定的动画.
animName 指定播放动画的名称。
playTimes 指定播放动画的次数。
-1 为使用配置文件中的次数。
0 为无限循环播放。
>0 为动画的重复次数。
@param animName animName
@param playTimes playTimes
*/
playAnimation(animName: string, playTimes: number): dragonBones.AnimationState;
/**
!#en
Updating an animation cache to calculate all frame data in the animation is a cost in
performance due to calculating all data in a single frame.
To update the cache, use the invalidAnimationCache method with high performance.
!#zh
更新某个动画缓存, 预计算动画中所有帧数据,由于在单帧计算所有数据,所以较消耗性能。
若想更新缓存,可使用 invalidAnimationCache 方法,具有较高性能。
@param animName animName
*/
updateAnimationCache(animName: string): void;
/**
!#en
Invalidates the animation cache, which is then recomputed on each frame..
!#zh
使动画缓存失效,之后会在每帧重新计算。
*/
invalidAnimationCache(): void;
/**
!#en
Get the all armature names in the DragonBones Data.
!#zh
获取 DragonBones 数据中所有的 armature 名称
*/
getArmatureNames(): any[];
/**
!#en
Get the all animation names of specified armature.
!#zh
获取指定的 armature 的所有动画名称。
@param armatureName armatureName
*/
getAnimationNames(armatureName: string): any[];
/**
!#en
Add event listener for the DragonBones Event, the same to addEventListener.
!#zh
添加 DragonBones 事件监听器,与 addEventListener 作用相同。
@param type A string representing the event type to listen for.
@param listener The callback that will be invoked when the event is dispatched.
@param target The target (this object) to invoke the callback, can be null
*/
on(type: string, listener: (event: cc.Event) => void, target?: any): void;
/**
!#en
Remove the event listener for the DragonBones Event, the same to removeEventListener.
!#zh
移除 DragonBones 事件监听器,与 removeEventListener 作用相同。
@param type A string representing the event type to listen for.
@param listener listener
@param target target
*/
off(type: string, listener?: Function, target?: any): void;
/**
!#en
Add DragonBones one-time event listener, the callback will remove itself after the first time it is triggered.
!#zh
添加 DragonBones 一次性事件监听器,回调会在第一时间被触发后删除自身。
@param type A string representing the event type to listen for.
@param listener The callback that will be invoked when the event is dispatched.
@param target The target (this object) to invoke the callback, can be null
*/
once(type: string, listener: (event: cc.Event) => void, target?: any): void;
/**
!#en
Add event listener for the DragonBones Event.
!#zh
添加 DragonBones 事件监听器。
@param type A string representing the event type to listen for.
@param listener The callback that will be invoked when the event is dispatched.
@param target The target (this object) to invoke the callback, can be null
*/
addEventListener(type: string, listener: (event: cc.Event) => void, target?: any): void;
/**
!#en
Remove the event listener for the DragonBones Event.
!#zh
移除 DragonBones 事件监听器。
@param type A string representing the event type to listen for.
@param listener listener
@param target target
*/
removeEventListener(type: string, listener?: Function, target?: any): void;
/**
!#en
Build the armature for specified name.
!#zh
构建指定名称的 armature 对象
@param armatureName armatureName
@param node node
*/
buildArmature(armatureName: string, node: cc.Node): ArmatureDisplay;
/**
!#en
Get the current armature object of the ArmatureDisplay.
!#zh
获取 ArmatureDisplay 当前使用的 Armature 对象
*/
armature(): any;
}
/** DragonBones factory */
export class CCFactory extends BaseFactory {
/**
@example
```js
let factory = dragonBones.CCFactory.getInstance();
```
*/
static getInstance(): CCFactory;
}
/** !#en The skeleton data of dragonBones.
!#zh dragonBones 的 骨骼数据。 */
export class DragonBonesAsset extends cc.Asset {
/** !#en See http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html
!#zh 可查看 DragonBones 官方文档 http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html */
dragonBonesJson: string;
}
/** !#en The skeleton atlas data of dragonBones.
!#zh dragonBones 的骨骼纹理数据。 */
export class DragonBonesAtlasAsset extends cc.Asset {
atlasJson: string;
texture: cc.Texture2D;
}
/****************************************************
* ArmatureDisplay
*****************************************************/
export namespace ArmatureDisplay {
/** !#en Enum for cache mode type.
!#zh Dragonbones渲染类型 */
export enum AnimationCacheMode {
REALTIME = 0,
SHARED_CACHE = 0,
PRIVATE_CACHE = 0,
}
}
/****************************************************
* dragonBones
*****************************************************/
export namespace dragonBones {
/** !#en Attach node tool
!#zh 挂点工具类 */
export class AttachUtil {
/**
!#en Gets attached root node.
!#zh 获取挂接节点树的根节点
*/
getAttachedRootNode(): cc.Node;
/**
!#en Gets attached node which you want.
!#zh 获得对应的挂点
@param boneName boneName
*/
getAttachedNodes(boneName: string): cc.Node[];
/**
!#en Destroy attached node which you want.
!#zh 销毁对应的挂点
@param boneName boneName
*/
destroyAttachedNodes(boneName: string): void;
/**
!#en Traverse all bones to generate the minimum node tree containing the given bone names, NOTE that make sure the skeleton has initialized before calling this interface.
!#zh 遍历所有插槽,生成包含所有给定插槽名称的最小节点树,注意,调用该接口前请确保骨骼动画已经初始化好。
@param boneName boneName
*/
generateAttachedNodes(boneName: string): cc.Node[];
/**
!#en Destroy all attached node.
!#zh 销毁所有挂点
*/
destroyAllAttachedNodes(): void;
/**
!#en Traverse all bones to generate a tree containing all bones nodes, NOTE that make sure the skeleton has initialized before calling this interface.
!#zh 遍历所有插槽,生成包含所有插槽的节点树,注意,调用该接口前请确保骨骼动画已经初始化好。
*/
generateAllAttachedNodes(): cc.Node;
}
}
}
/** !#en
This module controls asset's behaviors and information, include loading, releasing etc.
All member can be accessed with `cc.assetManager`. All class or enum can be accessed with `cc.AssetManager`
!#zh
此模块管理资源的行为和信息,包括加载,释放等,所有成员能够通过 `cc.assetManager` 调用. 所有类型或枚举能通过 `cc.AssetManager` 访问 */
declare namespace cc.AssetManager {
/** !#en
This module contains the builtin asset, it's a singleton, all member can be accessed with `cc.assetManager.builtins`
!#zh
此模块包含内建资源,这是一个单例,所有成员能通过 `cc.assetManager.builtins` 访问 */
export class Builtins {
/**
!#en
Initialize
!#zh
初始化
@param cb Callback when finish loading built-in assets
*/
init (cb: () => void): void;
/**
!#en
Get the built-in asset using specific type and name.
!#zh
通过特定的类型和名称获取内建资源
@param type The type of asset, such as `effect`
@param name The name of asset, such as `phong`
@example
```js
cc.assetManaer.builtins.getBuiltin('effect', 'phone');
```
*/
getBuiltin(type?: string, name?: string): cc.Asset | Cache<cc.Asset>;
/**
!#en
Clear all builtin assets
!#zh
清空所有内置资源
*/
clear(): void;
}
/** !#en
A bundle contains an amount of assets(includes scene), you can load, preload, release asset which is in this bundle
!#zh
一个包含一定数量资源(包括场景)的包,你可以加载,预加载,释放此包内的资源 */
export class Bundle {
/**
!#en
Create a bundle
!#zh
创建一个 bundle
*/
constructor();
/** !#en
The name of this bundle
!#zh
此 bundle 的名称 */
name: string;
/** !#en
The dependency of this bundle
!#zh
此 bundle 的依赖 */
deps: string[];
/** !#en
The root path of this bundle, such like 'http://example.com/bundle1'
!#zh
此 bundle 的根路径, 例如 'http://example.com/bundle1' */
base: string;
/**
!#en
Get asset's info using path, only valid when asset is in bundle folder.
!#zh
使用 path 获取资源的配置信息
@param path The relative path of asset, such as 'images/a'
@param type The constructor of asset, such as `cc.Texture2D`
@example
```js
var info = bundle.getInfoWithPath('image/a', cc.Texture2D);
```
*/
getInfoWithPath (path: string, type?: typeof cc.Asset): Record<string, any>;
/**
!#en
Get all asset's info within specific folder
!#zh
获取在某个指定文件夹下的所有资源信息
@param path The relative path of folder, such as 'images'
@param type The constructor should be used to filter paths
@param out The output array
@example
```js
var infos = [];
bundle.getDirWithPath('images', cc.Texture2D, infos);
```
*/
getDirWithPath (path: string, type: typeof cc.Asset, out: Array<Record<string, any>>): Array<Record<string, any>>;
getDirWithPath (path: string, type: typeof cc.Asset): Array<Record<string, any>>;
getDirWithPath (path: string): Array<Record<string, any>>;
/**
!#en
Get asset's info with uuid
!#zh
通过 uuid 获取资源信息
@param uuid The asset's uuid
@example
```js
var info = bundle.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z');
```
*/
getAssetInfo (uuid: string): Record<string, any>;
/**
!#en
Get scene'info with name
!#zh
通过场景名获取场景信息
@param name The name of scene
@example
```js
var info = bundle.getSceneInfo('first.fire');
```
*/
getSceneInfo(name: string): Record<string, any>;
/**
!#en
Initialize this bundle with options
!#zh
初始化此 bundle
@param options options
*/
init(options: Record<string, any>): void;
/**
!#en
Load the asset within this bundle by the path which is relative to bundle's path
!#zh
通过相对路径加载分包中的资源。路径是相对分包文件夹路径的相对路径
@param paths Paths of the target assets.The path is relative to the bundle's folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param onProgress Callback invoked when progression change.
@param onComplete Callback invoked when all assets loaded.
@example
```js
// load the texture (${project}/assets/resources/textures/background.jpg) from resources
cc.resources.load('textures/background', cc.Texture2D, (err, texture) => console.log(err));
// load the audio (${project}/assets/resources/music/hit.mp3) from resources
cc.resources.load('music/hit', cc.AudioClip, (err, audio) => console.log(err));
// load the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder
bundle1.load('misc/character/cocos', cc.Prefab, (err, prefab) => console.log(err));
// load the sprite frame (${project}/assets/some/xxx/bundle2/imgs/cocos.png) from bundle2 folder
bundle2.load('imgs/cocos', cc.SpriteFrame, null, (err, spriteFrame) => console.log(err));
```
*/
load<T extends cc.Asset>(paths: string|string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T|Array<T>) => void): void;
load<T extends cc.Asset>(paths: string|string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T|Array<T>) => void): void;
load<T extends cc.Asset>(paths: string|string[], type: typeof cc.Asset, onComplete: (error: Error, assets: T|Array<T>) => void): void;
load<T extends cc.Asset>(paths: string|string[], onComplete: (error: Error, assets: T|Array<T>) => void): void;
load<T extends cc.Asset>(paths: string|string[], type: typeof cc.Asset): void;
load<T extends cc.Asset>(paths: string|string[]): void;
/**
!#en
Preload the asset within this bundle by the path which is relative to bundle's path.
After calling this method, you still need to finish loading by calling `Bundle.load`.
It will be totally fine to call `Bundle.load` at any time even if the preloading is not
yet finished
!#zh
通过相对路径预加载分包中的资源。路径是相对分包文件夹路径的相对路径。调用完后,你仍然需要通过 `Bundle.load` 来完成加载。
就算预加载还没完成,你也可以直接调用 `Bundle.load`。
@param paths Paths of the target asset.The path is relative to bundle folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param onProgress Callback invoked when progression change.
@param onComplete Callback invoked when the resource loaded.
@example
```js
// preload the texture (${project}/assets/resources/textures/background.jpg) from resources
cc.resources.preload('textures/background', cc.Texture2D);
// preload the audio (${project}/assets/resources/music/hit.mp3) from resources
cc.resources.preload('music/hit', cc.AudioClip);
// wait for while
cc.resources.load('music/hit', cc.AudioClip, (err, audioClip) => {});
* // preload the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder
bundle1.preload('misc/character/cocos', cc.Prefab);
// load the sprite frame of (${project}/assets/bundle2/imgs/cocos.png) from bundle2 folder
bundle2.preload('imgs/cocos', cc.SpriteFrame);
// wait for while
bundle2.load('imgs/cocos', cc.SpriteFrame, (err, spriteFrame) => {});
```
*/
preload(paths: string|string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void;
preload(paths: string|string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void;
preload(paths: string|string[], type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void;
preload(paths: string|string[], type: typeof cc.Asset): void;
preload(paths: string|string[], onComplete: (error: Error, items: RequestItem[]) => void): void;
preload(paths: string|string[]): void;
/**
!#en
Load all assets under a folder inside the bundle folder.<br>
<br>
Note: All asset paths in Creator use forward slashes, paths using backslashes will not work.
!#zh
加载目标文件夹中的所有资源, 注意:路径中只能使用斜杠,反斜杠将停止工作
@param dir path of the target folder.The path is relative to the bundle folder, extensions must be omitted.
@param type Only asset of type will be loaded if this argument is supplied.
@param onProgress Callback invoked when progression change.
@param onComplete A callback which is called when all assets have been loaded, or an error occurs.
@example
```js
// load all audios (resources/audios/)
cc.resources.loadDir('audios', cc.AudioClip, (err, audios) => {});
// load all textures in "resources/imgs/"
cc.resources.loadDir('imgs', cc.Texture2D, null, function (err, textures) {
var texture1 = textures[0];
var texture2 = textures[1];
});
// load all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder
bundle1.loadDir('misc/characters', cc.Prefab, (err, prefabs) => console.log(err));
// load all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder
bundle2.loadDir('skills', cc.SpriteFrame, null, (err, spriteFrames) => console.log(err));
```
*/
loadDir<T extends cc.Asset>(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array<T>) => void): void;
loadDir<T extends cc.Asset>(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array<T>) => void): void;
loadDir<T extends cc.Asset>(dir: string, type: typeof cc.Asset, onComplete: (error: Error, assets: Array<T>) => void): void;
loadDir<T extends cc.Asset>(dir: string, type: typeof cc.Asset): void;
loadDir<T extends cc.Asset>(dir: string, onComplete: (error: Error, assets: Array<T>) => void): void;
loadDir<T extends cc.Asset>(dir: string): void;
/**
!#en
Preload all assets under a folder inside the bundle folder.<br> After calling this method, you still need to finish loading by calling `Bundle.loadDir`.
It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished
!#zh
预加载目标文件夹中的所有资源。调用完后,你仍然需要通过 `Bundle.loadDir` 来完成加载。
就算预加载还没完成,你也可以直接调用 `Bundle.loadDir`。
@param dir path of the target folder.The path is relative to the bundle folder, extensions must be omitted.
@param type Only asset of type will be preloaded if this argument is supplied.
@param onProgress Callback invoked when progression change.
@param onComplete A callback which is called when all assets have been loaded, or an error occurs.
@example
```js
// preload all audios (resources/audios/)
cc.resources.preloadDir('audios', cc.AudioClip);
// preload all textures in "resources/imgs/"
cc.resources.preloadDir('imgs', cc.Texture2D);
// wait for while
cc.resources.loadDir('imgs', cc.Texture2D, (err, textures) => {});
// preload all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder
bundle1.preloadDir('misc/characters', cc.Prefab);
// preload all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder
bundle2.preloadDir('skills', cc.SpriteFrame);
// wait for while
bundle2.loadDir('skills', cc.SpriteFrame, (err, spriteFrames) => {});
```
*/
preloadDir(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void;
preloadDir(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void;
preloadDir(dir: string, type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void;
preloadDir(dir: string, type: typeof cc.Asset): void;
preloadDir(dir: string, onComplete: (error: Error, items: RequestItem[]) => void): void;
preloadDir(dir: string): void;
/**
!#en
Loads the scene within this bundle by its name.
!#zh
通过场景名称加载分包中的场景。
@param sceneName The name of the scene to load.
@param options Some optional parameters
@param onProgress Callback invoked when progression change.
@param onComplete callback, will be called after scene launched.
@example
```js
bundle1.loadScene('first', (err, sceneAsset) => cc.director.runScene(sceneAsset));
```
*/
loadScene(sceneName: string, options: Record<string, any>, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void;
loadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void;
loadScene(sceneName: string, options: Record<string, any>, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void;
loadScene(sceneName: string, options: Record<string, any>): void;
loadScene(sceneName: string, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void;
loadScene(sceneName: string): void;
/**
!#en
Preloads the scene within this bundle by its name. After calling this method, you still need to finish loading by calling `Bundle.loadScene` or `cc.director.loadScene`.
It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished
!#zh
通过场景名称预加载分包中的场景.调用完后,你仍然需要通过 `Bundle.loadScene` 或 `cc.director.loadScene` 来完成加载。
就算预加载还没完成,你也可以直接调用 `Bundle.loadScene` 或 `cc.director.loadScene`。
@param sceneName The name of the scene to preload.
@param options Some optional parameters
@param onProgress callback, will be called when the load progression change.
@param onComplete callback, will be called after scene loaded.
@example
```js
bundle1.preloadScene('first');
// wait for a while
bundle1.loadScene('first', (err, scene) => cc.director.runScene(scene));
```
*/
preloadScene(sceneName: string, options: Record<string, any>, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void;
preloadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void;
preloadScene(sceneName: string, options: Record<string, any>, onComplete: (error: Error) => void): void;
preloadScene(sceneName: string, options: Record<string, any>): void;
preloadScene(sceneName: string, onComplete: (error: Error) => void): void;
preloadScene(sceneName: string): void;
/**
!#en
Get asset within this bundle by path and type. <br>
After you load asset with {{#crossLink "Bundle/load:method"}}{{/crossLink}} or {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}},
you can acquire them by passing the path to this API.
!#zh
通过路径与类型获取资源。在你使用 {{#crossLink "Bundle/load:method"}}{{/crossLink}} 或者 {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} 之后,
你能通过传路径通过这个 API 获取到这些资源。
@param path The path of asset
@param type Only asset of type will be returned if this argument is supplied.
@example
```js
bundle1.get('music/hit', cc.AudioClip);
```
*/
get (path: string, type?: typeof cc.Asset): cc.Asset;
/**
!#en
Release the asset loaded by {{#crossLink "Bundle/load:method"}}{{/crossLink}} or {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} and it's dependencies.
Refer to {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} for detailed informations.
!#zh
释放通过 {{#crossLink "Bundle/load:method"}}{{/crossLink}} 或者 {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} 加载的资源。详细信息请参考 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}}
@param path The path of asset
@param type Only asset of type will be released if this argument is supplied.
@example
```js
// release a texture which is no longer need
bundle1.release('misc/character/cocos');
```
*/
release(path: string, type: typeof cc.Asset): void;
release(path: string): void;
/**
!#en
Release all assets within this bundle. Refer to {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}} for detailed informations.
!#zh
释放此包中的所有资源。详细信息请参考 {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}}
@example
```js
// release all asset within bundle1
bundle1.releaseAll();
```
*/
releaseAll(): void;
}
/** !#en
Cache manager is a module which controls all caches downloaded from server in non-web platform, it is a singleton
All member can be accessed with `cc.assetManager.cacheManager`.
!#zh
缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存,这是一个单例,所有成员能通过 `cc.assetManager.cacheManager` 访问。 */
export class CacheManager {
/** !#en
The name of cacheDir
!#zh
缓存目录的名称 */
cacheDir: string;
/** !#en
Whether or not cache asset into user's storage space, this property only works on mini-game platforms
!#zh
是否缓存资源到用户存储空间,此属性只在小游戏平台有效 */
cacheEnabled: boolean;
/** !#en
Whether or not auto clear cache when storage ran out, this property only works on mini-game platforms
!#zh
是否在存储空间满了后自动清理缓存,此属性只在小游戏平台有效 */
autoClear: boolean;
/** !#en
The interval between caching resources, this property only works on mini-game platforms
!#zh
缓存资源的间隔时间,此属性只在小游戏平台有效 */
cacheInterval: number;
/** !#en
The interval between deleting resources, when you use `cleanLRU`, the resources will be deleted as this interval
!#zh
清理资源的间隔时间,当你使用 `cleanLRU` 时,资源将以此间隔被删除 */
deleteInterval: number;
/**
!#en
Get cached path with origin url
!#zh
通过原始 url 获取缓存后的路径
@param originUrl originUrl
*/
getCache(originUrl: string): string;
/**
!#en
Get temporary path with origin url, this method only works on mini-game platforms
!#zh
通过原始 url 获取临时文件的路径,此方法只在小游戏平台有效
@param originUrl originUrl
*/
getTemp(originUrl: string): string;
/**
!#en
Clear all caches, please use with caution, If necessary, we recommend using it before the game is launched
!#zh
清空所有缓存,请谨慎使用,如果必要的话,我们建议在游戏启动之前使用
*/
clearCache(): void;
/**
!#en
Clear part of caches with LRU strategy
!#zh
使用 LRU 策略清空部分缓存
*/
clearLRU(): void;
/**
!#en
Remove cache with origin url
!#zh
通过原始 url 移除缓存
*/
removeCache(): void;
}
/** !#en
use to cache something
!#zh
用于缓存某些内容 */
export class Cache<T = any> {
/**
!#en
Create a cache
!#zh
创建一个 cache
@param map An object used to initialize
*/
constructor(map?: Record<string, T>);
/**
!#en
Add Key-Value to cache
!#zh
增加键值对到缓存中
@param key The key
@param val The value
@example
```js
var cache = new Cache();
cache.add('test', null);
```
*/
add(key: string, val: T): T;
/**
!#en
Get the cached content by key
!#zh
通过 key 获取对应的 value
@param key The key
@example
```js
var cache = new Cache();
var test = cache.get('test');
```
*/
get(key: string): T;
/**
!#en
Check whether or not content exists by key
!#zh
通过 Key 判断是否存在对应的内容
@param key The key
@example
```js
var cache = new Cache();
var exist = cache.has('test');
```
*/
has(key: string): boolean;
/**
!#en
Remove the cached content by key
!#zh
通过 Key 移除对应的内容
@param key The key
@example
```js
var cache = new Cache();
var content = cache.remove('test');
```
*/
remove(key: string): T;
/**
!#en
Clear all content
!#zh
清除所有内容
@example
```js
var cache = new Cache();
cache.clear();
```
*/
clear():void;
/**
!#en
Enumerate all content and invoke function
!#zh
枚举所有内容并执行方法
@param func Function to be invoked
@example
```js
var cache = new Cache();
cache.forEach((val, key) => console.log(key));
```
*/
forEach(func: (val: T, key: string) => void): void;
/**
!#en
Enumerate all content to find one element which can fulfill condition
!#zh
枚举所有内容,找到一个可以满足条件的元素
@param predicate The condition
@example
```js
var cache = new Cache();
var val = cache.find((val, key) => key === 'test');
```
*/
find(predicate: (val: T, key: string) => boolean): T;
/** !#en
The count of cached content
!#zh
缓存数量 */
count: number;
/**
!#en
Destroy this cache
!#zh
销毁这个 cache
*/
destroy(): void;
}
/** !#en
Control asset's dependency list, it is a singleton. All member can be accessed with `cc.assetManager.dependUtil`
!#zh
控制资源的依赖列表,这是一个单例, 所有成员能通过 `cc.assetManager.dependUtil` 访问 */
export class DependUtil {
/**
!#en
Get asset's native dependency. For example, Texture's native dependency is image.
!#zh
获取资源的原生依赖,例如 Texture 的原生依赖是图片
@param uuid asset's uuid
@example
```js
var dep = dependUtil.getNativeDep('fcmR3XADNLgJ1ByKhqcC5Z');
```
*/
getNativeDep(uuid: string): Record<string, any>;
/**
!#en
Get asset's direct referencing non-native dependency list. For example, Material's non-native dependencies are Texture.
!#zh
获取资源直接引用的非原生依赖列表,例如,材质的非原生依赖是 Texture
@param uuid asset's uuid
@example
```js
var deps = dependUtil.getDeps('fcmR3XADNLgJ1ByKhqcC5Z');
```
*/
getDeps(uuid: string): string[];
/**
!#en
Get non-native dependency list of the loaded asset, include indirect reference.
The returned array stores the dependencies with their uuid, after retrieve dependencies,
!#zh
获取某个已经加载好的资源的所有非原生依赖资源列表,包括间接引用的资源,并保存在数组中返回。
返回的数组将仅保存依赖资源的 uuid。
@param uuid The asset's uuid
@example
```js
var deps = dependUtil.getDepsRecursively('fcmR3XADNLgJ1ByKhqcC5Z');
```
*/
getDepsRecursively(uuid: string): string[];
}
/** !#en
Control all download process, it is a singleton. All member can be accessed with `cc.assetManager.downloader` , it can download several types of files:
1. Text
2. Image
3. Audio
4. Assets
5. Scripts
!#zh
管理所有下载过程,downloader 是个单例,所有成员能通过 `cc.assetManager.downloader` 访问,它能下载以下几种类型的文件:
1. 文本
2. 图片
3. 音频
4. 资源
5. 脚本 */
export class Downloader {
/** !#en
The maximum number of concurrent when downloading
!#zh
下载时的最大并发数 */
maxConcurrency: number;
/** !#en
The maximum number of request can be launched per frame when downloading
!#zh
下载时每帧可以启动的最大请求数 */
maxRequestsPerFrame: number;
/** !#en
The max number of retries when fail
!#zh
失败重试次数 */
maxRetryCount: number;
/** !#en
Wait for while before another retry, unit: ms
!#zh
重试的间隔时间 */
retryInterval: number;
/**
!#en
Use Image element to download image
!#zh
使用 Image 元素来下载图片
@param url Url of the image
@param options Some optional paramters
@param onComplete Callback when image loaded or failed
@example
```js
downloadDomImage('http://example.com/test.jpg', null, (err, img) => console.log(err));
```
*/
downloadDomImage(url: string, options?: Record<string, any> , onComplete?: (err: Error, img: HTMLImageElement) => void): HTMLImageElement;
downloadDomImage(url: string, onComplete?: (err: Error, img: HTMLImageElement) => void): HTMLImageElement;
/**
!#en
Use audio element to download audio
!#zh
使用 Audio 元素来下载音频
@param url Url of the audio
@param options Some optional paramters
@param onComplete Callback invoked when audio loaded or failed
@example
```js
downloadDomAudio('http://example.com/test.mp3', null, (err, audio) => console.log(err));
```
*/
downloadDomAudio(url: string, options?: Record<string, any>, onComplete?: (err: Error, audio: HTMLAudioElement) => void): HTMLAudioElement;
downloadDomAudio(url: string, onComplete?: (err: Error, audio: HTMLAudioElement) => void): HTMLAudioElement;
/**
!#en
Use XMLHttpRequest to download file
!#zh
使用 XMLHttpRequest 来下载文件
@param url Url of the file
@param options Some optional paramters
@param onFileProgress Callback continuously during download is processing
@param onComplete Callback when file loaded or failed
@example
```js
downloadFile('http://example.com/test.bin', {responseType: 'arraybuffer'}, null, (err, arrayBuffer) => console.log(err));
```
*/
downloadFile(url: string, options?: Record<string, any>, onFileProgress?: (loaded: Number, total: Number) => void, onComplete?: (err: Error, response: any) => void): XMLHttpRequest;
downloadFile(url: string, onFileProgress?: (loaded: Number, total: Number) => void, onComplete?: (err: Error, response: any) => void): XMLHttpRequest;
downloadFile(url: string, options?: Record<string, any>, onComplete?: (err: Error, response: any) => void): XMLHttpRequest;
downloadFile(url: string, onComplete?: (err: Error, response: any) => void): XMLHttpRequest;
/**
!#en
Load script
!#zh
加载脚本
@param url Url of the script
@param options Some optional paramters
@param onComplete Callback when script loaded or failed
@example
```js
downloadScript('http://localhost:8080/index.js', null, (err) => console.log(err));
```
*/
downloadScript(url: string, options?: Record<string, any>, onComplete?: (err: Error) => void): void;;
downloadScript(url: string, onComplete?: (err: Error) => void): void;;
/**
!#en
Register custom handler if you want to change default behavior or extend downloader to download other format file
!#zh
当你想修改默认行为或者拓展 downloader 来下载其他格式文件时可以注册自定义的 handler
@param type Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler}
@param handler handler
@example
```js
downloader.register('.tga', (url, options, onComplete) => onComplete(null, null));
downloader.register({'.tga': (url, options, onComplete) => onComplete(null, null), '.ext': (url, options, onComplete) => onComplete(null, null)});
```
*/
register(type: string, handler: (url: string, options: Record<string, any>, onComplete: (err: Error, content: any) => void) => void): void;
register(map: Record<string, (url: string, options: Record<string, any>, onComplete: (err: Error, content: any) => void) => void>): void;
/**
!#en
Use corresponding handler to download file under limitation
!#zh
在限制下使用对应的 handler 来下载文件
@param url The url should be downloaded
@param type The type indicates that which handler should be used to download, such as '.jpg'
@param options some optional paramters will be transferred to the corresponding handler.
@param onComplete callback when finishing downloading
@example
```js
download('http://example.com/test.tga', '.tga', {onFileProgress: (loaded, total) => console.lgo(loaded/total)}, onComplete: (err) => console.log(err));
```
*/
download(id: string, url: string, type: string, options: Record<string, any>, onComplete: (err: Error, content: any) => void): void;
}
/** !#en
Provide some helpful function, it is a singleton. All member can be accessed with `cc.assetManager.utils`
!#zh
提供一些辅助方法,helper 是一个单例, 所有成员能通过 `cc.assetManager.utils` 访问 */
export class Helper {
/**
!#en
Decode uuid, returns the original uuid
!#zh
解码 uuid,返回原始 uuid
@param base64 the encoded uuid
@example
```js
var uuid = 'fcmR3XADNLgJ1ByKhqcC5Z';
var originalUuid = decodeUuid(uuid); // fc991dd7-0033-4b80-9d41-c8a86a702e59
```
*/
decodeUuid(base64: string): string;
/**
!#en
Extract uuid from url
!#zh
从 url 中提取 uuid
@param url url
@example
```js
var url = 'res/import/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.json';
var uuid = getUuidFromURL(url); // fc991dd7-0033-4b80-9d41-c8a86a702e59
```
*/
getUuidFromURL(url: string): string;
/**
!#en
Transform uuid to url
!#zh
转换 uuid 为 url
@param uuid The uuid of asset
@param options Some optional parameters
@example
```js
var url = getUrlWithUuid('fcmR3XADNLgJ1ByKhqcC5Z', {isNative: false});
```
*/
getUrlWithUuid(uuid: string, options?: Record<string, any>): string;
/**
!#en
Check if the type of data is cc.Scene or cc.Prefab
!#zh
检测数据的类型是否是 Scene 或者 Prefab
@param json serialized data
*/
isSceneObj(json: any): boolean;
/**
!#en
Check if the type of asset is scene
!#zh
检查资源类型是否是场景
@param asset asset
*/
isScene(asset: any): boolean;
/**
!#en
Normalize url, strip './' and '/'
!#zh
标准化 url ,去除 './' 和 '/'
@param url url
*/
normalize(url: string): string;
}
/** !#en
Handle the packed asset, include unpacking, loading, cache and so on. It is a singleton. All member can be accessed with `cc.assetManager.packManager`
!#zh
处理打包资源,包括拆包,加载,缓存等等,这是一个单例, 所有成员能通过 `cc.assetManager.packManager` 访问 */
export class PackManager {
/**
!#en
Unpack the json, revert to what it was before packing
!#zh
拆解 json 包,恢复为打包之前的内容
@param pack The pack
@param json The content of pack
@param options Some optional parameters
@param onComplete Callback when finish unpacking
@example
```js
downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => {
packManager.unpackJson(['a', 'b'], file, null, (err, data) => console.log(err));
});
```
*/
unpackJson(pack: string[], json: any, options: Record<string, any>, onComplete?: (err: Error, content: any) => void): void;
/**
!#en
Register custom handler if you want to change default behavior or extend packManager to unpack other format pack
!#zh
当你想修改默认行为或者拓展 packManager 来拆分其他格式的包时可以注册自定义的 handler
@param type Extension likes '.bin' or map likes {'.bin': binHandler, '.ab': abHandler}
@param handler handler
@example
```js
packManager.register('.bin', (packUuid, file, options, onComplete) => onComplete(null, null));
packManager.register({'.bin': (packUuid, file, options, onComplete) => onComplete(null, null), '.ab': (packUuid, file, options, onComplete) => onComplete(null, null)});
```
*/
register(type: string, handler: (packUuid: string, data: any, options: Record<string, any>, onComplete: (err: Error, content: any) => void) => void): void;
register(map: Record<string, (packUuid: string, data: any, options: Record<string, any>, onComplete: (err: Error, content: any) => void) => void>): void;
/**
!#en
Use corresponding handler to unpack package
!#zh
用对应的 handler 来进行解包
@param pack The uuid of packed assets
@param data The packed data
@param type The type indicates that which handler should be used to download, such as '.jpg'
@param options Some optional parameter
@param onComplete callback when finishing unpacking
@example
```js
downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => {
packManager.unpack(['2fawq123d', '1zsweq23f'], file, '.json', null, (err, data) => console.log(err));
});
```
*/
unpack(pack: string[], data: any, type: string, options: Record<string, any>, onComplete?: (err: Error, data: any) => void): void;
/**
!#en
Download request item, If item is not in any package, download as usual. Otherwise, download the corresponding package and unpack it.
And then retrieve the corresponding content form it.
!#zh
下载请求对象,如果请求对象不在任何包内,则正常下载,否则下载对应的 package 并进行拆解,并取回包内对应的内容
@param item Some item you want to download
@param options Some optional parameters
@param onComplete Callback when finished
@example
```js
var requestItem = cc.AssetManager.RequestItem.create();
requestItem.uuid = 'fcmR3XADNLgJ1ByKhqcC5Z';
requestItem.info = config.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z');
packManager.load(requestItem, null, (err, data) => console.log(err));
```
*/
load(item: RequestItem, options: Record<string, any>, onComplete: (err: Error, data: any) => void): void;
}
/** !#en
Parse the downloaded file, it's a singleton, all member can be accessed with `cc.assetManager.parser`
!#zh
解析已下载的文件,parser 是一个单例, 所有成员能通过 `cc.assetManaager.parser` 访问 */
export class Parser {
/**
!#en
Parse image file
!#zh
解析图片文件
@param file The downloaded file
@param options Some optional paramters
@param onComplete callback when finish parsing.
@example
```js
downloader.downloadFile('test.jpg', {responseType: 'blob'}, null, (err, file) => {
parser.parseImage(file, null, (err, img) => console.log(err));
});
```
*/
parseImage(file: Blob, options: Record<string, any>, onComplete?: (err: Error, img: ImageBitmap|HTMLImageElement) => void): void;
/**
!#en
Parse audio file
!#zh
解析音频文件
@param file The downloaded file
@param options Some optional paramters
@param onComplete Callback when finish parsing.
@example
```js
downloader.downloadFile('test.mp3', {responseType: 'arraybuffer'}, null, (err, file) => {
parser.parseAudio(file, null, (err, audio) => console.log(err));
});
```
*/
parseAudio(file: ArrayBuffer|HTMLAudioElement, options: Record<string, any>, onComplete?: (err: Error, audio: AudioBuffer|HTMLAudioElement) => void): void;
/**
!#en
Parse pvr file
!#zh
解析压缩纹理格式 pvr 文件
@param file The downloaded file
@param options Some optional paramters
@param onComplete Callback when finish parsing.
@example
```js
downloader.downloadFile('test.pvr', {responseType: 'arraybuffer'}, null, (err, file) => {
parser.parsePVRTex(file, null, (err, pvrAsset) => console.log(err));
});
```
*/
parsePVRTex(file: ArrayBuffer|ArrayBufferView, options: Record<string, any>, onComplete: (err: Error, pvrAsset: {_data: Uint8Array, _compressed: boolean, width: number, height: number}) => void): void;
/**
!#en
Parse pkm file
!#zh
解析压缩纹理格式 pkm 文件
@param file The downloaded file
@param options Some optional paramters
@param onComplete Callback when finish parsing.
@example
```js
downloader.downloadFile('test.pkm', {responseType: 'arraybuffer'}, null, (err, file) => {
parser.parsePKMTex(file, null, (err, etcAsset) => console.log(err));
});
```
*/
parsePKMTex(file: ArrayBuffer|ArrayBufferView, options: Record<string, any>, onComplete: (err: Error, etcAsset: {_data: Uint8Array, _compressed: boolean, width: number, height: number}) => void): void;
/**
!#en
Parse plist file
!#zh
解析 plist 文件
@param file The downloaded file
@param options Some optional paramters
@param onComplete Callback when finish parsing
@example
```js
downloader.downloadFile('test.plist', {responseType: 'text'}, null, (err, file) => {
parser.parsePlist(file, null, (err, data) => console.log(err));
});
```
*/
parsePlist(file: string, options: Record<string, any>, onComplete?: (err: Error, data: any) => void): void;
/**
!#en
Deserialize asset file
!#zh
反序列化资源文件
@param file The serialized json
@param options Some optional paramters
@param onComplete Callback when finish parsing
@example
```js
downloader.downloadFile('test.json', {responseType: 'json'}, null, (err, file) => {
parser.parseImport(file, null, (err, data) => console.log(err));
});
```
*/
parseImport (file: any, options: Record<string, any>, onComplete?: (err: Error, asset: cc.Asset) => void): void;
/**
!#en
Register custom handler if you want to change default behavior or extend parser to parse other format file
!#zh
当你想修改默认行为或者拓展 parser 来解析其他格式文件时可以注册自定义的handler
@param type Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler}
@param handler The corresponding handler
@example
```js
parser.register('.tga', (file, options, onComplete) => onComplete(null, null));
parser.register({'.tga': (file, options, onComplete) => onComplete(null, null), '.ext': (file, options, onComplete) => onComplete(null, null)});
```
*/
register(type: string, handler: (file: any, options: Record<string, any>, onComplete: (err: Error, data: any) => void) => void): void;
register(map: Record<string, (file: any, options: Record<string, any>, onComplete: (err: Error, data: any) => void) => void>): void;
/**
!#en
Use corresponding handler to parse file
!#zh
使用对应的handler来解析文件
@param id The id of file
@param file File
@param type The corresponding type of file, likes '.jpg'.
@param options Some optional paramters will be transferred to the corresponding handler.
@param onComplete callback when finishing downloading
@example
```js
downloader.downloadFile('test.jpg', {responseType: 'blob'}, null, (err, file) => {
parser.parse('test.jpg', file, '.jpg', null, (err, img) => console.log(err));
});
```
*/
parse(id: string, file: any, type: string, options: Record<string, any>, onComplete: (err: Error, content: any) => void): void;
}
/** !#en
Pipeline can execute the task for some effect.
!#zh
管线能执行任务达到某个效果 */
export class Pipeline {
/** !#en
The id of pipeline
!#zh
管线的 id */
id: number;
/** !#en
The name of pipeline
!#zh
管线的名字 */
name: string;
/** !#en
All pipes of pipeline
!#zh
所有的管道 */
pipes: Function[];
/**
!#en
Create a new pipeline
!#zh
创建一个管线
@param name The name of pipeline
@param funcs The array of pipe, every pipe must be function which take two parameters, the first is a `Task` flowed in pipeline, the second is complete callback
@example
```js
var pipeline = new Pipeline('download', [
(task, done) => {
var url = task.input;
cc.assetManager.downloader.downloadFile(url, null, null, (err, result) => {
task.output = result;
done(err);
});
},
(task, done) => {
var text = task.input;
var json = JSON.stringify(text);
task.output = json;
done();
}
]);
```
*/
constructor(name: string, funcs: Array<(task: Task, done?: (err: Error) => void) => void>);
/**
!#en
At specific point insert a new pipe to pipeline
!#zh
在某个特定的点为管线插入一个新的 pipe
@param func The new pipe
@param index The specific point you want to insert at.
@example
```js
var pipeline = new Pipeline('test', []);
pipeline.insert((task, done) => {
// do something
done();
}, 0);
```
*/
insert(func: (task: Task, callback?: (err: Error) => void) => void, index: number): Pipeline;
/**
!#en
Append a new pipe to the pipeline
!#zh
添加一个管道到管线中
@param func The new pipe
@example
```js
var pipeline = new Pipeline('test', []);
pipeline.append((task, done) => {
// do something
done();
});
```
*/
append(func: (task: Task, callback?: (err: Error) => void) => void): Pipeline;
/**
!#en
Remove pipe which at specific point
!#zh
移除特定位置的管道
@param index The specific point
@example
```js
var pipeline = new Pipeline('test', (task, done) => {
// do something
done();
});
pipeline.remove(0);
```
*/
remove(index: number): Pipeline;
/**
!#en
Execute task synchronously
!#zh
同步执行任务
@param task The task will be executed
@example
```js
var pipeline = new Pipeline('sync', [(task) => {
let input = task.input;
task.output = doSomething(task.input);
}]);
var task = new Task({input: 'test'});
console.log(pipeline.sync(task));
```
*/
sync(task: Task): any;
/**
!#en
Execute task asynchronously
!#zh
异步执行任务
@param task The task will be executed
@example
```js
var pipeline = new Pipeline('sync', [(task, done) => {
let input = task.input;
task.output = doSomething(task.input);
done();
}]);
var task = new Task({input: 'test', onComplete: (err, result) => console.log(result)});
pipeline.async(task);
```
*/
async(task: Task): void;
}
/** !#en
A collection of information about a request
!#zh
请求的相关信息集合 */
export class RequestItem {
/** !#en
The uuid of request
!#zh
请求资源的uuid */
uuid: string;
/** !#en
The final url of request
!#zh
请求的最终url */
url: string;
/** !#en
The extension name of asset
!#zh
资源的扩展名 */
ext: string;
/** !#en
The content of asset
!#zh
资源的内容 */
content: any;
/** !#en
The file of asset
!#zh
资源的文件 */
file: any;
/** !#en
The information of asset
!#zh
资源的相关信息 */
info: any;
/** !#en
Whether or not it is native asset
!#zh
资源是否是原生资源 */
isNative: boolean;
/** !#en
Custom options
!#zh
自定义参数 */
options: any;
/**
!#en
Create a request item
!#zh
创建一个 request item
*/
constructor();
/** !#en
The id of request, combined from uuid and isNative
!#zh
请求的 id, 由 uuid 和 isNative 组合而成 */
id: string;
/**
!#en
Recycle this for reuse
!#zh
回收 requestItem 用于复用
*/
recycle(): void;
/**
!#en
Create a new request item from pool
!#zh
从对象池中创建 requestItem
*/
static create(): RequestItem;
}
/** !#en
The builtin bundles
!#zh
内置 bundle */
export enum BuiltinBundleName {
RESOURCES = 0,
INTERNAL = 0,
MAIN = 0,
START_SCENE = 0,
}
/** !#en
Task is used to run in the pipeline for some effect
!#zh
任务用于在管线中运行以达成某种效果 */
export class Task {
/** !#en
The id of task
!#zh
任务id */
id: number;
/** !#en
The callback when task is completed
!#zh
完成回调 */
onComplete: Function;
/** !#en
The callback of progression
!#zh
进度回调 */
onProgress: Function;
/** !#en
The callback when something goes wrong
!#zh
错误回调 */
onError: Function;
/** !#en
The source of task
!#zh
任务的源 */
source: any;
/** !#en
The output of task
!#zh
任务的输出 */
output: any;
/** !#en
The input of task
!#zh
任务的输入 */
input: any;
/** !#en
The progression of task
!#zh
任务的进度 */
progress: any;
/** !#en
Custom options
!#zh
自定义参数 */
options: any;
/**
!#en
Create a new Task
!#zh
创建一个任务
@param options Some optional paramters
*/
constructor(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record<string, any>});
/**
!#en
Set paramters of this task
!#zh
设置任务的参数
@param options Some optional paramters
@example
```js
var task = new Task();
task.set({input: ['test'], onComplete: (err, result) => console.log(err), onProgress: (finish, total) => console.log(finish / total)});
```
*/
set(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record<string, any>}): void;
/**
!#en
Dispatch event
!#zh
发布事件
@param event The event name
@param param1 Parameter 1
@param param2 Parameter 2
@param param3 Parameter 3
@param param4 Parameter 4
@example
```js
var task = Task.create();
Task.onComplete = (msg) => console.log(msg);
Task.dispatch('complete', 'hello world');
```
*/
dispatch(event: string, param1?: any, param2?: any, param3?: any, param4?: any): void;
/**
!#en
Recycle this for reuse
!#zh
回收 task 用于复用
*/
recycle(): void;
/** !#en
Whether or not this task is completed
!#zh
此任务是否已经完成 */
isFinish: boolean;
/**
!#en
Create a new task from pool
!#zh
从对象池中创建 task
@param options Some optional paramters
*/
static create(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record<string, any>}): Task;
}
}
/** Some helpful utilities */
declare namespace cc.geomUtils {
/**
!#en
the distance between a point and a plane
!#zh
计算点和平面之间的距离。
@param point point
@param plane plane
*/
export function point_plane(point: cc.Vec3, plane: cc.Plane): number;
/**
!#en
the closest point on plane to a given point
!#zh
计算平面上最接近给定点的点。
@param out Closest point
@param point Given point
@param plane plane
*/
export function pt_point_plane(out: cc.Vec3, point: cc.Vec3, plane: cc.Plane): cc.Vec3;
/**
!#en
the closest point on aabb to a given point
!#zh
计算 aabb 上最接近给定点的点。
@param out Closest point.
@param point Given point.
@param aabb Align the axis around the box.
*/
export function pt_point_aabb(out: cc.Vec3, point: cc.Vec3, aabb: cc.Aabb): cc.Vec3;
/**
!#en
the closest point on obb to a given point
!#zh
计算 obb 上最接近给定点的点。
@param out Closest point
@param point Given point
@param obb Direction box
*/
export function pt_point_obb(out: cc.Vec3, point: cc.Vec3, obb: cc.Obb): cc.Vec3;
}
/** !#en Some JavaScript decorators which can be accessed with "cc._decorator".
!#zh 一些 JavaScript 装饰器,目前可以通过 "cc._decorator" 来访问。
(这些 API 仍不完全稳定,有可能随着 JavaScript 装饰器的标准实现而调整) */
declare namespace cc._decorator {
/**
!#en
Declare the standard [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)
as CCClass, please see [Class](../../../manual/en/scripting/class.html) for details.
!#zh
将标准写法的 [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) 声明为 CCClass,具体用法请参阅[类型定义](../../../manual/zh/scripting/class.html)。
@param name The class name used for serialization.
@example
```js
const {ccclass} = cc._decorator;
// define a CCClass, omit the name
@ccclass
class NewScript extends cc.Component {
// ...
}
// define a CCClass with a name
@ccclass('LoginData')
class LoginData {
// ...
}
```
*/
export function ccclass(name?: string): Function;
export function ccclass(_class?: Function): void;
/**
!#en
Declare property for [CCClass](../../../manual/en/scripting/reference/attributes.html).
!#zh
定义 [CCClass](../../../manual/zh/scripting/reference/attributes.html) 所用的属性。
@param options an object with some property attributes
@example
```js
const {ccclass, property} = cc._decorator;
@ccclass
class NewScript extends cc.Component {
@property({
type: cc.Node
})
targetNode1 = null;
@property(cc.Node)
targetNode2 = null;
@property(cc.Button)
targetButton = null;
@property
_width = 100;
@property
get width () {
return this._width;
}
@property
set width (value) {
this._width = value;
}
@property
offset = new cc.Vec2(100, 100);
@property(cc.Vec2)
offsets = [];
@property(cc.SpriteFrame)
frame = null;
}
// above is equivalent to (上面的代码相当于):
var NewScript = cc.Class({
properties: {
targetNode1: {
default: null,
type: cc.Node
},
targetNode2: {
default: null,
type: cc.Node
},
targetButton: {
default: null,
type: cc.Button
},
_width: 100,
width: {
get () {
return this._width;
},
set (value) {
this._width = value;
}
},
offset: new cc.Vec2(100, 100)
offsets: {
default: [],
type: cc.Vec2
}
frame: {
default: null,
type: cc.SpriteFrame
},
}
});
```
*/
export function property(options?: {type?: any; visible?: boolean|(() => boolean); displayName?: string; tooltip?: string; multiline?: boolean; readonly?: boolean; min?: number; max?: number; step?: number; range?: number[]; slide?: boolean; serializable?: boolean; formerlySerializedAs?: string; editorOnly?: boolean; override?: boolean; animatable?: boolean} | any[]|Function|cc.ValueType|number|string|boolean): Function;
export function property(_target: Object, _key: any, _desc?: any): void;
/**
!#en
Makes a CCClass that inherit from component execute in edit mode.<br>
By default, all components are only executed in play mode,
which means they will not have their callback functions executed while the Editor is in edit mode.
!#zh
允许继承自 Component 的 CCClass 在编辑器里执行。<br>
默认情况下,所有 Component 都只会在运行时才会执行,也就是说它们的生命周期回调不会在编辑器里触发。
@example
```js
const {ccclass, executeInEditMode} = cc._decorator;
@ccclass
@executeInEditMode
class NewScript extends cc.Component {
// ...
}
```
*/
export function executeInEditMode(): Function;
export function executeInEditMode(_class: Function): void;
/**
!#en
Automatically add required component as a dependency for the CCClass that inherit from component.
!#zh
为声明为 CCClass 的组件添加依赖的其它组件。当组件添加到节点上时,如果依赖的组件不存在,引擎将会自动将依赖组件添加到同一个节点,防止脚本出错。该设置在运行时同样有效。
@param requiredComponent requiredComponent
@example
```js
const {ccclass, requireComponent} = cc._decorator;
@ccclass
@requireComponent(cc.Sprite)
class SpriteCtrl extends cc.Component {
// ...
}
```
*/
export function requireComponent(requiredComponent: typeof cc.Component): Function;
/**
!#en
The menu path to register a component to the editors "Component" menu. Eg. "Rendering/CameraCtrl".
!#zh
将当前组件添加到组件菜单中,方便用户查找。例如 "Rendering/CameraCtrl"。
@param path The path is the menu represented like a pathname.
For example the menu could be "Rendering/CameraCtrl".
@example
```js
const {ccclass, menu} = cc._decorator;
@ccclass
@menu("Rendering/CameraCtrl")
class NewScript extends cc.Component {
// ...
}
```
*/
export function menu(path: string): Function;
/**
!#en
The execution order of lifecycle methods for Component.
Those less than 0 will execute before while those greater than 0 will execute after.
The order will only affect onLoad, onEnable, start, update and lateUpdate while onDisable and onDestroy will not be affected.
!#zh
设置脚本生命周期方法调用的优先级。优先级小于 0 的组件将会优先执行,优先级大于 0 的组件将会延后执行。优先级仅会影响 onLoad, onEnable, start, update 和 lateUpdate,而 onDisable 和 onDestroy 不受影响。
@param order The execution order of lifecycle methods for Component. Those less than 0 will execute before while those greater than 0 will execute after.
@example
```js
const {ccclass, executionOrder} = cc._decorator;
@ccclass
@executionOrder(1)
class CameraCtrl extends cc.Component {
// ...
}
```
*/
export function executionOrder(order: number): Function;
/**
!#en
Prevents Component of the same type (or subtype) to be added more than once to a Node.
!#zh
防止多个相同类型(或子类型)的组件被添加到同一个节点。
@example
```js
const {ccclass, disallowMultiple} = cc._decorator;
@ccclass
@disallowMultiple
class CameraCtrl extends cc.Component {
// ...
}
```
*/
export function disallowMultiple(): Function;
export function disallowMultiple(_class: Function): void;
/**
!#en
If specified, the editor's scene view will keep updating this node in 60 fps when it is selected, otherwise, it will update only if necessary.<br>
This property is only available if executeInEditMode is true.
!#zh
当指定了 "executeInEditMode" 以后,playOnFocus 可以在选中当前组件所在的节点时,提高编辑器的场景刷新频率到 60 FPS,否则场景就只会在必要的时候进行重绘。
@example
```js
const {ccclass, playOnFocus, executeInEditMode} = cc._decorator;
@ccclass
@executeInEditMode
@playOnFocus
class CameraCtrl extends cc.Component {
// ...
}
```
*/
export function playOnFocus(): Function;
export function playOnFocus(_class: Function): void;
/**
!#en
Specifying the url of the custom html to draw the component in **Properties**.
!#zh
自定义当前组件在 **属性检查器** 中渲染时所用的网页 url。
@param url url
@example
```js
const {ccclass, inspector} = cc._decorator;
@ccclass
@inspector("packages://inspector/inspectors/comps/camera-ctrl.js")
class NewScript extends cc.Component {
// ...
}
```
*/
export function inspector(path: string): Function;
/**
!#en
The custom documentation URL.
!#zh
指定当前组件的帮助文档的 url,设置过后,在 **属性检查器** 中就会出现一个帮助图标,用户点击将打开指定的网页。
@param url url
@example
```js
const {ccclass, help} = cc._decorator;
@ccclass
@help("app://docs/html/components/spine.html")
class NewScript extends cc.Component {
// ...
}
```
*/
export function help(path: string): Function;
/**
NOTE:<br>
The old mixins implemented in cc.Class(ES5) behaves exact the same as multiple inheritance.
But since ES6, class constructor can't be function-called and class methods become non-enumerable,
so we can not mix in ES6 Classes.<br>
See:<br>
[https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32](https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32)<br>
One possible solution (but IDE unfriendly):<br>
[http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes](http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/)<br>
<br>
NOTE:<br>
You must manually call mixins constructor, this is different from cc.Class(ES5).
@param ctor constructors to mix, only support ES5 constructors or classes defined by using `cc.Class`,
not support ES6 Classes.
@example
```js
const {ccclass, mixins} = cc._decorator;
class Animal { ... }
const Fly = cc.Class({
constructor () { ... }
});
@ccclass
@mixins(cc.EventTarget, Fly)
class Bird extends Animal {
constructor () {
super();
// You must manually call mixins constructor, this is different from cc.Class(ES5)
cc.EventTarget.call(this);
Fly.call(this);
}
// ...
}
```
*/
export function mixins(ctor: Function, ...rest: Function[]): Function;
}
/** !#en This module provides some JavaScript utilities. All members can be accessed with `cc.js`.
!#zh 这个模块封装了 JavaScript 相关的一些实用函数,你可以通过 `cc.js` 来访问这个模块。 */
declare namespace cc.js {
/**
Check the obj whether is number or not
If a number is created by using 'new Number(10086)', the typeof it will be "object"...
Then you can use this function if you care about this case.
@param obj obj
*/
export function isNumber(obj: any): boolean;
/**
Check the obj whether is string or not.
If a string is created by using 'new String("blabla")', the typeof it will be "object"...
Then you can use this function if you care about this case.
@param obj obj
*/
export function isString(obj: any): boolean;
/**
Copy all properties not defined in obj from arguments[1...n]
@param obj object to extend its properties
@param sourceObj source object to copy properties from
*/
export function addon(obj: any, ...sourceObj: any[]): any;
/**
copy all properties from arguments[1...n] to obj
@param obj obj
@param sourceObj sourceObj
*/
export function mixin(obj: any, ...sourceObj: any[]): any;
/**
Derive the class from the supplied base class.
Both classes are just native javascript constructors, not created by cc.Class, so
usually you will want to inherit using {{#crossLink "cc/Class:method"}}cc.Class {{/crossLink}} instead.
@param cls cls
@param base the baseclass to inherit
*/
export function extend(cls: Function, base: Function): Function;
/**
Get super class
@param ctor the constructor of subclass
*/
export function getSuper(ctor: Function): Function;
/**
Checks whether subclass is child of superclass or equals to superclass
@param subclass subclass
@param superclass superclass
*/
export function isChildClassOf(subclass: Function, superclass: Function): boolean;
/**
Removes all enumerable properties from object
@param obj obj
*/
export function clear(obj: any): void;
/**
Checks whether obj is an empty object
@param obj obj
*/
export function isEmptyObject(obj: any): boolean;
/**
Get property descriptor in object and all its ancestors
@param obj obj
@param name name
*/
export function getPropertyDescriptor(obj: any, name: string): any;
/**
Define value, just help to call Object.defineProperty.<br>
The configurable will be true.
@param obj obj
@param prop prop
@param value value
@param writable writable
@param enumerable enumerable
*/
export function value(obj: any, prop: string, value: any, writable?: boolean, enumerable?: boolean): void;
/**
Define get set accessor, just help to call Object.defineProperty(...)
@param obj obj
@param prop prop
@param getter getter
@param setter setter
@param enumerable enumerable
@param configurable configurable
*/
export function getset(obj: any, prop: string, getter: Function, setter?: Function, enumerable?: boolean, configurable?: boolean): void;
/**
Define get accessor, just help to call Object.defineProperty(...)
@param obj obj
@param prop prop
@param getter getter
@param enumerable enumerable
@param configurable configurable
*/
export function get(obj: any, prop: string, getter: Function, enumerable?: boolean, configurable?: boolean): void;
/**
Define set accessor, just help to call Object.defineProperty(...)
@param obj obj
@param prop prop
@param setter setter
@param enumerable enumerable
@param configurable configurable
*/
export function set(obj: any, prop: string, setter: Function, enumerable?: boolean, configurable?: boolean): void;
/**
Get class name of the object, if object is just a {} (and which class named 'Object'), it will return "".
(modified from <a href="http://stackoverflow.com/questions/1249531/how-to-get-a-javascript-objects-class">the code from this stackoverflow post</a>)
@param objOrCtor instance or constructor
*/
export function getClassName(objOrCtor: any|Function): string;
/** !#en All classes registered in the engine, indexed by ID.
!#zh 引擎中已注册的所有类型,通过 ID 进行索引。 */
export var _registeredClassIds: any;
/** !#en All classes registered in the engine, indexed by name.
!#zh 引擎中已注册的所有类型,通过名称进行索引。 */
export var _registeredClassNames: any;
/**
Register the class by specified name manually
@param className className
@param constructor constructor
*/
export function setClassName(className: string, constructor: Function): void;
/**
Unregister a class from fireball.
If you dont need a registered class anymore, you should unregister the class so that Fireball will not keep its reference anymore.
Please note that its still your responsibility to free other references to the class.
@param constructor the class you will want to unregister, any number of classes can be added
*/
export function unregisterClass(...constructor: Function[]): void;
/**
Get the registered class by name
@param classname classname
*/
export function getClassByName(classname: string): Function;
/**
Defines a polyfill field for deprecated codes.
@param obj YourObject or YourClass.prototype
@param obsoleted "OldParam" or "YourClass.OldParam"
@param newExpr "NewParam" or "YourClass.NewParam"
@param writable writable
*/
export function obsolete(obj: any, obsoleted: string, newExpr: string, writable?: boolean): void;
/**
Defines all polyfill fields for obsoleted codes corresponding to the enumerable properties of props.
@param obj YourObject or YourClass.prototype
@param objName "YourObject" or "YourClass"
@param props props
@param writable writable
*/
export function obsoletes(obj: any, objName: any, props: any, writable?: boolean): void;
/**
A string tool to construct a string with format string.
@param msg A JavaScript string containing zero or more substitution strings (%s).
@param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.
@example
```js
cc.js.formatStr("a: %s, b: %s", a, b);
cc.js.formatStr(a, b, c);
```
*/
export function formatStr(msg: string|any, ...subst: any[]): string;
/**
!#en
A simple wrapper of `Object.create(null)` which ensures the return object have no prototype (and thus no inherited members). So we can skip `hasOwnProperty` calls on property lookups. It is a worthwhile optimization than the `{}` literal when `hasOwnProperty` calls are necessary.
!#zh
该方法是对 `Object.create(null)` 的简单封装。`Object.create(null)` 用于创建无 prototype (也就无继承)的空对象。这样我们在该对象上查找属性时,就不用进行 `hasOwnProperty` 判断。在需要频繁判断 `hasOwnProperty` 时,使用这个方法性能会比 `{}` 更高。
@param forceDictMode Apply the delete operator to newly created map object. This causes V8 to put the object in "dictionary mode" and disables creation of hidden classes which are very expensive for objects that are constantly changing shape.
*/
export function createMap(forceDictMode?: boolean): any;
/** undefined */
export class array {
/**
Removes the array item at the specified index.
@param array array
@param index index
*/
static removeAt(array: any[], index: number): void;
/**
Removes the array item at the specified index.
It's faster but the order of the array will be changed.
@param array array
@param index index
*/
static fastRemoveAt(array: any[], index: number): void;
/**
Removes the first occurrence of a specific object from the array.
@param array array
@param value value
*/
static remove(array: any[], value: any): boolean;
/**
Removes the first occurrence of a specific object from the array.
It's faster but the order of the array will be changed.
@param array array
@param value value
*/
static fastRemove(array: any[], value: number): void;
/**
Verify array's Type
@param array array
@param type type
*/
static verifyType(array: any[], type: Function): boolean;
/**
Removes from array all values in minusArr. For each Value in minusArr, the first matching instance in array will be removed.
@param array Source Array
@param minusArr minus Array
*/
static removeArray(array: any[], minusArr: any[]): void;
/**
Inserts some objects at index
@param array array
@param addObjs addObjs
@param index index
*/
static appendObjectsAt(array: any[], addObjs: any[], index: number): any[];
/**
Determines whether the array contains a specific value.
@param array array
@param value value
*/
static contains(array: any[], value: any): boolean;
/**
Copy an array's item to a new array (its performance is better than Array.slice)
@param array array
*/
static copy(array: any[]): any[];
}
/** !#en
A fixed-length object pool designed for general type.<br>
The implementation of this object pool is very simple,
it can helps you to improve your game performance for objects which need frequent release and recreate operations<br/>
!#zh
长度固定的对象缓存池,可以用来缓存各种对象类型。<br/>
这个对象池的实现非常精简,它可以帮助您提高游戏性能,适用于优化对象的反复创建和销毁。 */
export class Pool {
/**
!#en
Constructor for creating an object pool for the specific object type.
You can pass a callback argument for process the cleanup logic when the object is recycled.
!#zh
使用构造函数来创建一个指定对象类型的对象池,您可以传递一个回调函数,用于处理对象回收时的清理逻辑。
@param cleanupFunc the callback method used to process the cleanup logic when the object is recycled.
@param size initializes the length of the array
*/
constructor(cleanupFunc: (obj: any) => void, size: number);
constructor(size: number);
/**
!#en
Get and initialize an object from pool. This method defaults to null and requires the user to implement it.
!#zh
获取并初始化对象池中的对象。这个方法默认为空,需要用户自己实现。
@param params parameters to used to initialize the object
*/
get(...params: any[]): any;
/** !#en
The current number of available objects, the default is 0, it will gradually increase with the recycle of the object,
the maximum will not exceed the size specified when the constructor is called.
!#zh
当前可用对象数量,一开始默认是 0,随着对象的回收会逐渐增大,最大不会超过调用构造函数时指定的 size。 */
count: number;
/**
!#en
Get an object from pool, if no available object in the pool, null will be returned.
!#zh
获取对象池中的对象,如果对象池没有可用对象,则返回空。
*/
_get(): any;
/**
!#en Put an object into the pool.
!#zh 向对象池返还一个不再需要的对象。
*/
put(): void;
/**
!#en Resize the pool.
!#zh 设置对象池容量。
*/
resize(): void;
}
}
/** !#en A basic module for creating vertex data for 3D objects. You can access this module by `cc.primitive`.
!#zh 一个创建 3D 物体顶点数据的基础模块,你可以通过 `cc.primitive` 来访问这个模块。 */
declare namespace cc.primitive {
/**
!#en Create box vertex data
!#zh 创建长方体顶点数据
@param width width
@param height height
@param length length
@param opts opts
*/
export function box(width: number, height: number, length: number, opts: {widthSegments: number; heightSegments: number; lengthSegments: number; }): cc.VertexData;
/**
!#en Create cone vertex data
!#zh 创建圆锥体顶点数据
@param radius radius
@param height height
@param opts opts
*/
export function cone(radius: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData;
/**
!#en Create cylinder vertex data
!#zh 创建圆柱体顶点数据
@param radiusTop radiusTop
@param radiusBottom radiusBottom
@param height height
@param opts opts
*/
export function cylinder(radiusTop: number, radiusBottom: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData;
/**
!#en Create plane vertex data
!#zh 创建平台顶点数据
@param width width
@param length length
@param opts opts
*/
export function plane(width: number, length: number, opts: {widthSegments: number; lengthSegments: number; }): cc.VertexData;
/**
!#en Create quad vertex data
!#zh 创建面片顶点数据
*/
export function quad(): cc.VertexData;
/**
!#en Create sphere vertex data
!#zh 创建球体顶点数据
@param radius radius
@param opts opts
*/
export function sphere(radius: number, opts: {segments: number; }): cc.VertexData;
/**
!#en Create torus vertex data
!#zh 创建圆环顶点数据
@param radius radius
@param tube tube
@param opts opts
*/
export function torus(radius: number, tube: number, opts: {radialSegments: number; tubularSegments: number; arc: number; }): cc.VertexData;
/**
!#en Create capsule vertex data
!#zh 创建胶囊体顶点数据
@param radiusTop radiusTop
@param radiusBottom radiusBottom
@param height height
@param opts opts
*/
export function capsule(radiusTop: number, radiusBottom: number, height: number, opts: {sides: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData;
/**
!#en Create polyhedron vertex data
!#zh 创建多面体顶点数据
@param type type
@param Size Size
@param opts opts
*/
export function polyhedron(type: cc.primitive.PolyhedronType, Size: number, opts: {sizeX: number; sizeY: number; sizeZ: number; }): cc.VertexData;
}
declare let CC_JSB: boolean
declare let CC_NATIVERENDERER: boolean
declare let CC_EDITOR: boolean
declare let cc: {
// polyfills: {
// destroyObject? (object: any): void;
// };
[x: string]: any;
}
// https://medium.com/dailyjs/typescript-create-a-condition-based-subset-types-9d902cea5b8c
type FlagExcludedType<Base, Type> = { [Key in keyof Base]: Base[Key] extends Type ? never : Key };
type AllowedNames<Base, Type> = FlagExcludedType<Base, Type>[keyof Base];
type KeyPartial<T, K extends keyof T> = { [P in K]?: T[P] };
type OmitType<Base, Type> = KeyPartial<Base, AllowedNames<Base, Type>>;
type ConstructorType<T> = OmitType<T, Function>;
declare interface IWritableArrayLike<T> {
readonly length: number;
[index: number]: T;
}
declare let module: {
exports: object
}
declare interface Math {
sign(v: number);
}
declare interface Object {
assign(target: {}, source: {});
}
/**
* @module cc.AssetManager
*/
declare namespace cc.AssetManager {
/**
* !#en
* Cache manager is a module which controls all caches downloaded from server in non-web platform, it is a singleton
* All member can be accessed with `cc.assetManager.cacheManager`.
*
* !#zh
* 缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存,这是一个单例,所有成员能通过 `cc.assetManager.cacheManager` 访问。
*
* @class CacheManager
*/
class CacheManager {
/**
* !#en
* The name of cacheDir
*
* !#zh
* 缓存目录的名称
*
* @property cacheDir
* @type {String}
* @default 'gamecaches'
*/
public cacheDir: String;
/**
* !#en
* Whether or not cache asset into user's storage space, this property only works on mini-game platforms
*
* !#zh
* 是否缓存资源到用户存储空间,此属性只在小游戏平台有效
*
* @property cacheEnabled
* @type {Boolean}
* @default true
*/
public cacheEnabled: Boolean;
/**
* !#en
* Whether or not auto clear cache when storage ran out, this property only works on mini-game platforms
*
* !#zh
* 是否在存储空间满了后自动清理缓存,此属性只在小游戏平台有效
*
* @property autoClear
* @type {Boolean}
* @default true
*/
public autoClear: Boolean;
/**
* !#en
* The interval between caching resources, this property only works on mini-game platforms
*
* !#zh
* 缓存资源的间隔时间,此属性只在小游戏平台有效
*
* @property cacheInterval
* @type {Number}
* @default 500
*/
public cacheInterval: Number;
/**
* !#en
* The interval between deleting resources, when you use `cleanLRU`, the resources will be deleted as this interval
*
* !#zh
* 清理资源的间隔时间,当你使用 `cleanLRU` 时,资源将以此间隔被删除
*
* @property deleteInterval
* @type {Number}
* @default 500
*/
public deleteInterval: Number;
/**
* !#en
* Get cached path with origin url
*
* !#zh
* 通过原始 url 获取缓存后的路径
*
* @method getCache
* @param {string} originUrl
* @returns {String} The cached path
*/
public getCache (originUrl: string): string;
/**
* !#en
* Get temporary path with origin url, this method only works on mini-game platforms
*
* !#zh
* 通过原始 url 获取临时文件的路径,此方法只在小游戏平台有效
*
* @method getTemp
* @param {string} originUrl
* @returns {String} The temp path
*/
public getTemp (originUrl: string): string;
/**
* !#en
* Clear all caches, please use with caution, If necessary, we recommend using it before the game is launched
*
* !#zh
* 清空所有缓存,请谨慎使用,如果必要的话,我们建议在游戏启动之前使用
*
* @method clearCache
*/
public clearCache (): void;
/**
* !#en
* Clear part of caches with LRU strategy
*
* !#zh
* 使用 LRU 策略清空部分缓存
*
* @method clearLRU
*/
public clearLRU (): void;
/**
* !#en
* Remove cache with origin url
*
* !#zh
* 通过原始 url 移除缓存
*
* @method removeCache
*/
public removeCache (originUrl: string): void;
}
}
type FloatArray = Float64Array | Float32Array;
interface IColorLike {
r: number;
g: number;
b: number;
a: number;
_val: number;
}
interface IMat3Like {
m: FloatArray
}
interface IMat4Like {
m: FloatArray
}
interface IQuatLike {
x: number;
y: number;
z: number;
w: number;
}
interface IRectLike {
x: number;
y: number;
width: number;
height: number;
}
interface ISizeLike {
width: number;
height: number;
}
interface IVec2Like {
x: number;
y: number;
}
interface IVec3Like {
x: number;
y: number;
z: number;
}
interface IVec4Like {
x: number;
y: number;
z: number;
w: number;
}
declare namespace dragonBones {
/**
* @internal
* @private
*/
const webAssemblyModule: {
HEAP16: Int16Array;
_malloc(byteSize: number): number;
_free(pointer: number): void;
setDataBinary(data: DragonBonesData, binaryPointer: number, intBytesLength: number, floatBytesLength: number, frameIntBytesLength: number, frameFloatBytesLength: number, frameBytesLength: number, timelineBytesLength: number): void;
};
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
const enum BinaryOffset {
WeigthBoneCount = 0,
WeigthFloatOffset = 1,
WeigthBoneIndices = 2,
MeshVertexCount = 0,
MeshTriangleCount = 1,
MeshFloatOffset = 2,
MeshWeightOffset = 3,
MeshVertexIndices = 4,
TimelineScale = 0,
TimelineOffset = 1,
TimelineKeyFrameCount = 2,
TimelineFrameValueCount = 3,
TimelineFrameValueOffset = 4,
TimelineFrameOffset = 5,
FramePosition = 0,
FrameTweenType = 1,
FrameTweenEasingOrCurveSampleCount = 2,
FrameCurveSamples = 3,
DeformMeshOffset = 0,
DeformCount = 1,
DeformValueCount = 2,
DeformValueOffset = 3,
DeformFloatOffset = 4,
}
/**
* @internal
* @private
*/
const enum ArmatureType {
Armature = 0,
MovieClip = 1,
Stage = 2,
}
/**
* @internal
* @private
*/
const enum BoneType {
Bone = 0,
Surface = 1,
}
/**
* @private
*/
const enum DisplayType {
Image = 0,
Armature = 1,
Mesh = 2,
BoundingBox = 3,
}
/**
* - Bounding box type.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 边界框类型。
* @version DragonBones 5.0
* @language zh_CN
*/
const enum BoundingBoxType {
Rectangle = 0,
Ellipse = 1,
Polygon = 2,
}
/**
* @internal
* @private
*/
const enum ActionType {
Play = 0,
Frame = 10,
Sound = 11,
}
/**
* @internal
* @private
*/
const enum BlendMode {
Normal = 0,
Add = 1,
Alpha = 2,
Darken = 3,
Difference = 4,
Erase = 5,
HardLight = 6,
Invert = 7,
Layer = 8,
Lighten = 9,
Multiply = 10,
Overlay = 11,
Screen = 12,
Subtract = 13,
}
/**
* @internal
* @private
*/
const enum TweenType {
None = 0,
Line = 1,
Curve = 2,
QuadIn = 3,
QuadOut = 4,
QuadInOut = 5,
}
/**
* @internal
* @private
*/
const enum TimelineType {
Action = 0,
ZOrder = 1,
BoneAll = 10,
BoneTranslate = 11,
BoneRotate = 12,
BoneScale = 13,
Surface = 50,
SlotDisplay = 20,
SlotColor = 21,
SlotFFD = 22,
IKConstraint = 30,
AnimationTime = 40,
AnimationWeight = 41,
}
/**
* - Offset mode.
* @version DragonBones 5.5
* @language en_US
*/
/**
* - 偏移模式。
* @version DragonBones 5.5
* @language zh_CN
*/
const enum OffsetMode {
None = 0,
Additive = 1,
Override = 2,
}
/**
* - Animation fade out mode.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画淡出模式。
* @version DragonBones 4.5
* @language zh_CN
*/
const enum AnimationFadeOutMode {
/**
* - Do not fade out of any animation states.
* @language en_US
*/
/**
* - 不淡出任何的动画状态。
* @language zh_CN
*/
None = 0,
/**
* - Fade out the animation states of the same layer.
* @language en_US
*/
/**
* - 淡出同层的动画状态。
* @language zh_CN
*/
SameLayer = 1,
/**
* - Fade out the animation states of the same group.
* @language en_US
*/
/**
* - 淡出同组的动画状态。
* @language zh_CN
*/
SameGroup = 2,
/**
* - Fade out the animation states of the same layer and group.
* @language en_US
*/
/**
* - 淡出同层并且同组的动画状态。
* @language zh_CN
*/
SameLayerAndGroup = 3,
/**
* - Fade out of all animation states.
* @language en_US
*/
/**
* - 淡出所有的动画状态。
* @language zh_CN
*/
All = 4,
/**
* - Does not replace the animation state with the same name.
* @language en_US
*/
/**
* - 不替换同名的动画状态。
* @language zh_CN
*/
Single = 5,
}
/**
* @private
*/
interface Map<T> {
[key: string]: T;
}
/**
* @private
*/
class DragonBones {
static readonly VERSION: string;
static yDown: boolean;
static debug: boolean;
static debugDraw: boolean;
static webAssembly: boolean;
private readonly _clock;
private readonly _events;
private readonly _objects;
private _eventManager;
constructor(eventManager: IEventDispatcher);
advanceTime(passedTime: number): void;
bufferEvent(value: EventObject): void;
bufferObject(object: BaseObject): void;
readonly clock: WorldClock;
readonly eventManager: IEventDispatcher;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The BaseObject is the base class for all objects in the DragonBones framework.
* All BaseObject instances are cached to the object pool to reduce the performance consumption of frequent requests for memory or memory recovery.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 基础对象,通常 DragonBones 的对象都继承自该类。
* 所有基础对象的实例都会缓存到对象池,以减少频繁申请内存或内存回收的性能消耗。
* @version DragonBones 4.5
* @language zh_CN
*/
abstract class BaseObject {
private static _hashCode;
private static _defaultMaxCount;
private static readonly _maxCountMap;
private static readonly _poolsMap;
private static _returnObject(object);
static toString(): string;
/**
* - Set the maximum cache count of the specify object pool.
* @param objectConstructor - The specify class. (Set all object pools max cache count if not set)
* @param maxCount - Max count.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 设置特定对象池的最大缓存数量。
* @param objectConstructor - 特定的类。 (不设置则设置所有对象池的最大缓存数量)
* @param maxCount - 最大缓存数量。
* @version DragonBones 4.5
* @language zh_CN
*/
static setMaxCount(objectConstructor: (typeof BaseObject) | null, maxCount: number): void;
/**
* - Clear the cached instances of a specify object pool.
* @param objectConstructor - Specify class. (Clear all cached instances if not set)
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 清除特定对象池的缓存实例。
* @param objectConstructor - 特定的类。 (不设置则清除所有缓存的实例)
* @version DragonBones 4.5
* @language zh_CN
*/
static clearPool(objectConstructor?: (typeof BaseObject) | null): void;
/**
* - Get an instance of the specify class from object pool.
* @param objectConstructor - The specify class.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 从对象池中获取特定类的实例。
* @param objectConstructor - 特定的类。
* @version DragonBones 4.5
* @language zh_CN
*/
static borrowObject<T extends BaseObject>(objectConstructor: {
new (): T;
}): T;
/**
* - A unique identification number assigned to the object.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 分配给此实例的唯一标识号。
* @version DragonBones 4.5
* @language zh_CN
*/
readonly hashCode: number;
private _isInPool;
/**
* @private
*/
protected abstract _onClear(): void;
/**
* - Clear the object and return it back to object pool。
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 清除该实例的所有数据并将其返还对象池。
* @version DragonBones 4.5
* @language zh_CN
*/
returnToPool(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - 2D Transform matrix.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 2D 转换矩阵。
* @version DragonBones 3.0
* @language zh_CN
*/
class Matrix {
/**
* - The value that affects the positioning of pixels along the x axis when scaling or rotating an image.
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 缩放或旋转图像时影响像素沿 x 轴定位的值。
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
a: number;
/**
* - The value that affects the positioning of pixels along the y axis when rotating or skewing an image.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 旋转或倾斜图像时影响像素沿 y 轴定位的值。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
b: number;
/**
* - The value that affects the positioning of pixels along the x axis when rotating or skewing an image.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 旋转或倾斜图像时影响像素沿 x 轴定位的值。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
c: number;
/**
* - The value that affects the positioning of pixels along the y axis when scaling or rotating an image.
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 缩放或旋转图像时影响像素沿 y 轴定位的值。
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
d: number;
/**
* - The distance by which to translate each point along the x axis.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 沿 x 轴平移每个点的距离。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
tx: number;
/**
* - The distance by which to translate each point along the y axis.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 沿 y 轴平移每个点的距离。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
ty: number;
/**
* @private
*/
constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number);
toString(): string;
/**
* @private
*/
copyFrom(value: Matrix): Matrix;
/**
* @private
*/
copyFromArray(value: Array<number>, offset?: number): Matrix;
/**
* - Convert to unit matrix.
* The resulting matrix has the following properties: a=1, b=0, c=0, d=1, tx=0, ty=0.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 转换为单位矩阵。
* 该矩阵具有以下属性:a=1、b=0、c=0、d=1、tx=0、ty=0。
* @version DragonBones 3.0
* @language zh_CN
*/
identity(): Matrix;
/**
* - Multiplies the current matrix with another matrix.
* @param value - The matrix that needs to be multiplied.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 将当前矩阵与另一个矩阵相乘。
* @param value - 需要相乘的矩阵。
* @version DragonBones 3.0
* @language zh_CN
*/
concat(value: Matrix): Matrix;
/**
* - Convert to inverse matrix.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 转换为逆矩阵。
* @version DragonBones 3.0
* @language zh_CN
*/
invert(): Matrix;
/**
* - Apply a matrix transformation to a specific point.
* @param x - X coordinate.
* @param y - Y coordinate.
* @param result - The point after the transformation is applied.
* @param delta - Whether to ignore tx, ty's conversion to point.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 将矩阵转换应用于特定点。
* @param x - 横坐标。
* @param y - 纵坐标。
* @param result - 应用转换之后的点。
* @param delta - 是否忽略 tx,ty 对点的转换。
* @version DragonBones 3.0
* @language zh_CN
*/
transformPoint(x: number, y: number, result: {
x: number;
y: number;
}, delta?: boolean): void;
/**
* @private
*/
transformRectangle(rectangle: {
x: number;
y: number;
width: number;
height: number;
}, delta?: boolean): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - 2D Transform.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 2D 变换。
* @version DragonBones 3.0
* @language zh_CN
*/
class Transform {
/**
* @private
*/
static readonly PI: number;
/**
* @private
*/
static readonly PI_D: number;
/**
* @private
*/
static readonly PI_H: number;
/**
* @private
*/
static readonly PI_Q: number;
/**
* @private
*/
static readonly RAD_DEG: number;
/**
* @private
*/
static readonly DEG_RAD: number;
/**
* @private
*/
static normalizeRadian(value: number): number;
/**
* - Horizontal translate.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 水平位移。
* @version DragonBones 3.0
* @language zh_CN
*/
x: number;
/**
* - Vertical translate.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 垂直位移。
* @version DragonBones 3.0
* @language zh_CN
*/
y: number;
/**
* - Skew. (In radians)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 倾斜。 (以弧度为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
skew: number;
/**
* - rotation. (In radians)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 旋转。 (以弧度为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
rotation: number;
/**
* - Horizontal Scaling.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 水平缩放。
* @version DragonBones 3.0
* @language zh_CN
*/
scaleX: number;
/**
* - Vertical scaling.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 垂直缩放。
* @version DragonBones 3.0
* @language zh_CN
*/
scaleY: number;
/**
* @private
*/
constructor(x?: number, y?: number, skew?: number, rotation?: number, scaleX?: number, scaleY?: number);
toString(): string;
/**
* @private
*/
copyFrom(value: Transform): Transform;
/**
* @private
*/
identity(): Transform;
/**
* @private
*/
add(value: Transform): Transform;
/**
* @private
*/
minus(value: Transform): Transform;
/**
* @private
*/
fromMatrix(matrix: Matrix): Transform;
/**
* @private
*/
toMatrix(matrix: Matrix): Transform;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class ColorTransform {
alphaMultiplier: number;
redMultiplier: number;
greenMultiplier: number;
blueMultiplier: number;
alphaOffset: number;
redOffset: number;
greenOffset: number;
blueOffset: number;
constructor(alphaMultiplier?: number, redMultiplier?: number, greenMultiplier?: number, blueMultiplier?: number, alphaOffset?: number, redOffset?: number, greenOffset?: number, blueOffset?: number);
copyFrom(value: ColorTransform): void;
identity(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The Point object represents a location in a two-dimensional coordinate system.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - Point 对象表示二维坐标系统中的某个位置。
* @version DragonBones 3.0
* @language zh_CN
*/
class Point {
/**
* - The horizontal coordinate.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 该点的水平坐标。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
x: number;
/**
* - The vertical coordinate.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 该点的垂直坐标。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
y: number;
/**
* - Creates a new point. If you pass no parameters to this method, a point is created at (0,0).
* @param x - The horizontal coordinate.
* @param y - The vertical coordinate.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 创建一个 egret.Point 对象.若不传入任何参数,将会创建一个位于(0,0)位置的点。
* @param x - 该对象的x属性值,默认为 0.0。
* @param y - 该对象的y属性值,默认为 0.0。
* @version DragonBones 3.0
* @language zh_CN
*/
constructor(x?: number, y?: number);
/**
* @private
*/
copyFrom(value: Point): void;
/**
* @private
*/
clear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - A Rectangle object is an area defined by its position, as indicated by its top-left corner point (x, y) and by its
* width and its height.<br/>
* The x, y, width, and height properties of the Rectangle class are independent of each other; changing the value of
* one property has no effect on the others. However, the right and bottom properties are integrally related to those
* four properties. For example, if you change the value of the right property, the value of the width property changes;
* if you change the bottom property, the value of the height property changes.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - Rectangle 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。<br/>
* Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。
* 但是,right 和 bottom 属性与这四个属性是整体相关的。例如,如果更改 right 属性的值,则 width
* 属性的值将发生变化;如果更改 bottom 属性,则 height 属性的值将发生变化。
* @version DragonBones 3.0
* @language zh_CN
*/
class Rectangle {
/**
* - The x coordinate of the top-left corner of the rectangle.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 矩形左上角的 x 坐标。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
x: number;
/**
* - The y coordinate of the top-left corner of the rectangle.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 矩形左上角的 y 坐标。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
y: number;
/**
* - The width of the rectangle, in pixels.
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 矩形的宽度(以像素为单位)。
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
width: number;
/**
* - 矩形的高度(以像素为单位)。
* @default 0.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - The height of the rectangle, in pixels.
* @default 0.0
* @version DragonBones 3.0
* @language zh_CN
*/
height: number;
/**
* @private
*/
constructor(x?: number, y?: number, width?: number, height?: number);
/**
* @private
*/
copyFrom(value: Rectangle): void;
/**
* @private
*/
clear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The user custom data.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 用户自定义数据。
* @version DragonBones 5.0
* @language zh_CN
*/
class UserData extends BaseObject {
static toString(): string;
/**
* - The custom int numbers.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 自定义整数。
* @version DragonBones 5.0
* @language zh_CN
*/
readonly ints: Array<number>;
/**
* - The custom float numbers.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 自定义浮点数。
* @version DragonBones 5.0
* @language zh_CN
*/
readonly floats: Array<number>;
/**
* - The custom strings.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 自定义字符串。
* @version DragonBones 5.0
* @language zh_CN
*/
readonly strings: Array<string>;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
addInt(value: number): void;
/**
* @internal
* @private
*/
addFloat(value: number): void;
/**
* @internal
* @private
*/
addString(value: string): void;
/**
* - Get the custom int number.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 获取自定义整数。
* @version DragonBones 5.0
* @language zh_CN
*/
getInt(index?: number): number;
/**
* - Get the custom float number.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 获取自定义浮点数。
* @version DragonBones 5.0
* @language zh_CN
*/
getFloat(index?: number): number;
/**
* - Get the custom string.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 获取自定义字符串。
* @version DragonBones 5.0
* @language zh_CN
*/
getString(index?: number): string;
}
/**
* @internal
* @private
*/
class ActionData extends BaseObject {
static toString(): string;
type: ActionType;
name: string;
bone: BoneData | null;
slot: SlotData | null;
data: UserData | null;
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The DragonBones data.
* A DragonBones data contains multiple armature data.
* @see dragonBones.ArmatureData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 龙骨数据。
* 一个龙骨数据包含多个骨架数据。
* @see dragonBones.ArmatureData
* @version DragonBones 3.0
* @language zh_CN
*/
class DragonBonesData extends BaseObject {
static toString(): string;
/**
* @private
*/
autoSearch: boolean;
/**
* - The animation frame rate.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画帧频。
* @version DragonBones 3.0
* @language zh_CN
*/
frameRate: number;
/**
* - The data version.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 数据版本。
* @version DragonBones 3.0
* @language zh_CN
*/
version: string;
/**
* - The DragonBones data name.
* The name is consistent with the DragonBones project name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 龙骨数据名称。
* 该名称与龙骨项目名保持一致。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
stage: ArmatureData | null;
/**
* @internal
* @private
*/
readonly frameIndices: Array<number>;
/**
* @internal
* @private
*/
readonly cachedFrames: Array<number>;
/**
* - All armature data names.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 所有的骨架数据名称。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly armatureNames: Array<string>;
/**
* @private
*/
readonly armatures: Map<ArmatureData>;
/**
* @internal
* @private
*/
binary: ArrayBuffer;
/**
* @internal
* @private
*/
intArray: Int16Array;
/**
* @internal
* @private
*/
floatArray: Float32Array;
/**
* @internal
* @private
*/
frameIntArray: Int16Array;
/**
* @internal
* @private
*/
frameFloatArray: Float32Array;
/**
* @internal
* @private
*/
frameArray: Int16Array;
/**
* @internal
* @private
*/
timelineArray: Uint16Array;
/**
* @private
*/
userData: UserData | null;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
addArmature(value: ArmatureData): void;
/**
* - Get a specific armature data.
* @param name - The armature data name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的骨架数据。
* @param name - 骨架数据名称。
* @version DragonBones 3.0
* @language zh_CN
*/
getArmature(name: string): ArmatureData | null;
/**
* - Deprecated, please refer to {@link #dragonBones.BaseFactory#removeDragonBonesData()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #dragonBones.BaseFactory#removeDragonBonesData()}。
* @deprecated
* @language zh_CN
*/
dispose(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The armature data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨架数据。
* @version DragonBones 3.0
* @language zh_CN
*/
class ArmatureData extends BaseObject {
static toString(): string;
/**
* @private
*/
type: ArmatureType;
/**
* - The animation frame rate.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画帧率。
* @version DragonBones 3.0
* @language zh_CN
*/
frameRate: number;
/**
* @private
*/
cacheFrameRate: number;
/**
* @private
*/
scale: number;
/**
* - The armature name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨架名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
readonly aabb: Rectangle;
/**
* - The names of all the animation data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 所有的动画数据名称。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly animationNames: Array<string>;
/**
* @private
*/
readonly sortedBones: Array<BoneData>;
/**
* @private
*/
readonly sortedSlots: Array<SlotData>;
/**
* @private
*/
readonly defaultActions: Array<ActionData>;
/**
* @private
*/
readonly actions: Array<ActionData>;
/**
* @private
*/
readonly bones: Map<BoneData>;
/**
* @private
*/
readonly slots: Map<SlotData>;
/**
* @private
*/
readonly constraints: Map<ConstraintData>;
/**
* @private
*/
readonly skins: Map<SkinData>;
/**
* @private
*/
readonly animations: Map<AnimationData>;
/**
* - The default skin data.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 默认插槽数据。
* @version DragonBones 4.5
* @language zh_CN
*/
defaultSkin: SkinData | null;
/**
* - The default animation data.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 默认动画数据。
* @version DragonBones 4.5
* @language zh_CN
*/
defaultAnimation: AnimationData | null;
/**
* @private
*/
canvas: CanvasData | null;
/**
* @private
*/
userData: UserData | null;
/**
* @private
*/
parent: DragonBonesData;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
sortBones(): void;
/**
* @internal
* @private
*/
cacheFrames(frameRate: number): void;
/**
* @internal
* @private
*/
setCacheFrame(globalTransformMatrix: Matrix, transform: Transform): number;
/**
* @internal
* @private
*/
getCacheFrame(globalTransformMatrix: Matrix, transform: Transform, arrayOffset: number): void;
/**
* @internal
* @private
*/
addBone(value: BoneData): void;
/**
* @internal
* @private
*/
addSlot(value: SlotData): void;
/**
* @internal
* @private
*/
addConstraint(value: ConstraintData): void;
/**
* @internal
* @private
*/
addSkin(value: SkinData): void;
/**
* @internal
* @private
*/
addAnimation(value: AnimationData): void;
/**
* @internal
* @private
*/
addAction(value: ActionData, isDefault: boolean): void;
/**
* - Get a specific done data.
* @param name - The bone name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的骨骼数据。
* @param name - 骨骼名称。
* @version DragonBones 3.0
* @language zh_CN
*/
getBone(name: string): BoneData | null;
/**
* - Get a specific slot data.
* @param name - The slot name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的插槽数据。
* @param name - 插槽名称。
* @version DragonBones 3.0
* @language zh_CN
*/
getSlot(name: string): SlotData | null;
/**
* @private
*/
getConstraint(name: string): ConstraintData | null;
/**
* - Get a specific skin data.
* @param name - The skin name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定皮肤数据。
* @param name - 皮肤名称。
* @version DragonBones 3.0
* @language zh_CN
*/
getSkin(name: string): SkinData | null;
/**
* @internal
* @private
*/
getMesh(skinName: string, slotName: string, meshName: string): MeshDisplayData | null;
/**
* - Get a specific animation data.
* @param name - The animation name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的动画数据。
* @param name - 动画名称。
* @version DragonBones 3.0
* @language zh_CN
*/
getAnimation(name: string): AnimationData | null;
}
/**
* - The bone data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨骼数据。
* @version DragonBones 3.0
* @language zh_CN
*/
class BoneData extends BaseObject {
static toString(): string;
/**
* @private
*/
inheritTranslation: boolean;
/**
* @private
*/
inheritRotation: boolean;
/**
* @private
*/
inheritScale: boolean;
/**
* @private
*/
inheritReflection: boolean;
/**
* @private
*/
type: BoneType;
/**
* - The bone length.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨骼长度。
* @version DragonBones 3.0
* @language zh_CN
*/
length: number;
/**
* - The bone name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨骼名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
readonly transform: Transform;
/**
* @private
*/
userData: UserData | null;
/**
* - The parent bone data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 父骨骼数据。
* @version DragonBones 3.0
* @language zh_CN
*/
parent: BoneData | null;
/**
* @inheritDoc
*/
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class SurfaceData extends BoneData {
static toString(): string;
segmentX: number;
segmentY: number;
readonly vertices: Array<number>;
/**
* @inheritDoc
*/
protected _onClear(): void;
}
/**
* - The slot data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽数据。
* @version DragonBones 3.0
* @language zh_CN
*/
class SlotData extends BaseObject {
/**
* @internal
* @private
*/
static readonly DEFAULT_COLOR: ColorTransform;
/**
* @internal
* @private
*/
static createColor(): ColorTransform;
static toString(): string;
/**
* @private
*/
blendMode: BlendMode;
/**
* @private
*/
displayIndex: number;
/**
* @private
*/
zOrder: number;
/**
* - The slot name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
color: ColorTransform;
/**
* @private
*/
userData: UserData | null;
/**
* - The parent bone data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 父骨骼数据。
* @version DragonBones 3.0
* @language zh_CN
*/
parent: BoneData;
/**
* @inheritDoc
*/
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
abstract class ConstraintData extends BaseObject {
order: number;
name: string;
target: BoneData;
root: BoneData;
bone: BoneData | null;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class IKConstraintData extends ConstraintData {
static toString(): string;
scaleEnabled: boolean;
bendPositive: boolean;
weight: number;
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class CanvasData extends BaseObject {
static toString(): string;
hasBackground: boolean;
color: number;
x: number;
y: number;
width: number;
height: number;
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The skin data, typically a armature data instance contains at least one skinData.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 皮肤数据,通常一个骨架数据至少包含一个皮肤数据。
* @version DragonBones 3.0
* @language zh_CN
*/
class SkinData extends BaseObject {
static toString(): string;
/**
* - The skin name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 皮肤名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
readonly displays: Map<Array<DisplayData | null>>;
/**
* @private
*/
parent: ArmatureData;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
addDisplay(slotName: string, value: DisplayData | null): void;
/**
* @private
*/
getDisplay(slotName: string, displayName: string): DisplayData | null;
/**
* @private
*/
getDisplays(slotName: string): Array<DisplayData | null> | null;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
abstract class DisplayData extends BaseObject {
type: DisplayType;
name: string;
path: string;
parent: SkinData;
readonly transform: Transform;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class ImageDisplayData extends DisplayData {
static toString(): string;
readonly pivot: Point;
texture: TextureData | null;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class ArmatureDisplayData extends DisplayData {
static toString(): string;
inheritAnimation: boolean;
readonly actions: Array<ActionData>;
armature: ArmatureData | null;
protected _onClear(): void;
/**
* @private
*/
addAction(value: ActionData): void;
}
/**
* @internal
* @private
*/
class MeshDisplayData extends DisplayData {
static toString(): string;
inheritDeform: boolean;
offset: number;
weight: WeightData | null;
glue: GlueData | null;
texture: TextureData | null;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class BoundingBoxDisplayData extends DisplayData {
static toString(): string;
boundingBox: BoundingBoxData | null;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class WeightData extends BaseObject {
static toString(): string;
count: number;
offset: number;
readonly bones: Array<BoneData>;
protected _onClear(): void;
addBone(value: BoneData): void;
}
/**
* @internal
* @private
*/
class GlueData extends BaseObject {
static toString(): string;
readonly weights: Array<number>;
readonly meshes: Array<MeshDisplayData | null>;
protected _onClear(): void;
addMesh(value: MeshDisplayData | null): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The base class of bounding box data.
* @see dragonBones.RectangleData
* @see dragonBones.EllipseData
* @see dragonBones.PolygonData
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 边界框数据基类。
* @see dragonBones.RectangleData
* @see dragonBones.EllipseData
* @see dragonBones.PolygonData
* @version DragonBones 5.0
* @language zh_CN
*/
abstract class BoundingBoxData extends BaseObject {
/**
* - The bounding box type.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 边界框类型。
* @version DragonBones 5.0
* @language zh_CN
*/
type: BoundingBoxType;
/**
* @private
*/
color: number;
/**
* @private
*/
width: number;
/**
* @private
*/
height: number;
/**
* @private
*/
protected _onClear(): void;
/**
* - Check whether the bounding box contains a specific point. (Local coordinate system)
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查边界框是否包含特定点。(本地坐标系)
* @version DragonBones 5.0
* @language zh_CN
*/
abstract containsPoint(pX: number, pY: number): boolean;
/**
* - Check whether the bounding box intersects a specific segment. (Local coordinate system)
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查边界框是否与特定线段相交。(本地坐标系)
* @version DragonBones 5.0
* @language zh_CN
*/
abstract intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA: {
x: number;
y: number;
} | null, intersectionPointB: {
x: number;
y: number;
} | null, normalRadians: {
x: number;
y: number;
} | null): number;
}
/**
* - The rectangle bounding box data.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 矩形边界框数据。
* @version DragonBones 5.1
* @language zh_CN
*/
class RectangleBoundingBoxData extends BoundingBoxData {
static toString(): string;
/**
* - Compute the bit code for a point (x, y) using the clip rectangle
*/
private static _computeOutCode(x, y, xMin, yMin, xMax, yMax);
/**
* @private
*/
static rectangleIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xMin: number, yMin: number, xMax: number, yMax: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
/**
* @inheritDoc
* @private
*/
protected _onClear(): void;
/**
* @inheritDoc
*/
containsPoint(pX: number, pY: number): boolean;
/**
* @inheritDoc
*/
intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
}
/**
* - The ellipse bounding box data.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 椭圆边界框数据。
* @version DragonBones 5.1
* @language zh_CN
*/
class EllipseBoundingBoxData extends BoundingBoxData {
static toString(): string;
/**
* @private
*/
static ellipseIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xC: number, yC: number, widthH: number, heightH: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
/**
* @inheritDoc
* @private
*/
protected _onClear(): void;
/**
* @inheritDoc
*/
containsPoint(pX: number, pY: number): boolean;
/**
* @inheritDoc
*/
intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
}
/**
* - The polygon bounding box data.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 多边形边界框数据。
* @version DragonBones 5.1
* @language zh_CN
*/
class PolygonBoundingBoxData extends BoundingBoxData {
static toString(): string;
/**
* @private
*/
static polygonIntersectsSegment(xA: number, yA: number, xB: number, yB: number, vertices: Array<number>, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
/**
* @private
*/
x: number;
/**
* @private
*/
y: number;
/**
* - The polygon vertices.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 多边形顶点。
* @version DragonBones 5.1
* @language zh_CN
*/
readonly vertices: Array<number>;
/**
* @private
*/
weight: WeightData | null;
/**
* @inheritDoc
* @private
*/
protected _onClear(): void;
/**
* @inheritDoc
*/
containsPoint(pX: number, pY: number): boolean;
/**
* @inheritDoc
*/
intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The animation data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画数据。
* @version DragonBones 3.0
* @language zh_CN
*/
class AnimationData extends BaseObject {
static toString(): string;
/**
* - FrameIntArray.
* @internal
* @private
*/
frameIntOffset: number;
/**
* - FrameFloatArray.
* @internal
* @private
*/
frameFloatOffset: number;
/**
* - FrameArray.
* @internal
* @private
*/
frameOffset: number;
/**
* - The frame count of the animation.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画的帧数。
* @version DragonBones 3.0
* @language zh_CN
*/
frameCount: number;
/**
* - The play times of the animation. [0: Loop play, [1~N]: Play N times]
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画的播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]
* @version DragonBones 3.0
* @language zh_CN
*/
playTimes: number;
/**
* - The duration of the animation. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画的持续时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
duration: number;
/**
* @private
*/
scale: number;
/**
* - The fade in time of the animation. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画的淡入时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
fadeInTime: number;
/**
* @private
*/
cacheFrameRate: number;
/**
* - The animation name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* @private
*/
readonly cachedFrames: Array<boolean>;
/**
* @private
*/
readonly boneTimelines: Map<Array<TimelineData>>;
/**
* @private
*/
readonly surfaceTimelines: Map<Array<TimelineData>>;
/**
* @private
*/
readonly slotTimelines: Map<Array<TimelineData>>;
/**
* @private
*/
readonly constraintTimelines: Map<Array<TimelineData>>;
/**
* @private
*/
readonly animationTimelines: Map<Array<TimelineData>>;
/**
* @private
*/
readonly boneCachedFrameIndices: Map<Array<number>>;
/**
* @private
*/
readonly slotCachedFrameIndices: Map<Array<number>>;
/**
* @private
*/
actionTimeline: TimelineData | null;
/**
* @private
*/
zOrderTimeline: TimelineData | null;
/**
* @private
*/
parent: ArmatureData;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
cacheFrames(frameRate: number): void;
/**
* @private
*/
addBoneTimeline(bone: BoneData, timeline: TimelineData): void;
/**
* @private
*/
addSurfaceTimeline(surface: SurfaceData, timeline: TimelineData): void;
/**
* @private
*/
addSlotTimeline(slot: SlotData, timeline: TimelineData): void;
/**
* @private
*/
addConstraintTimeline(constraint: ConstraintData, timeline: TimelineData): void;
/**
* @private
*/
addAnimationTimeline(name: string, timeline: TimelineData): void;
/**
* @private
*/
getBoneTimelines(name: string): Array<TimelineData> | null;
/**
* @private
*/
getSurfaceTimelines(name: string): Array<TimelineData> | null;
/**
* @private
*/
getSlotTimelines(name: string): Array<TimelineData> | null;
/**
* @private
*/
getConstraintTimelines(name: string): Array<TimelineData> | null;
/**
* @private
*/
getAnimationTimelines(name: string): Array<TimelineData> | null;
/**
* @private
*/
getBoneCachedFrameIndices(name: string): Array<number> | null;
/**
* @private
*/
getSlotCachedFrameIndices(name: string): Array<number> | null;
}
/**
* @internal
* @private
*/
class TimelineData extends BaseObject {
static toString(): string;
type: TimelineType;
offset: number;
frameIndicesOffset: number;
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The animation config is used to describe all the information needed to play an animation state.
* The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used.
* @see dragonBones.AnimationState
* @beta
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画配置用来描述播放一个动画状态所需要的全部信息。
* 该 API 仍在实验阶段,使用时可能遭遇 bug 或稳定性或兼容性问题。
* @see dragonBones.AnimationState
* @beta
* @version DragonBones 5.0
* @language zh_CN
*/
class AnimationConfig extends BaseObject {
static toString(): string;
/**
* @private
*/
pauseFadeOut: boolean;
/**
* - Fade out the pattern of other animation states when the animation state is fade in.
* This property is typically used to specify the substitution of multiple animation states blend.
* @default dragonBones.AnimationFadeOutMode.All
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 淡入动画状态时淡出其他动画状态的模式。
* 该属性通常用来指定多个动画状态混合时的相互替换关系。
* @default dragonBones.AnimationFadeOutMode.All
* @version DragonBones 5.0
* @language zh_CN
*/
fadeOutMode: AnimationFadeOutMode;
/**
* @private
*/
fadeOutTweenType: TweenType;
/**
* @private
*/
fadeOutTime: number;
/**
* @private
*/
pauseFadeIn: boolean;
/**
* @private
*/
actionEnabled: boolean;
/**
* @private
*/
additiveBlending: boolean;
/**
* - Whether the animation state has control over the display property of the slots.
* Sometimes blend a animation state does not want it to control the display properties of the slots,
* especially if other animation state are controlling the display properties of the slots.
* @default true
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态是否对插槽的显示对象属性有控制权。
* 有时混合一个动画状态并不希望其控制插槽的显示对象属性,
* 尤其是其他动画状态正在控制这些插槽的显示对象属性时。
* @default true
* @version DragonBones 5.0
* @language zh_CN
*/
displayControl: boolean;
/**
* - Whether to reset the objects without animation to the armature pose when the animation state is start to play.
* This property should usually be set to false when blend multiple animation states.
* @default true
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。
* 通常在混合多个动画状态时应该将该属性设置为 false。
* @default true
* @version DragonBones 5.1
* @language zh_CN
*/
resetToPose: boolean;
/**
* @private
*/
fadeInTweenType: TweenType;
/**
* - The play times. [0: Loop play, [1~N]: Play N times]
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]
* @version DragonBones 3.0
* @language zh_CN
*/
playTimes: number;
/**
* - The blend layer.
* High layer animation state will get the blend weight first.
* When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned.
* @readonly
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合图层。
* 图层高的动画状态会优先获取混合权重。
* 当混合权重分配超过 1 时,剩余的动画状态将不再获得权重分配。
* @readonly
* @version DragonBones 5.0
* @language zh_CN
*/
layer: number;
/**
* - The start time of play. (In seconds)
* @default 0.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 播放的开始时间。 (以秒为单位)
* @default 0.0
* @version DragonBones 5.0
* @language zh_CN
*/
position: number;
/**
* - The duration of play.
* [-1: Use the default value of the animation data, 0: Stop play, (0~N]: The duration] (In seconds)
* @default -1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 播放的持续时间。
* [-1: 使用动画数据默认值, 0: 动画停止, (0~N]: 持续时间] (以秒为单位)
* @default -1.0
* @version DragonBones 5.0
* @language zh_CN
*/
duration: number;
/**
* - The play speed.
* The value is an overlay relationship with {@link dragonBones.Animation#timeScale}.
* [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放速度。
* 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。
* [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
timeScale: number;
/**
* - The blend weight.
* @default 1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合权重。
* @default 1.0
* @version DragonBones 5.0
* @language zh_CN
*/
weight: number;
/**
* - The fade in time.
* [-1: Use the default value of the animation data, [0~N]: The fade in time] (In seconds)
* @default -1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 淡入时间。
* [-1: 使用动画数据默认值, [0~N]: 淡入时间] (以秒为单位)
* @default -1.0
* @version DragonBones 5.0
* @language zh_CN
*/
fadeInTime: number;
/**
* - The auto fade out time when the animation state play completed.
* [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds)
* @default -1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态播放完成后的自动淡出时间。
* [-1: 不自动淡出, [0~N]: 淡出时间] (以秒为单位)
* @default -1.0
* @version DragonBones 5.0
* @language zh_CN
*/
autoFadeOutTime: number;
/**
* - The name of the animation state. (Can be different from the name of the animation data)
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态名称。 (可以不同于动画数据)
* @version DragonBones 5.0
* @language zh_CN
*/
name: string;
/**
* - The animation data name.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画数据名称。
* @version DragonBones 5.0
* @language zh_CN
*/
animation: string;
/**
* - The blend group name of the animation state.
* This property is typically used to specify the substitution of multiple animation states blend.
* @readonly
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合组名称。
* 该属性通常用来指定多个动画状态混合时的相互替换关系。
* @readonly
* @version DragonBones 5.0
* @language zh_CN
*/
group: string;
/**
* @private
*/
readonly boneMask: Array<string>;
/**
* @private
*/
protected _onClear(): void;
/**
* @private
*/
clear(): void;
/**
* @private
*/
copyFrom(value: AnimationConfig): void;
/**
* @private
*/
containsBoneMask(name: string): boolean;
/**
* @private
*/
addBoneMask(armature: Armature, name: string, recursive?: boolean): void;
/**
* @private
*/
removeBoneMask(armature: Armature, name: string, recursive?: boolean): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The texture atlas data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 贴图集数据。
* @version DragonBones 3.0
* @language zh_CN
*/
abstract class TextureAtlasData extends BaseObject {
/**
* @private
*/
autoSearch: boolean;
/**
* @private
*/
width: number;
/**
* @private
*/
height: number;
/**
* @private
*/
scale: number;
/**
* - The texture atlas name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 贴图集名称。
* @version DragonBones 3.0
* @language zh_CN
*/
name: string;
/**
* - The image path of the texture atlas.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 贴图集图片路径。
* @version DragonBones 3.0
* @language zh_CN
*/
imagePath: string;
/**
* @private
*/
readonly textures: Map<TextureData>;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @private
*/
copyFrom(value: TextureAtlasData): void;
/**
* @internal
* @private
*/
abstract createTexture(): TextureData;
/**
* @internal
* @private
*/
addTexture(value: TextureData): void;
/**
* @private
*/
getTexture(name: string): TextureData | null;
}
/**
* @internal
* @private
*/
abstract class TextureData extends BaseObject {
static createRectangle(): Rectangle;
rotated: boolean;
name: string;
readonly region: Rectangle;
parent: TextureAtlasData;
frame: Rectangle | null;
protected _onClear(): void;
copyFrom(value: TextureData): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The armature proxy interface, the docking engine needs to implement it concretely.
* @see dragonBones.Armature
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 骨架代理接口,对接的引擎需要对其进行具体实现。
* @see dragonBones.Armature
* @version DragonBones 5.0
* @language zh_CN
*/
interface IArmatureProxy extends IEventDispatcher {
/**
* @internal
* @private
*/
dbInit(armature: Armature): void;
/**
* @internal
* @private
*/
dbClear(): void;
/**
* @internal
* @private
*/
dbUpdate(): void;
/**
* - Dispose the instance and the Armature instance. (The Armature instance will return to the object pool)
* @example
* <pre>
* removeChild(armatureDisplay);
* armatureDisplay.dispose();
* </pre>
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 释放该实例和骨架。 (骨架会回收到对象池)
* @example
* <pre>
* removeChild(armatureDisplay);
* armatureDisplay.dispose();
* </pre>
* @version DragonBones 4.5
* @language zh_CN
*/
dispose(disposeProxy: boolean): void;
/**
* - The armature.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 骨架。
* @version DragonBones 4.5
* @language zh_CN
*/
readonly armature: Armature;
/**
* - The animation player.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画播放器。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly animation: Animation;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - Armature is the core of the skeleton animation system.
* @see dragonBones.ArmatureData
* @see dragonBones.Bone
* @see dragonBones.Slot
* @see dragonBones.Animation
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨架是骨骼动画系统的核心。
* @see dragonBones.ArmatureData
* @see dragonBones.Bone
* @see dragonBones.Slot
* @see dragonBones.Animation
* @version DragonBones 3.0
* @language zh_CN
*/
class Armature extends BaseObject implements IAnimatable {
static toString(): string;
private static _onSortSlots(a, b);
/**
* - Whether to inherit the animation control of the parent armature.
* True to try to have the child armature play an animation with the same name when the parent armature play the animation.
* @default true
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 是否继承父骨架的动画控制。
* 如果该值为 true,当父骨架播放动画时,会尝试让子骨架播放同名动画。
* @default true
* @version DragonBones 4.5
* @language zh_CN
*/
inheritAnimation: boolean;
/**
* @private
*/
userData: any;
private _lockUpdate;
private _bonesDirty;
private _slotsDirty;
private _zOrderDirty;
private _flipX;
private _flipY;
/**
* @internal
* @private
*/
_cacheFrameIndex: number;
private readonly _bones;
private readonly _slots;
/**
* @internal
* @private
*/
readonly _glueSlots: Array<Slot>;
/**
* @internal
* @private
*/
readonly _constraints: Array<Constraint>;
private readonly _actions;
/**
* @internal
* @private
*/
_armatureData: ArmatureData;
private _animation;
private _proxy;
private _display;
/**
* @internal
* @private
*/
_replaceTextureAtlasData: TextureAtlasData | null;
private _replacedTexture;
/**
* @internal
* @private
*/
_dragonBones: DragonBones;
private _clock;
/**
* @internal
* @private
*/
_parent: Slot | null;
/**
* @private
*/
protected _onClear(): void;
private _sortBones();
private _sortSlots();
/**
* @internal
* @private
*/
_sortZOrder(slotIndices: Array<number> | Int16Array | null, offset: number): void;
/**
* @internal
* @private
*/
_addBoneToBoneList(value: Bone): void;
/**
* @internal
* @private
*/
_removeBoneFromBoneList(value: Bone): void;
/**
* @internal
* @private
*/
_addSlotToSlotList(value: Slot): void;
/**
* @internal
* @private
*/
_removeSlotFromSlotList(value: Slot): void;
/**
* @internal
* @private
*/
_bufferAction(action: ActionData, append: boolean): void;
/**
* - Dispose the armature. (Return to the object pool)
* @example
* <pre>
* removeChild(armature.display);
* armature.dispose();
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 释放骨架。 (回收到对象池)
* @example
* <pre>
* removeChild(armature.display);
* armature.dispose();
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
dispose(): void;
/**
* @internal
* @private
*/
init(armatureData: ArmatureData, proxy: IArmatureProxy, display: any, dragonBones: DragonBones): void;
/**
* @inheritDoc
*/
advanceTime(passedTime: number): void;
/**
* - Forces a specific bone or its owning slot to update the transform or display property in the next frame.
* @param boneName - The bone name. (If not set, all bones will be update)
* @param updateSlot - Whether to update the bone's slots. (Default: false)
* @see dragonBones.Bone#invalidUpdate()
* @see dragonBones.Slot#invalidUpdate()
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 强制特定骨骼或其拥有的插槽在下一帧更新变换或显示属性。
* @param boneName - 骨骼名称。 (如果未设置,将更新所有骨骼)
* @param updateSlot - 是否更新骨骼的插槽。 (默认: false)
* @see dragonBones.Bone#invalidUpdate()
* @see dragonBones.Slot#invalidUpdate()
* @version DragonBones 3.0
* @language zh_CN
*/
invalidUpdate(boneName?: string | null, updateSlot?: boolean): void;
/**
* - Check whether a specific point is inside a custom bounding box in a slot.
* The coordinate system of the point is the inner coordinate system of the armature.
* Custom bounding boxes need to be customized in Dragonbones Pro.
* @param x - The horizontal coordinate of the point.
* @param y - The vertical coordinate of the point.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查特定点是否在某个插槽的自定义边界框内。
* 点的坐标系为骨架内坐标系。
* 自定义边界框需要在 DragonBones Pro 中自定义。
* @param x - 点的水平坐标。
* @param y - 点的垂直坐标。
* @version DragonBones 5.0
* @language zh_CN
*/
containsPoint(x: number, y: number): Slot | null;
/**
* - Check whether a specific segment intersects a custom bounding box for a slot in the armature.
* The coordinate system of the segment and intersection is the inner coordinate system of the armature.
* Custom bounding boxes need to be customized in Dragonbones Pro.
* @param xA - The horizontal coordinate of the beginning of the segment.
* @param yA - The vertical coordinate of the beginning of the segment.
* @param xB - The horizontal coordinate of the end point of the segment.
* @param yB - The vertical coordinate of the end point of the segment.
* @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated)
* @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated)
* @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated)
* @returns The slot of the first custom bounding box where the segment intersects from the start point to the end point.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查特定线段是否与骨架的某个插槽的自定义边界框相交。
* 线段和交点的坐标系均为骨架内坐标系。
* 自定义边界框需要在 DragonBones Pro 中自定义。
* @param xA - 线段起点的水平坐标。
* @param yA - 线段起点的垂直坐标。
* @param xB - 线段终点的水平坐标。
* @param yB - 线段终点的垂直坐标。
* @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 (如果未设置,则不计算交点)
* @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 (如果未设置,则不计算交点)
* @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] (如果未设置,则不计算法线)
* @returns 线段从起点到终点相交的第一个自定义边界框的插槽。
* @version DragonBones 5.0
* @language zh_CN
*/
intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): Slot | null;
/**
* - Get a specific bone.
* @param name - The bone name.
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的骨骼。
* @param name - 骨骼名称。
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language zh_CN
*/
getBone(name: string): Bone | null;
/**
* - Get a specific bone by the display.
* @param display - The display object.
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 通过显示对象获取特定的骨骼。
* @param display - 显示对象。
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language zh_CN
*/
getBoneByDisplay(display: any): Bone | null;
/**
* - Get a specific slot.
* @param name - The slot name.
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的插槽。
* @param name - 插槽名称。
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language zh_CN
*/
getSlot(name: string): Slot | null;
/**
* - Get a specific slot by the display.
* @param display - The display object.
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 通过显示对象获取特定的插槽。
* @param display - 显示对象。
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language zh_CN
*/
getSlotByDisplay(display: any): Slot | null;
/**
* @deprecated
*/
addBone(value: Bone, parentName: string): void;
/**
* @deprecated
*/
addSlot(value: Slot, parentName: string): void;
/**
* @private
*/
addConstraint(value: Constraint): void;
/**
* @deprecated
*/
removeBone(value: Bone): void;
/**
* @deprecated
*/
removeSlot(value: Slot): void;
/**
* - Get all bones.
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取所有的骨骼。
* @see dragonBones.Bone
* @version DragonBones 3.0
* @language zh_CN
*/
getBones(): Array<Bone>;
/**
* - Get all slots.
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取所有的插槽。
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language zh_CN
*/
getSlots(): Array<Slot>;
/**
* - Whether to flip the armature horizontally.
* @version DragonBones 5.5
* @language en_US
*/
/**
* - 是否将骨架水平翻转。
* @version DragonBones 5.5
* @language zh_CN
*/
flipX: boolean;
/**
* - Whether to flip the armature vertically.
* @version DragonBones 5.5
* @language en_US
*/
/**
* - 是否将骨架垂直翻转。
* @version DragonBones 5.5
* @language zh_CN
*/
flipY: boolean;
/**
* - The animation cache frame rate, which turns on the animation cache when the set value is greater than 0.
* There is a certain amount of memory overhead to improve performance by caching animation data in memory.
* The frame rate should not be set too high, usually with the frame rate of the animation is similar and lower than the program running frame rate.
* When the animation cache is turned on, some features will fail, such as the offset property of bone.
* @example
* <pre>
* armature.cacheFrameRate = 24;
* </pre>
* @see dragonBones.DragonBonesData#frameRate
* @see dragonBones.ArmatureData#frameRate
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画缓存帧率,当设置的值大于 0 的时,将会开启动画缓存。
* 通过将动画数据缓存在内存中来提高运行性能,会有一定的内存开销。
* 帧率不宜设置的过高,通常跟动画的帧率相当且低于程序运行的帧率。
* 开启动画缓存后,某些功能将会失效,比如骨骼的 offset 属性等。
* @example
* <pre>
* armature.cacheFrameRate = 24;
* </pre>
* @see dragonBones.DragonBonesData#frameRate
* @see dragonBones.ArmatureData#frameRate
* @version DragonBones 4.5
* @language zh_CN
*/
cacheFrameRate: number;
/**
* - The armature name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨架名称。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly name: string;
/**
* - The armature data.
* @see dragonBones.ArmatureData
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 骨架数据。
* @see dragonBones.ArmatureData
* @version DragonBones 4.5
* @language zh_CN
*/
readonly armatureData: ArmatureData;
/**
* - The animation player.
* @see dragonBones.Animation
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画播放器。
* @see dragonBones.Animation
* @version DragonBones 3.0
* @language zh_CN
*/
readonly animation: Animation;
/**
* @pivate
*/
readonly proxy: IArmatureProxy;
/**
* - The EventDispatcher instance of the armature.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 该骨架的 EventDispatcher 实例。
* @version DragonBones 4.5
* @language zh_CN
*/
readonly eventDispatcher: IEventDispatcher;
/**
* - The display container.
* The display of the slot is displayed as the parent.
* Depending on the rendering engine, the type will be different, usually the DisplayObjectContainer type.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 显示容器实例。
* 插槽的显示对象都会以此显示容器为父级。
* 根据渲染引擎的不同,类型会不同,通常是 DisplayObjectContainer 类型。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly display: any;
/**
* @private
*/
replacedTexture: any;
/**
* @inheritDoc
*/
clock: WorldClock | null;
/**
* - Get the parent slot which the armature belongs to.
* @see dragonBones.Slot
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 该骨架所属的父插槽。
* @see dragonBones.Slot
* @version DragonBones 4.5
* @language zh_CN
*/
readonly parent: Slot | null;
/**
* @deprecated
* @private
*/
replaceTexture(texture: any): void;
/**
* - Deprecated, please refer to {@link #eventDispatcher}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #eventDispatcher}。
* @deprecated
* @language zh_CN
*/
hasEventListener(type: EventStringType): boolean;
/**
* - Deprecated, please refer to {@link #eventDispatcher}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #eventDispatcher}。
* @deprecated
* @language zh_CN
*/
addEventListener(type: EventStringType, listener: Function, target: any): void;
/**
* - Deprecated, please refer to {@link #eventDispatcher}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #eventDispatcher}。
* @deprecated
* @language zh_CN
*/
removeEventListener(type: EventStringType, listener: Function, target: any): void;
/**
* - Deprecated, please refer to {@link #cacheFrameRate}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #cacheFrameRate}。
* @deprecated
* @language zh_CN
*/
enableAnimationCache(frameRate: number): void;
/**
* - Deprecated, please refer to {@link #display}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #display}。
* @deprecated
* @language zh_CN
*/
getDisplay(): any;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The base class of the transform object.
* @see dragonBones.Transform
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 变换对象的基类。
* @see dragonBones.Transform
* @version DragonBones 4.5
* @language zh_CN
*/
abstract class TransformObject extends BaseObject {
/**
* @private
*/
protected static readonly _helpMatrix: Matrix;
/**
* @private
*/
protected static readonly _helpTransform: Transform;
/**
* @private
*/
protected static readonly _helpPoint: Point;
/**
* - A matrix relative to the armature coordinate system.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 相对于骨架坐标系的矩阵。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly globalTransformMatrix: Matrix;
/**
* - A transform relative to the armature coordinate system.
* @see #updateGlobalTransform()
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 相对于骨架坐标系的变换。
* @see #updateGlobalTransform()
* @version DragonBones 3.0
* @language zh_CN
*/
readonly global: Transform;
/**
* - The offset transform relative to the armature or the parent bone coordinate system.
* @see #dragonBones.Bone#invalidUpdate()
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 相对于骨架或父骨骼坐标系的偏移变换。
* @see #dragonBones.Bone#invalidUpdate()
* @version DragonBones 3.0
* @language zh_CN
*/
readonly offset: Transform;
/**
* @private
*/
origin: Transform | null;
/**
* @private
*/
userData: any;
/**
* @private
*/
protected _globalDirty: boolean;
/**
* @internal
* @private
*/
_armature: Armature;
/**
* @internal
* @private
*/
_parent: Bone;
/**
* @private
*/
protected _onClear(): void;
/**
* @internal
* @private
*/
_setArmature(value: Armature | null): void;
/**
* @internal
* @private
*/
_setParent(value: Bone | null): void;
/**
* - For performance considerations, rotation or scale in the {@link #global} attribute of the bone or slot is not always properly accessible,
* some engines do not rely on these attributes to update rendering, such as Egret.
* The use of this method ensures that the access to the {@link #global} property is correctly rotation or scale.
* @example
* <pre>
* bone.updateGlobalTransform();
* let rotation = bone.global.rotation;
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 出于性能的考虑,骨骼或插槽的 {@link #global} 属性中的旋转或缩放并不总是正确可访问的,有些引擎并不依赖这些属性更新渲染,比如 Egret。
* 使用此方法可以保证访问到 {@link #global} 属性中正确的旋转或缩放。
* @example
* <pre>
* bone.updateGlobalTransform();
* let rotation = bone.global.rotation;
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
updateGlobalTransform(): void;
/**
* - The armature to which it belongs.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 所属的骨架。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly armature: Armature;
/**
* - The parent bone to which it belongs.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 所属的父骨骼。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly parent: Bone;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - Bone is one of the most important logical units in the armature animation system,
* and is responsible for the realization of translate, rotation, scaling in the animations.
* A armature can contain multiple bones.
* @see dragonBones.BoneData
* @see dragonBones.Armature
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨骼在骨骼动画体系中是最重要的逻辑单元之一,负责动画中的平移、旋转、缩放的实现。
* 一个骨架中可以包含多个骨骼。
* @see dragonBones.BoneData
* @see dragonBones.Armature
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language zh_CN
*/
class Bone extends TransformObject {
static toString(): string;
/**
* - The offset mode.
* @see #offset
* @version DragonBones 5.5
* @language en_US
*/
/**
* - 偏移模式。
* @see #offset
* @version DragonBones 5.5
* @language zh_CN
*/
offsetMode: OffsetMode;
/**
* @internal
* @private
*/
readonly animationPose: Transform;
/**
* @internal
* @private
*/
_transformDirty: boolean;
/**
* @internal
* @private
*/
_childrenTransformDirty: boolean;
protected _localDirty: boolean;
/**
* @internal
* @private
*/
_hasConstraint: boolean;
private _visible;
protected _cachedFrameIndex: number;
/**
* @internal
* @private
*/
readonly _blendState: BlendState;
/**
* @internal
* @private
*/
_boneData: BoneData;
/**
* @internal
* @private
*/
_cachedFrameIndices: Array<number> | null;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @private
*/
protected _updateGlobalTransformMatrix(isCache: boolean): void;
/**
* @inheritDoc
*/
_setArmature(value: Armature | null): void;
/**
* @internal
* @private
*/
init(boneData: BoneData): void;
/**
* @internal
* @private
*/
update(cacheFrameIndex: number): void;
/**
* @internal
* @private
*/
updateByConstraint(): void;
/**
* - Forces the bone to update the transform in the next frame.
* When the bone is not animated or its animation state is finished, the bone will not continue to update,
* and when the skeleton must be updated for some reason, the method needs to be called explicitly.
* @example
* <pre>
* let bone = armature.getBone("arm");
* bone.offset.scaleX = 2.0;
* bone.invalidUpdate();
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 强制骨骼在下一帧更新变换。
* 当该骨骼没有动画状态或其动画状态播放完成时,骨骼将不在继续更新,而此时由于某些原因必须更新骨骼时,则需要显式调用该方法。
* @example
* <pre>
* let bone = armature.getBone("arm");
* bone.offset.scaleX = 2.0;
* bone.invalidUpdate();
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
invalidUpdate(): void;
/**
* - Check whether the bone contains a specific bone or slot.
* @see dragonBones.Bone
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查该骨骼是否包含特定的骨骼或插槽。
* @see dragonBones.Bone
* @see dragonBones.Slot
* @version DragonBones 3.0
* @language zh_CN
*/
contains(value: TransformObject): boolean;
/**
* - The bone data.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 骨骼数据。
* @version DragonBones 4.5
* @language zh_CN
*/
readonly boneData: BoneData;
/**
* - The visible of all slots in the bone.
* @default true
* @see dragonBones.Slot#visible
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 此骨骼所有插槽的可见。
* @default true
* @see dragonBones.Slot#visible
* @version DragonBones 3.0
* @language zh_CN
*/
visible: boolean;
/**
* - The bone name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 骨骼名称。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly name: string;
/**
* - Deprecated, please refer to {@link dragonBones.Armature#getBones()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.Armature#getBones()}。
* @deprecated
* @language zh_CN
*/
getBones(): Array<Bone>;
/**
* - Deprecated, please refer to {@link dragonBones.Armature#getSlots()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.Armature#getSlots()}。
* @deprecated
* @language zh_CN
*/
getSlots(): Array<Slot>;
/**
* - Deprecated, please refer to {@link dragonBones.Armature#getSlot()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.Armature#getSlot()}。
* @deprecated
* @language zh_CN
*/
readonly slot: Slot | null;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class Surface extends Bone {
static toString(): string;
private _dX;
private _dY;
private _k;
private _kX;
private _kY;
/**
* For debug draw.
* @internal
* @private
*/
readonly _vertices: Array<number>;
/**
* For timeline state.
* @internal
* @private
*/
readonly _deformVertices: Array<number>;
/**
* x1, y1, x2, y2, x3, y3, x4, y4, d1X, d1Y, d2X, d2Y
*/
private readonly _hullCache;
/**
* Inside [flag, a, b, c, d, tx, ty], Outside [flag, a, b, c, d, tx, ty]
*/
private readonly _matrixCahce;
/**
* @inheritDoc
*/
protected _onClear(): void;
private _getAffineTransform(x, y, lX, lY, aX, aY, bX, bY, cX, cY, transform, matrix, isDown);
private _updateVertices();
/**
* @private
*/
protected _updateGlobalTransformMatrix(isCache: boolean): void;
_getGlobalTransformMatrix(x: number, y: number): Matrix;
init(surfaceData: SurfaceData): void;
/**
* @internal
* @private
*/
update(cacheFrameIndex: number): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The slot attached to the armature, controls the display status and properties of the display object.
* A bone can contain multiple slots.
* A slot can contain multiple display objects, displaying only one of the display objects at a time,
* but you can toggle the display object into frame animation while the animation is playing.
* The display object can be a normal texture, or it can be a display of a child armature, a grid display object,
* and a custom other display object.
* @see dragonBones.Armature
* @see dragonBones.Bone
* @see dragonBones.SlotData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽附着在骨骼上,控制显示对象的显示状态和属性。
* 一个骨骼上可以包含多个插槽。
* 一个插槽中可以包含多个显示对象,同一时间只能显示其中的一个显示对象,但可以在动画播放的过程中切换显示对象实现帧动画。
* 显示对象可以是普通的图片纹理,也可以是子骨架的显示容器,网格显示对象,还可以是自定义的其他显示对象。
* @see dragonBones.Armature
* @see dragonBones.Bone
* @see dragonBones.SlotData
* @version DragonBones 3.0
* @language zh_CN
*/
abstract class Slot extends TransformObject {
/**
* - Displays the animated state or mixed group name controlled by the object, set to null to be controlled by all animation states.
* @default null
* @see dragonBones.AnimationState#displayControl
* @see dragonBones.AnimationState#name
* @see dragonBones.AnimationState#group
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 显示对象受到控制的动画状态或混合组名称,设置为 null 则表示受所有的动画状态控制。
* @default null
* @see dragonBones.AnimationState#displayControl
* @see dragonBones.AnimationState#name
* @see dragonBones.AnimationState#group
* @version DragonBones 4.5
* @language zh_CN
*/
displayController: string | null;
/**
* @private
*/
protected _displayDirty: boolean;
/**
* @private
*/
protected _zOrderDirty: boolean;
/**
* @private
*/
protected _visibleDirty: boolean;
/**
* @private
*/
protected _blendModeDirty: boolean;
/**
* @internal
* @private
*/
_colorDirty: boolean;
/**
* @internal
* @private
*/
_meshDirty: boolean;
/**
* @private
*/
protected _transformDirty: boolean;
/**
* @private
*/
protected _visible: boolean;
/**
* @private
*/
protected _blendMode: BlendMode;
/**
* @private
*/
protected _displayIndex: number;
/**
* @private
*/
protected _animationDisplayIndex: number;
/**
* @internal
* @private
*/
_zOrder: number;
/**
* @private
*/
protected _cachedFrameIndex: number;
/**
* @internal
* @private
*/
_pivotX: number;
/**
* @internal
* @private
*/
_pivotY: number;
/**
* @private
*/
protected readonly _localMatrix: Matrix;
/**
* @internal
* @private
*/
readonly _colorTransform: ColorTransform;
/**
* @internal
* @private
*/
readonly _deformVertices: Array<number>;
/**
* @private
*/
readonly _displayDatas: Array<DisplayData | null>;
/**
* @private
*/
protected readonly _displayList: Array<any | Armature>;
/**
* @private
*/
protected readonly _meshBones: Array<Bone | null>;
/**
* @private
*/
protected readonly _meshSlots: Array<Slot | null>;
/**
* @internal
* @private
*/
_slotData: SlotData;
/**
* @private
*/
protected _rawDisplayDatas: Array<DisplayData | null> | null;
/**
* @private
*/
protected _displayData: DisplayData | null;
/**
* @private
*/
protected _textureData: TextureData | null;
/**
* @internal
* @private
*/
_meshData: MeshDisplayData | null;
/**
* @private
*/
protected _boundingBoxData: BoundingBoxData | null;
/**
* @private
*/
protected _rawDisplay: any;
/**
* @private
*/
protected _meshDisplay: any;
/**
* @private
*/
protected _display: any;
/**
* @private
*/
protected _childArmature: Armature | null;
/**
* @internal
* @private
*/
_cachedFrameIndices: Array<number> | null;
/**
* @inheritDoc
*/
protected _onClear(): void;
/**
* @private
*/
protected abstract _initDisplay(value: any, isRetain: boolean): void;
/**
* @private
*/
protected abstract _disposeDisplay(value: any, isRelease: boolean): void;
/**
* @private
*/
protected abstract _onUpdateDisplay(): void;
/**
* @private
*/
protected abstract _addDisplay(): void;
/**
* @private
*/
protected abstract _replaceDisplay(value: any): void;
/**
* @private
*/
protected abstract _removeDisplay(): void;
/**
* @private
*/
protected abstract _updateZOrder(): void;
/**
* @private
*/
abstract _updateVisible(): void;
/**
* @private
*/
protected abstract _updateBlendMode(): void;
/**
* @private
*/
protected abstract _updateColor(): void;
/**
* @private
*/
protected abstract _updateFrame(): void;
/**
* @private
*/
protected abstract _updateMesh(): void;
/**
* @internal
* @private
*/
abstract _updateGlueMesh(): void;
/**
* @private
*/
protected abstract _updateTransform(): void;
/**
* @private
*/
protected abstract _identityTransform(): void;
/**
* @private
*/
protected _getDefaultRawDisplayData(): DisplayData | null;
/**
* @private
*/
protected _updateDisplayData(): void;
/**
* @private
*/
protected _updateDisplay(): void;
/**
* @private
*/
protected _updateGlobalTransformMatrix(isCache: boolean): void;
/**
* @private
*/
protected _isMeshBonesUpdate(): boolean;
/**
* @inheritDoc
*/
_setArmature(value: Armature | null): void;
/**
* @internal
* @private
*/
_setDisplayIndex(value: number, isAnimation?: boolean): boolean;
/**
* @internal
* @private
*/
_setZorder(value: number): boolean;
/**
* @internal
* @private
*/
_setColor(value: ColorTransform): boolean;
/**
* @internal
* @private
*/
_setDisplayList(value: Array<any> | null): boolean;
/**
* @internal
* @private
*/
init(slotData: SlotData, displayDatas: Array<DisplayData | null> | null, rawDisplay: any, meshDisplay: any): void;
/**
* @internal
* @private
*/
update(cacheFrameIndex: number): void;
/**
* @private
*/
updateTransformAndMatrix(): void;
/**
* @private
*/
replaceDisplayData(value: DisplayData | null, displayIndex?: number): void;
/**
* - Check whether a specific point is inside a custom bounding box in the slot.
* The coordinate system of the point is the inner coordinate system of the armature.
* Custom bounding boxes need to be customized in Dragonbones Pro.
* @param x - The horizontal coordinate of the point.
* @param y - The vertical coordinate of the point.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查特定点是否在插槽的自定义边界框内。
* 点的坐标系为骨架内坐标系。
* 自定义边界框需要在 DragonBones Pro 中自定义。
* @param x - 点的水平坐标。
* @param y - 点的垂直坐标。
* @version DragonBones 5.0
* @language zh_CN
*/
containsPoint(x: number, y: number): boolean;
/**
* - Check whether a specific segment intersects a custom bounding box for the slot.
* The coordinate system of the segment and intersection is the inner coordinate system of the armature.
* Custom bounding boxes need to be customized in Dragonbones Pro.
* @param xA - The horizontal coordinate of the beginning of the segment.
* @param yA - The vertical coordinate of the beginning of the segment.
* @param xB - The horizontal coordinate of the end point of the segment.
* @param yB - The vertical coordinate of the end point of the segment.
* @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated)
* @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated)
* @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated)
* @returns Intersection situation. [1: Disjoint and segments within the bounding box, 0: Disjoint, 1: Intersecting and having a nodal point and ending in the bounding box, 2: Intersecting and having a nodal point and starting at the bounding box, 3: Intersecting and having two intersections, N: Intersecting and having N intersections]
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 检查特定线段是否与插槽的自定义边界框相交。
* 线段和交点的坐标系均为骨架内坐标系。
* 自定义边界框需要在 DragonBones Pro 中自定义。
* @param xA - 线段起点的水平坐标。
* @param yA - 线段起点的垂直坐标。
* @param xB - 线段终点的水平坐标。
* @param yB - 线段终点的垂直坐标。
* @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 (如果未设置,则不计算交点)
* @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 (如果未设置,则不计算交点)
* @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] (如果未设置,则不计算法线)
* @returns 相交的情况。 [-1: 不相交且线段在包围盒内, 0: 不相交, 1: 相交且有一个交点且终点在包围盒内, 2: 相交且有一个交点且起点在包围盒内, 3: 相交且有两个交点, N: 相交且有 N 个交点]
* @version DragonBones 5.0
* @language zh_CN
*/
intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: {
x: number;
y: number;
} | null, intersectionPointB?: {
x: number;
y: number;
} | null, normalRadians?: {
x: number;
y: number;
} | null): number;
/**
* - Forces the slot to update the state of the display object in the next frame.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 强制插槽在下一帧更新显示对象的状态。
* @version DragonBones 4.5
* @language zh_CN
*/
invalidUpdate(): void;
/**
* - The visible of slot's display object.
* @default true
* @version DragonBones 5.6
* @language en_US
*/
/**
* - 插槽的显示对象的可见。
* @default true
* @version DragonBones 5.6
* @language zh_CN
*/
visible: boolean;
/**
* - The index of the display object displayed in the display list.
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* slot.displayIndex = 3;
* slot.displayController = "none";
* </pre>
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 此时显示的显示对象在显示列表中的索引。
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* slot.displayIndex = 3;
* slot.displayController = "none";
* </pre>
* @version DragonBones 4.5
* @language zh_CN
*/
displayIndex: number;
/**
* - The slot name.
* @see dragonBones.SlotData#name
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽名称。
* @see dragonBones.SlotData#name
* @version DragonBones 3.0
* @language zh_CN
*/
readonly name: string;
/**
* - Contains a display list of display objects or child armatures.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 包含显示对象或子骨架的显示列表。
* @version DragonBones 3.0
* @language zh_CN
*/
displayList: Array<any>;
/**
* - The slot data.
* @see dragonBones.SlotData
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 插槽数据。
* @see dragonBones.SlotData
* @version DragonBones 4.5
* @language zh_CN
*/
readonly slotData: SlotData;
/**
* @private
*/
rawDisplayDatas: Array<DisplayData | null> | null;
/**
* - The custom bounding box data for the slot at current time.
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 插槽此时的自定义包围盒数据。
* @version DragonBones 5.0
* @language zh_CN
*/
readonly boundingBoxData: BoundingBoxData | null;
/**
* @private
*/
readonly rawDisplay: any;
/**
* @private
*/
readonly meshDisplay: any;
/**
* - The display object that the slot displays at this time.
* @example
* <pre>
* let slot = armature.getSlot("text");
* slot.display = new yourEngine.TextField();
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽此时显示的显示对象。
* @example
* <pre>
* let slot = armature.getSlot("text");
* slot.display = new yourEngine.TextField();
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
display: any;
/**
* - The child armature that the slot displayed at current time.
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* slot.childArmature = factory.buildArmature("weapon_blabla", "weapon_blabla_project");
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 插槽此时显示的子骨架。
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* slot.childArmature = factory.buildArmature("weapon_blabla", "weapon_blabla_project");
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
childArmature: Armature | null;
/**
* - Deprecated, please refer to {@link #display}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #display}。
* @deprecated
* @language zh_CN
*/
getDisplay(): any;
/**
* - Deprecated, please refer to {@link #display}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #display}。
* @deprecated
* @language zh_CN
*/
setDisplay(value: any): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
abstract class Constraint extends BaseObject {
protected static readonly _helpMatrix: Matrix;
protected static readonly _helpTransform: Transform;
protected static readonly _helpPoint: Point;
/**
* - For timeline state.
* @internal
*/
_constraintData: ConstraintData;
protected _armature: Armature;
/**
* - For sort bones.
* @internal
*/
_target: Bone;
/**
* - For sort bones.
* @internal
*/
_root: Bone;
protected _bone: Bone | null;
protected _onClear(): void;
abstract init(constraintData: ConstraintData, armature: Armature): void;
abstract update(): void;
abstract invalidUpdate(): void;
readonly name: string;
}
/**
* @internal
* @private
*/
class IKConstraint extends Constraint {
static toString(): string;
private _scaleEnabled;
/**
* - For timeline state.
* @internal
*/
_bendPositive: boolean;
/**
* - For timeline state.
* @internal
*/
_weight: number;
protected _onClear(): void;
private _computeA();
private _computeB();
init(constraintData: ConstraintData, armature: Armature): void;
update(): void;
invalidUpdate(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - Play animation interface. (Both Armature and Wordclock implement the interface)
* Any instance that implements the interface can be added to the Worldclock instance and advance time by Worldclock instance uniformly.
* @see dragonBones.WorldClock
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放动画接口。 (Armature 和 WordClock 都实现了该接口)
* 任何实现了此接口的实例都可以添加到 WorldClock 实例中,由 WorldClock 实例统一更新时间。
* @see dragonBones.WorldClock
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language zh_CN
*/
interface IAnimatable {
/**
* - Advance time.
* @param passedTime - Passed time. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 更新时间。
* @param passedTime - 前进的时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
advanceTime(passedTime: number): void;
/**
* - The Wordclock instance to which the current belongs.
* @example
* <pre>
* armature.clock = factory.clock; // Add armature to clock.
* armature.clock = null; // Remove armature from clock.
* </pre>
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 当前所属的 WordClock 实例。
* @example
* <pre>
* armature.clock = factory.clock; // 将骨架添加到时钟。
* armature.clock = null; // 将骨架从时钟移除。
* </pre>
* @version DragonBones 5.0
* @language zh_CN
*/
clock: WorldClock | null;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - Worldclock provides clock support for animations, advance time for each IAnimatable object added to the instance.
* @see dragonBones.IAnimateble
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language en_US
*/
/**
* - WorldClock 对动画提供时钟支持,为每个加入到该实例的 IAnimatable 对象更新时间。
* @see dragonBones.IAnimateble
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language zh_CN
*/
class WorldClock implements IAnimatable {
/**
* - Current time. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 当前的时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
time: number;
/**
* - The play speed, used to control animation speed-shift play.
* [0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放速度,用于控制动画变速播放。
* [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
timeScale: number;
private readonly _animatebles;
private _clock;
/**
* - Creating a Worldclock instance. Typically, you do not need to create Worldclock instance.
* When multiple Worldclock instances are running at different speeds, can achieving some specific animation effects, such as bullet time.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 创建一个 WorldClock 实例。通常并不需要创建 WorldClock 实例。
* 当多个 WorldClock 实例使用不同的速度运行时,可以实现一些特殊的动画效果,比如子弹时间等。
* @version DragonBones 3.0
* @language zh_CN
*/
constructor(time?: number);
/**
* - Advance time for all IAnimatable instances.
* @param passedTime - Passed time. [-1: Automatically calculates the time difference between the current frame and the previous frame, [0~N): Passed time] (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 为所有的 IAnimatable 实例更新时间。
* @param passedTime - 前进的时间。 [-1: 自动计算当前帧与上一帧的时间差, [0~N): 前进的时间] (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
advanceTime(passedTime: number): void;
/**
* - Check whether contains a specific instance of IAnimatable.
* @param value - The IAnimatable instance.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查是否包含特定的 IAnimatable 实例。
* @param value - IAnimatable 实例。
* @version DragonBones 3.0
* @language zh_CN
*/
contains(value: IAnimatable): boolean;
/**
* - Add IAnimatable instance.
* @param value - The IAnimatable instance.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 添加 IAnimatable 实例。
* @param value - IAnimatable 实例。
* @version DragonBones 3.0
* @language zh_CN
*/
add(value: IAnimatable): void;
/**
* - Removes a specified IAnimatable instance.
* @param value - The IAnimatable instance.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 移除特定的 IAnimatable 实例。
* @param value - IAnimatable 实例。
* @version DragonBones 3.0
* @language zh_CN
*/
remove(value: IAnimatable): void;
/**
* - Clear all IAnimatable instances.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 清除所有的 IAnimatable 实例。
* @version DragonBones 3.0
* @language zh_CN
*/
clear(): void;
/**
* @inheritDoc
*/
clock: WorldClock | null;
/**
* - Deprecated, please refer to {@link dragonBones.BaseFactory#clock}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.BaseFactory#clock}。
* @deprecated
* @language zh_CN
*/
static readonly clock: WorldClock;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The animation player is used to play the animation data and manage the animation states.
* @see dragonBones.AnimationData
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画播放器用来播放动画数据和管理动画状态。
* @see dragonBones.AnimationData
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
class Animation extends BaseObject {
static toString(): string;
/**
* - The play speed of all animations. [0: Stop, (0~1): Slow, 1: Normal, (1~N): Fast]
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 所有动画的播放速度。 [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
timeScale: number;
private _lockUpdate;
private _animationDirty;
private _inheritTimeScale;
private readonly _animationNames;
private readonly _animationStates;
private readonly _animations;
private _armature;
private _animationConfig;
private _lastAnimationState;
/**
* @private
*/
protected _onClear(): void;
private _fadeOut(animationConfig);
/**
* @internal
* @private
*/
init(armature: Armature): void;
/**
* @internal
* @private
*/
advanceTime(passedTime: number): void;
/**
* - Clear all animations states.
* @see dragonBones.AnimationState
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 清除所有的动画状态。
* @see dragonBones.AnimationState
* @version DragonBones 4.5
* @language zh_CN
*/
reset(): void;
/**
* - Pause a specific animation state.
* @param animationName - The name of animation state. (If not set, it will pause all animations)
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 暂停指定动画状态的播放。
* @param animationName - 动画状态名称。 (如果未设置,则暂停所有动画)
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
stop(animationName?: string | null): void;
/**
* - Play animation with a specific animation config.
* The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used.
* @param animationConfig - The animation config.
* @returns The playing animation state.
* @see dragonBones.AnimationConfig
* @beta
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 通过指定的动画配置来播放动画。
* 该 API 仍在实验阶段,使用时可能遭遇 bug 或稳定性或兼容性问题。
* @param animationConfig - 动画配置。
* @returns 播放的动画状态。
* @see dragonBones.AnimationConfig
* @beta
* @version DragonBones 5.0
* @language zh_CN
*/
playConfig(animationConfig: AnimationConfig): AnimationState | null;
/**
* - Play a specific animation.
* @param animationName - The name of animation data. (If not set, The default animation will be played, or resume the animation playing from pause status, or replay the last playing animation)
* @param playTimes - Playing repeat times. [-1: Use default value of the animation data, 0: No end loop playing, [1~N]: Repeat N times] (default: -1)
* @returns The playing animation state.
* @example
* <pre>
* armature.animation.play("walk");
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放指定动画。
* @param animationName - 动画数据名称。 (如果未设置,则播放默认动画,或将暂停状态切换为播放状态,或重新播放之前播放的动画)
* @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1)
* @returns 播放的动画状态。
* @example
* <pre>
* armature.animation.play("walk");
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
play(animationName?: string | null, playTimes?: number): AnimationState | null;
/**
* - Fade in a specific animation.
* @param animationName - The name of animation data.
* @param fadeInTime - The fade in time. [-1: Use the default value of animation data, [0~N]: The fade in time (In seconds)] (Default: -1)
* @param playTimes - playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)
* @param layer - The blending layer, the animation states in high level layer will get the blending weights with high priority, when the total blending weights are more than 1.0, there will be no more weights can be allocated to the other animation states. (Default: 0)
* @param group - The blending group name, it is typically used to specify the substitution of multiple animation states blending. (Default: null)
* @param fadeOutMode - The fade out mode, which is typically used to specify alternate mode of multiple animation states blending. (Default: AnimationFadeOutMode.SameLayerAndGroup)
* @returns The playing animation state.
* @example
* <pre>
* armature.animation.fadeIn("walk", 0.3, 0, 0, "normalGroup").resetToPose = false;
* armature.animation.fadeIn("attack", 0.3, 1, 0, "attackGroup").resetToPose = false;
* </pre>
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 淡入播放指定的动画。
* @param animationName - 动画数据名称。
* @param fadeInTime - 淡入时间。 [-1: 使用动画数据默认值, [0~N]: 淡入时间 (以秒为单位)] (默认: -1)
* @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1)
* @param layer - 混合图层,图层高的动画状态会优先获取混合权重,当混合权重分配总和超过 1.0 时,剩余的动画状态将不能再获得权重分配。 (默认: 0)
* @param group - 混合组名称,该属性通常用来指定多个动画状态混合时的相互替换关系。 (默认: null)
* @param fadeOutMode - 淡出模式,该属性通常用来指定多个动画状态混合时的相互替换模式。 (默认: AnimationFadeOutMode.SameLayerAndGroup)
* @returns 播放的动画状态。
* @example
* <pre>
* armature.animation.fadeIn("walk", 0.3, 0, 0, "normalGroup").resetToPose = false;
* armature.animation.fadeIn("attack", 0.3, 1, 0, "attackGroup").resetToPose = false;
* </pre>
* @version DragonBones 4.5
* @language zh_CN
*/
fadeIn(animationName: string, fadeInTime?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode): AnimationState | null;
/**
* - Play a specific animation from the specific time.
* @param animationName - The name of animation data.
* @param time - The start time point of playing. (In seconds)
* @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 从指定时间开始播放指定的动画。
* @param animationName - 动画数据名称。
* @param time - 播放开始的时间。 (以秒为单位)
* @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1)
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndPlayByTime(animationName: string, time?: number, playTimes?: number): AnimationState | null;
/**
* - Play a specific animation from the specific frame.
* @param animationName - The name of animation data.
* @param frame - The start frame of playing.
* @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 从指定帧开始播放指定的动画。
* @param animationName - 动画数据名称。
* @param frame - 播放开始的帧数。
* @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1)
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndPlayByFrame(animationName: string, frame?: number, playTimes?: number): AnimationState | null;
/**
* - Play a specific animation from the specific progress.
* @param animationName - The name of animation data.
* @param progress - The start progress value of playing.
* @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1)
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 从指定进度开始播放指定的动画。
* @param animationName - 动画数据名称。
* @param progress - 开始播放的进度。
* @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1)
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndPlayByProgress(animationName: string, progress?: number, playTimes?: number): AnimationState | null;
/**
* - Stop a specific animation at the specific time.
* @param animationName - The name of animation data.
* @param time - The stop time. (In seconds)
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 在指定时间停止指定动画播放
* @param animationName - 动画数据名称。
* @param time - 停止的时间。 (以秒为单位)
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndStopByTime(animationName: string, time?: number): AnimationState | null;
/**
* - Stop a specific animation at the specific frame.
* @param animationName - The name of animation data.
* @param frame - The stop frame.
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 在指定帧停止指定动画的播放
* @param animationName - 动画数据名称。
* @param frame - 停止的帧数。
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndStopByFrame(animationName: string, frame?: number): AnimationState | null;
/**
* - Stop a specific animation at the specific progress.
* @param animationName - The name of animation data.
* @param progress - The stop progress value.
* @returns The played animation state.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 在指定的进度停止指定的动画播放。
* @param animationName - 动画数据名称。
* @param progress - 停止进度。
* @returns 播放的动画状态。
* @version DragonBones 4.5
* @language zh_CN
*/
gotoAndStopByProgress(animationName: string, progress?: number): AnimationState | null;
/**
* - Get a specific animation state.
* @param animationName - The name of animation state.
* @example
* <pre>
* armature.animation.play("walk");
* let walkState = armature.animation.getState("walk");
* walkState.timeScale = 0.5;
* </pre>
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取指定的动画状态
* @param animationName - 动画状态名称。
* @example
* <pre>
* armature.animation.play("walk");
* let walkState = armature.animation.getState("walk");
* walkState.timeScale = 0.5;
* </pre>
* @version DragonBones 3.0
* @language zh_CN
*/
getState(animationName: string): AnimationState | null;
/**
* - Check whether a specific animation data is included.
* @param animationName - The name of animation data.
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查是否包含指定的动画数据
* @param animationName - 动画数据名称。
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language zh_CN
*/
hasAnimation(animationName: string): boolean;
/**
* - Get all the animation states.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 获取所有的动画状态
* @version DragonBones 5.1
* @language zh_CN
*/
getStates(): Array<AnimationState>;
/**
* - Check whether there is an animation state is playing
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查是否有动画状态正在播放
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
readonly isPlaying: boolean;
/**
* - Check whether all the animation states' playing were finished.
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查是否所有的动画状态均已播放完毕。
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
readonly isCompleted: boolean;
/**
* - The name of the last playing animation state.
* @see #lastAnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 上一个播放的动画状态名称
* @see #lastAnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
readonly lastAnimationName: string;
/**
* - The name of all animation data
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 所有动画数据的名称
* @version DragonBones 4.5
* @language zh_CN
*/
readonly animationNames: Array<string>;
/**
* - All animation data.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 所有的动画数据。
* @version DragonBones 4.5
* @language zh_CN
*/
animations: Map<AnimationData>;
/**
* - An AnimationConfig instance that can be used quickly.
* @see dragonBones.AnimationConfig
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 一个可以快速使用的动画配置实例。
* @see dragonBones.AnimationConfig
* @version DragonBones 5.0
* @language zh_CN
*/
readonly animationConfig: AnimationConfig;
/**
* - The last playing animation state
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 上一个播放的动画状态
* @see dragonBones.AnimationState
* @version DragonBones 3.0
* @language zh_CN
*/
readonly lastAnimationState: AnimationState | null;
/**
* - Deprecated, please refer to {@link #play()} {@link #fadeIn()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #play()} {@link #fadeIn()}。
* @deprecated
* @language zh_CN
*/
gotoAndPlay(animationName: string, fadeInTime?: number, duration?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode, pauseFadeOut?: boolean, pauseFadeIn?: boolean): AnimationState | null;
/**
* - Deprecated, please refer to {@link #gotoAndStopByTime()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #gotoAndStopByTime()}。
* @deprecated
* @language zh_CN
*/
gotoAndStop(animationName: string, time?: number): AnimationState | null;
/**
* - Deprecated, please refer to {@link #animationNames}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #animationNames}。
* @deprecated
* @language zh_CN
*/
readonly animationList: Array<string>;
/**
* - Deprecated, please refer to {@link #animationNames}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #animationNames}。
* @deprecated
* @language zh_CN
*/
readonly animationDataList: Array<AnimationData>;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The animation state is generated when the animation data is played.
* @see dragonBones.Animation
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画状态由播放动画数据时产生。
* @see dragonBones.Animation
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language zh_CN
*/
class AnimationState extends BaseObject {
static toString(): string;
/**
* @private
*/
actionEnabled: boolean;
/**
* @private
*/
additiveBlending: boolean;
/**
* - Whether the animation state has control over the display object properties of the slots.
* Sometimes blend a animation state does not want it to control the display object properties of the slots,
* especially if other animation state are controlling the display object properties of the slots.
* @default true
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态是否对插槽的显示对象属性有控制权。
* 有时混合一个动画状态并不希望其控制插槽的显示对象属性,
* 尤其是其他动画状态正在控制这些插槽的显示对象属性时。
* @default true
* @version DragonBones 5.0
* @language zh_CN
*/
displayControl: boolean;
/**
* - Whether to reset the objects without animation to the armature pose when the animation state is start to play.
* This property should usually be set to false when blend multiple animation states.
* @default true
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。
* 通常在混合多个动画状态时应该将该属性设置为 false。
* @default true
* @version DragonBones 5.1
* @language zh_CN
*/
resetToPose: boolean;
/**
* - The play times. [0: Loop play, [1~N]: Play N times]
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次]
* @version DragonBones 3.0
* @language zh_CN
*/
playTimes: number;
/**
* - The blend layer.
* High layer animation state will get the blend weight first.
* When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned.
* @readonly
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合图层。
* 图层高的动画状态会优先获取混合权重。
* 当混合权重分配超过 1 时,剩余的动画状态将不再获得权重分配。
* @readonly
* @version DragonBones 5.0
* @language zh_CN
*/
layer: number;
/**
* - The play speed.
* The value is an overlay relationship with {@link dragonBones.Animation#timeScale}.
* [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play]
* @default 1.0
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 播放速度。
* 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。
* [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放]
* @default 1.0
* @version DragonBones 3.0
* @language zh_CN
*/
timeScale: number;
/**
* - The blend weight.
* @default 1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合权重。
* @default 1.0
* @version DragonBones 5.0
* @language zh_CN
*/
weight: number;
/**
* - The auto fade out time when the animation state play completed.
* [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds)
* @default -1.0
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态播放完成后的自动淡出时间。
* [-1: 不自动淡出, [0~N]: 淡出时间] (以秒为单位)
* @default -1.0
* @version DragonBones 5.0
* @language zh_CN
*/
autoFadeOutTime: number;
/**
* @private
*/
fadeTotalTime: number;
/**
* - The name of the animation state. (Can be different from the name of the animation data)
* @readonly
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 动画状态名称。 (可以不同于动画数据)
* @readonly
* @version DragonBones 5.0
* @language zh_CN
*/
name: string;
/**
* - The blend group name of the animation state.
* This property is typically used to specify the substitution of multiple animation states blend.
* @readonly
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 混合组名称。
* 该属性通常用来指定多个动画状态混合时的相互替换关系。
* @readonly
* @version DragonBones 5.0
* @language zh_CN
*/
group: string;
private _timelineDirty;
/**
* - xx: Play Enabled, Fade Play Enabled
* @internal
* @private
*/
_playheadState: number;
/**
* -1: Fade in, 0: Fade complete, 1: Fade out;
* @internal
* @private
*/
_fadeState: number;
/**
* -1: Fade start, 0: Fading, 1: Fade complete;
* @internal
* @private
*/
_subFadeState: number;
/**
* @internal
* @private
*/
_position: number;
/**
* @internal
* @private
*/
_duration: number;
private _fadeTime;
private _time;
/**
* @internal
* @private
*/
_fadeProgress: number;
/**
* @internal
* @private
*/
_weightResult: number;
/**
* @internal
* @private
*/
readonly _blendState: BlendState;
private readonly _boneMask;
private readonly _boneTimelines;
private readonly _surfaceTimelines;
private readonly _slotTimelines;
private readonly _constraintTimelines;
private readonly _animationTimelines;
private readonly _poseTimelines;
private readonly _bonePoses;
/**
* @internal
* @private
*/
_animationData: AnimationData;
private _armature;
/**
* @internal
* @private
*/
_actionTimeline: ActionTimelineState;
private _zOrderTimeline;
/**
* @internal
* @private
*/
_parent: AnimationState;
/**
* @private
*/
protected _onClear(): void;
private _updateTimelines();
private _updateBoneAndSlotTimelines();
private _advanceFadeTime(passedTime);
/**
* @internal
* @private
*/
init(armature: Armature, animationData: AnimationData, animationConfig: AnimationConfig): void;
/**
* @internal
* @private
*/
advanceTime(passedTime: number, cacheFrameRate: number): void;
/**
* - Continue play.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 继续播放。
* @version DragonBones 3.0
* @language zh_CN
*/
play(): void;
/**
* - Stop play.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 暂停播放。
* @version DragonBones 3.0
* @language zh_CN
*/
stop(): void;
/**
* - Fade out the animation state.
* @param fadeOutTime - The fade out time. (In seconds)
* @param pausePlayhead - Whether to pause the animation playing when fade out.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 淡出动画状态。
* @param fadeOutTime - 淡出时间。 (以秒为单位)
* @param pausePlayhead - 淡出时是否暂停播放。
* @version DragonBones 3.0
* @language zh_CN
*/
fadeOut(fadeOutTime: number, pausePlayhead?: boolean): void;
/**
* - Check if a specific bone mask is included.
* @param name - The bone name.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 检查是否包含特定骨骼遮罩。
* @param name - 骨骼名称。
* @version DragonBones 3.0
* @language zh_CN
*/
containsBoneMask(name: string): boolean;
/**
* - Add a specific bone mask.
* @param name - The bone name.
* @param recursive - Whether or not to add a mask to the bone's sub-bone.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 添加特定的骨骼遮罩。
* @param name - 骨骼名称。
* @param recursive - 是否为该骨骼的子骨骼添加遮罩。
* @version DragonBones 3.0
* @language zh_CN
*/
addBoneMask(name: string, recursive?: boolean): void;
/**
* - Remove the mask of a specific bone.
* @param name - The bone name.
* @param recursive - Whether to remove the bone's sub-bone mask.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 删除特定骨骼的遮罩。
* @param name - 骨骼名称。
* @param recursive - 是否删除该骨骼的子骨骼遮罩。
* @version DragonBones 3.0
* @language zh_CN
*/
removeBoneMask(name: string, recursive?: boolean): void;
/**
* - Remove all bone masks.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 删除所有骨骼遮罩。
* @version DragonBones 3.0
* @language zh_CN
*/
removeAllBoneMask(): void;
/**
* - Whether the animation state is fading in.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 是否正在淡入。
* @version DragonBones 5.1
* @language zh_CN
*/
readonly isFadeIn: boolean;
/**
* - Whether the animation state is fading out.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 是否正在淡出。
* @version DragonBones 5.1
* @language zh_CN
*/
readonly isFadeOut: boolean;
/**
* - Whether the animation state is fade completed.
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 是否淡入或淡出完毕。
* @version DragonBones 5.1
* @language zh_CN
*/
readonly isFadeComplete: boolean;
/**
* - Whether the animation state is playing.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 是否正在播放。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly isPlaying: boolean;
/**
* - Whether the animation state is play completed.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 是否播放完毕。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly isCompleted: boolean;
/**
* - The times has been played.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 已经循环播放的次数。
* @version DragonBones 3.0
* @language zh_CN
*/
readonly currentPlayTimes: number;
/**
* - The total time. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 总播放时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
readonly totalTime: number;
/**
* - The time is currently playing. (In seconds)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 当前播放的时间。 (以秒为单位)
* @version DragonBones 3.0
* @language zh_CN
*/
currentTime: number;
/**
* - The animation data.
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 动画数据。
* @see dragonBones.AnimationData
* @version DragonBones 3.0
* @language zh_CN
*/
readonly animationData: AnimationData;
}
/**
* @internal
* @private
*/
class BonePose extends BaseObject {
static toString(): string;
readonly current: Transform;
readonly delta: Transform;
readonly result: Transform;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
class BlendState {
dirty: boolean;
layer: number;
leftWeight: number;
layerWeight: number;
blendWeight: number;
update(weight: number, layer: number): number;
clear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
const enum TweenState {
None = 0,
Once = 1,
Always = 2,
}
/**
* @internal
* @private
*/
abstract class TimelineState extends BaseObject {
playState: number;
currentPlayTimes: number;
currentTime: number;
protected _tweenState: TweenState;
protected _frameRate: number;
protected _frameValueOffset: number;
protected _frameCount: number;
protected _frameOffset: number;
protected _frameIndex: number;
protected _frameRateR: number;
protected _position: number;
protected _duration: number;
protected _timeScale: number;
protected _timeOffset: number;
protected _dragonBonesData: DragonBonesData;
protected _animationData: AnimationData;
protected _timelineData: TimelineData | null;
protected _armature: Armature;
protected _animationState: AnimationState;
protected _actionTimeline: TimelineState;
protected _frameArray: Array<number> | Int16Array;
protected _frameIntArray: Array<number> | Int16Array;
protected _frameFloatArray: Array<number> | Int16Array;
protected _timelineArray: Array<number> | Uint16Array;
protected _frameIndices: Array<number>;
protected _onClear(): void;
protected abstract _onArriveAtFrame(): void;
protected abstract _onUpdateFrame(): void;
protected _setCurrentTime(passedTime: number): boolean;
init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;
fadeOut(): void;
update(passedTime: number): void;
}
/**
* @internal
* @private
*/
abstract class TweenTimelineState extends TimelineState {
private static _getEasingValue(tweenType, progress, easing);
private static _getEasingCurveValue(progress, samples, count, offset);
protected _tweenType: TweenType;
protected _curveCount: number;
protected _framePosition: number;
protected _frameDurationR: number;
protected _tweenProgress: number;
protected _tweenEasing: number;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
}
/**
* @internal
* @private
*/
abstract class BoneTimelineState extends TweenTimelineState {
bone: Bone;
bonePose: BonePose;
protected _onClear(): void;
blend(state: number): void;
}
/**
* @internal
* @private
*/
abstract class SlotTimelineState extends TweenTimelineState {
slot: Slot;
protected _onClear(): void;
}
/**
* @internal
* @private
*/
abstract class ConstraintTimelineState extends TweenTimelineState {
constraint: Constraint;
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class ActionTimelineState extends TimelineState {
static toString(): string;
private _onCrossFrame(frameIndex);
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
update(passedTime: number): void;
setCurrentTime(value: number): void;
}
/**
* @internal
* @private
*/
class ZOrderTimelineState extends TimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
}
/**
* @internal
* @private
*/
class BoneAllTimelineState extends BoneTimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
fadeOut(): void;
}
/**
* @internal
* @private
*/
class BoneTranslateTimelineState extends BoneTimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
}
/**
* @internal
* @private
*/
class BoneRotateTimelineState extends BoneTimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
fadeOut(): void;
}
/**
* @internal
* @private
*/
class BoneScaleTimelineState extends BoneTimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
}
/**
* @internal
* @private
*/
class SurfaceTimelineState extends TweenTimelineState {
static toString(): string;
surface: Surface;
private _frameFloatOffset;
private _valueCount;
private _deformCount;
private _valueOffset;
private readonly _current;
private readonly _delta;
private readonly _result;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;
blend(state: number): void;
}
/**
* @internal
* @private
*/
class SlotDislayTimelineState extends SlotTimelineState {
static toString(): string;
protected _onArriveAtFrame(): void;
}
/**
* @internal
* @private
*/
class SlotColorTimelineState extends SlotTimelineState {
static toString(): string;
private _dirty;
private readonly _current;
private readonly _delta;
private readonly _result;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
fadeOut(): void;
update(passedTime: number): void;
}
/**
* @internal
* @private
*/
class SlotFFDTimelineState extends SlotTimelineState {
static toString(): string;
meshOffset: number;
private _dirty;
private _frameFloatOffset;
private _valueCount;
private _deformCount;
private _valueOffset;
private readonly _current;
private readonly _delta;
private readonly _result;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void;
fadeOut(): void;
update(passedTime: number): void;
}
/**
* @internal
* @private
*/
class IKConstraintTimelineState extends ConstraintTimelineState {
static toString(): string;
private _current;
private _delta;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
}
/**
* @internal
* @private
*/
class AnimationTimelineState extends TweenTimelineState {
static toString(): string;
animationState: AnimationState;
private readonly _floats;
protected _onClear(): void;
protected _onArriveAtFrame(): void;
protected _onUpdateFrame(): void;
blend(state: number): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - The properties of the object carry basic information about an event,
* which are passed as parameter or parameter's parameter to event listeners when an event occurs.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 事件对象,包含有关事件的基本信息,当发生事件时,该实例将作为参数或参数的参数传递给事件侦听器。
* @version DragonBones 4.5
* @language zh_CN
*/
class EventObject extends BaseObject {
/**
* - Animation start play.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画开始播放。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly START: string;
/**
* - Animation loop play complete once.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画循环播放完成一次。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly LOOP_COMPLETE: string;
/**
* - Animation play complete.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画播放完成。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly COMPLETE: string;
/**
* - Animation fade in start.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画淡入开始。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly FADE_IN: string;
/**
* - Animation fade in complete.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画淡入完成。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly FADE_IN_COMPLETE: string;
/**
* - Animation fade out start.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画淡出开始。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly FADE_OUT: string;
/**
* - Animation fade out complete.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画淡出完成。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly FADE_OUT_COMPLETE: string;
/**
* - Animation frame event.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画帧事件。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly FRAME_EVENT: string;
/**
* - Animation frame sound event.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 动画帧声音事件。
* @version DragonBones 4.5
* @language zh_CN
*/
static readonly SOUND_EVENT: string;
static toString(): string;
/**
* - If is a frame event, the value is used to describe the time that the event was in the animation timeline. (In seconds)
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 如果是帧事件,此值用来描述该事件在动画时间轴中所处的时间。(以秒为单位)
* @version DragonBones 4.5
* @language zh_CN
*/
time: number;
/**
* - The event type。
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 事件类型。
* @version DragonBones 4.5
* @language zh_CN
*/
type: EventStringType;
/**
* - The event name. (The frame event name or the frame sound name)
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 事件名称。 (帧事件的名称或帧声音的名称)
* @version DragonBones 4.5
* @language zh_CN
*/
name: string;
/**
* - The armature that dispatch the event.
* @see dragonBones.Armature
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 发出该事件的骨架。
* @see dragonBones.Armature
* @version DragonBones 4.5
* @language zh_CN
*/
armature: Armature;
/**
* - The bone that dispatch the event.
* @see dragonBones.Bone
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 发出该事件的骨骼。
* @see dragonBones.Bone
* @version DragonBones 4.5
* @language zh_CN
*/
bone: Bone | null;
/**
* - The slot that dispatch the event.
* @see dragonBones.Slot
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 发出该事件的插槽。
* @see dragonBones.Slot
* @version DragonBones 4.5
* @language zh_CN
*/
slot: Slot | null;
/**
* - The animation state that dispatch the event.
* @see dragonBones.AnimationState
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 发出该事件的动画状态。
* @see dragonBones.AnimationState
* @version DragonBones 4.5
* @language zh_CN
*/
animationState: AnimationState;
/**
* - The custom data.
* @see dragonBones.CustomData
* @version DragonBones 5.0
* @language en_US
*/
/**
* - 自定义数据。
* @see dragonBones.CustomData
* @version DragonBones 5.0
* @language zh_CN
*/
data: UserData | null;
/**
* @private
*/
protected _onClear(): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @private
*/
type EventStringType = string | "start" | "loopComplete" | "complete" | "fadeIn" | "fadeInComplete" | "fadeOut" | "fadeOutComplete" | "frameEvent" | "soundEvent";
/**
* - The event dispatcher interface.
* Dragonbones event dispatch usually relies on docking engine to implement, which defines the event method to be implemented when docking the engine.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 事件派发接口。
* DragonBones 的事件派发通常依赖于对接的引擎来实现,该接口定义了对接引擎时需要实现的事件方法。
* @version DragonBones 4.5
* @language zh_CN
*/
interface IEventDispatcher {
/**
* - Checks whether the object has any listeners registered for a specific type of event。
* @param type - Event type.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 检查是否为特定的事件类型注册了任何侦听器。
* @param type - 事件类型。
* @version DragonBones 4.5
* @language zh_CN
*/
hasDBEventListener(type: EventStringType): boolean;
/**
* - Dispatches an event into the event flow.
* @param type - Event type.
* @param eventObject - Event object.
* @see dragonBones.EventObject
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 分派特定的事件到事件流中。
* @param type - 事件类型。
* @param eventObject - 事件数据。
* @see dragonBones.EventObject
* @version DragonBones 4.5
* @language zh_CN
*/
dispatchDBEvent(type: EventStringType, eventObject: EventObject): void;
/**
* - Add an event listener object so that the listener receives notification of an event.
* @param type - Event type.
* @param listener - Event listener.
* @param thisObject - The listener function's "this".
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 添加特定事件类型的事件侦听器,以使侦听器能够接收事件通知。
* @param type - 事件类型。
* @param listener - 事件侦听器。
* @param thisObject - 侦听函数绑定的 this 对象。
* @version DragonBones 4.5
* @language zh_CN
*/
addDBEventListener(type: EventStringType, listener: Function, thisObject: any): void;
/**
* - Removes a listener from the object.
* @param type - Event type.
* @param listener - Event listener.
* @param thisObject - The listener function's "this".
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 删除特定事件类型的侦听器。
* @param type - 事件类型。
* @param listener - 事件侦听器。
* @param thisObject - 侦听函数绑定的 this 对象。
* @version DragonBones 4.5
* @language zh_CN
*/
removeDBEventListener(type: EventStringType, listener: Function, thisObject: any): void;
/**
* - Deprecated, please refer to {@link #hasDBEventListener()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #hasDBEventListener()}。
* @deprecated
* @language zh_CN
*/
hasEvent(type: EventStringType): boolean;
/**
* - Deprecated, please refer to {@link #addDBEventListener()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #addDBEventListener()}。
* @deprecated
* @language zh_CN
*/
addEvent(type: EventStringType, listener: Function, thisObject: any): void;
/**
* - Deprecated, please refer to {@link #removeDBEventListener()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #removeDBEventListener()}。
* @deprecated
* @language zh_CN
*/
removeEvent(type: EventStringType, listener: Function, thisObject: any): void;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
abstract class DataParser {
protected static readonly DATA_VERSION_2_3: string;
protected static readonly DATA_VERSION_3_0: string;
protected static readonly DATA_VERSION_4_0: string;
protected static readonly DATA_VERSION_4_5: string;
protected static readonly DATA_VERSION_5_0: string;
protected static readonly DATA_VERSION_5_5: string;
protected static readonly DATA_VERSION: string;
protected static readonly DATA_VERSIONS: Array<string>;
protected static readonly TEXTURE_ATLAS: string;
protected static readonly SUB_TEXTURE: string;
protected static readonly FORMAT: string;
protected static readonly IMAGE_PATH: string;
protected static readonly WIDTH: string;
protected static readonly HEIGHT: string;
protected static readonly ROTATED: string;
protected static readonly FRAME_X: string;
protected static readonly FRAME_Y: string;
protected static readonly FRAME_WIDTH: string;
protected static readonly FRAME_HEIGHT: string;
protected static readonly DRADON_BONES: string;
protected static readonly USER_DATA: string;
protected static readonly ARMATURE: string;
protected static readonly BONE: string;
protected static readonly SURFACE: string;
protected static readonly SLOT: string;
protected static readonly CONSTRAINT: string;
protected static readonly IK: string;
protected static readonly SKIN: string;
protected static readonly DISPLAY: string;
protected static readonly ANIMATION: string;
protected static readonly Z_ORDER: string;
protected static readonly FFD: string;
protected static readonly FRAME: string;
protected static readonly TRANSLATE_FRAME: string;
protected static readonly ROTATE_FRAME: string;
protected static readonly SCALE_FRAME: string;
protected static readonly DISPLAY_FRAME: string;
protected static readonly COLOR_FRAME: string;
protected static readonly DEFAULT_ACTIONS: string;
protected static readonly ACTIONS: string;
protected static readonly EVENTS: string;
protected static readonly INTS: string;
protected static readonly FLOATS: string;
protected static readonly STRINGS: string;
protected static readonly CANVAS: string;
protected static readonly TRANSFORM: string;
protected static readonly PIVOT: string;
protected static readonly AABB: string;
protected static readonly COLOR: string;
protected static readonly VERSION: string;
protected static readonly COMPATIBLE_VERSION: string;
protected static readonly FRAME_RATE: string;
protected static readonly TYPE: string;
protected static readonly SUB_TYPE: string;
protected static readonly NAME: string;
protected static readonly PARENT: string;
protected static readonly TARGET: string;
protected static readonly STAGE: string;
protected static readonly SHARE: string;
protected static readonly PATH: string;
protected static readonly LENGTH: string;
protected static readonly DISPLAY_INDEX: string;
protected static readonly BLEND_MODE: string;
protected static readonly INHERIT_TRANSLATION: string;
protected static readonly INHERIT_ROTATION: string;
protected static readonly INHERIT_SCALE: string;
protected static readonly INHERIT_REFLECTION: string;
protected static readonly INHERIT_ANIMATION: string;
protected static readonly INHERIT_DEFORM: string;
protected static readonly SEGMENT_X: string;
protected static readonly SEGMENT_Y: string;
protected static readonly BEND_POSITIVE: string;
protected static readonly CHAIN: string;
protected static readonly WEIGHT: string;
protected static readonly FADE_IN_TIME: string;
protected static readonly PLAY_TIMES: string;
protected static readonly SCALE: string;
protected static readonly OFFSET: string;
protected static readonly POSITION: string;
protected static readonly DURATION: string;
protected static readonly TWEEN_EASING: string;
protected static readonly TWEEN_ROTATE: string;
protected static readonly TWEEN_SCALE: string;
protected static readonly CLOCK_WISE: string;
protected static readonly CURVE: string;
protected static readonly SOUND: string;
protected static readonly EVENT: string;
protected static readonly ACTION: string;
protected static readonly X: string;
protected static readonly Y: string;
protected static readonly SKEW_X: string;
protected static readonly SKEW_Y: string;
protected static readonly SCALE_X: string;
protected static readonly SCALE_Y: string;
protected static readonly VALUE: string;
protected static readonly ROTATE: string;
protected static readonly SKEW: string;
protected static readonly ALPHA_OFFSET: string;
protected static readonly RED_OFFSET: string;
protected static readonly GREEN_OFFSET: string;
protected static readonly BLUE_OFFSET: string;
protected static readonly ALPHA_MULTIPLIER: string;
protected static readonly RED_MULTIPLIER: string;
protected static readonly GREEN_MULTIPLIER: string;
protected static readonly BLUE_MULTIPLIER: string;
protected static readonly UVS: string;
protected static readonly VERTICES: string;
protected static readonly TRIANGLES: string;
protected static readonly WEIGHTS: string;
protected static readonly SLOT_POSE: string;
protected static readonly BONE_POSE: string;
protected static readonly GLUE_WEIGHTS: string;
protected static readonly GLUE_MESHES: string;
protected static readonly GOTO_AND_PLAY: string;
protected static readonly DEFAULT_NAME: string;
protected static _getArmatureType(value: string): ArmatureType;
protected static _getBoneType(value: string): BoneType;
protected static _getDisplayType(value: string): DisplayType;
protected static _getBoundingBoxType(value: string): BoundingBoxType;
protected static _getActionType(value: string): ActionType;
protected static _getBlendMode(value: string): BlendMode;
abstract parseDragonBonesData(rawData: any, scale: number): DragonBonesData | null;
abstract parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale: number): boolean;
/**
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。
* @deprecated
* @language zh_CN
*/
static parseDragonBonesData(rawData: any): DragonBonesData | null;
/**
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。
* @deprecated
* @language zh_CN
*/
static parseTextureAtlasData(rawData: any, scale?: number): any;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class ObjectDataParser extends DataParser {
protected static _getBoolean(rawData: any, key: string, defaultValue: boolean): boolean;
protected static _getNumber(rawData: any, key: string, defaultValue: number): number;
protected static _getString(rawData: any, key: string, defaultValue: string): string;
protected _rawTextureAtlasIndex: number;
protected readonly _rawBones: Array<BoneData>;
protected _data: DragonBonesData;
protected _armature: ArmatureData;
protected _bone: BoneData;
protected _surface: SurfaceData;
protected _slot: SlotData;
protected _skin: SkinData;
protected _mesh: MeshDisplayData;
protected _animation: AnimationData;
protected _timeline: TimelineData;
protected _rawTextureAtlases: Array<any> | null;
private _defaultColorOffset;
private _prevClockwise;
private _prevRotation;
private readonly _helpMatrixA;
private readonly _helpMatrixB;
private readonly _helpTransform;
private readonly _helpColorTransform;
private readonly _helpPoint;
private readonly _helpArray;
private readonly _intArray;
private readonly _floatArray;
private readonly _frameIntArray;
private readonly _frameFloatArray;
private readonly _frameArray;
private readonly _timelineArray;
private readonly _cacheRawMeshes;
private readonly _cacheMeshes;
private readonly _actionFrames;
private readonly _weightSlotPose;
private readonly _weightBonePoses;
private readonly _cacheBones;
private readonly _slotChildActions;
private _getCurvePoint(x1, y1, x2, y2, x3, y3, x4, y4, t, result);
private _samplingEasingCurve(curve, samples);
private _parseActionDataInFrame(rawData, frameStart, bone, slot);
private _mergeActionFrame(rawData, frameStart, type, bone, slot);
protected _parseArmature(rawData: any, scale: number): ArmatureData;
protected _parseBone(rawData: any): BoneData;
protected _parseIKConstraint(rawData: any): ConstraintData | null;
protected _parseSlot(rawData: any, zOrder: number): SlotData;
protected _parseSkin(rawData: any): SkinData;
protected _parseDisplay(rawData: any): DisplayData | null;
protected _parsePivot(rawData: any, display: ImageDisplayData): void;
protected _parseMesh(rawData: any, mesh: MeshDisplayData): void;
protected _parseMeshGlue(rawData: any, mesh: MeshDisplayData): void;
protected _parseBoundingBox(rawData: any): BoundingBoxData | null;
protected _parsePolygonBoundingBox(rawData: any): PolygonBoundingBoxData;
protected _parseAnimation(rawData: any): AnimationData;
protected _parseTimeline(rawData: any, rawFrames: Array<any> | null, framesKey: string, type: TimelineType, addIntOffset: boolean, addFloatOffset: boolean, frameValueCount: number, frameParser: (rawData: any, frameStart: number, frameCount: number) => number): TimelineData | null;
protected _parseBoneTimeline(rawData: any): void;
protected _parseSlotTimeline(rawData: any): void;
protected _parseFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseTweenFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseActionFrame(frame: ActionFrame, frameStart: number, frameCount: number): number;
protected _parseZOrderFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseBoneAllFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseBoneTranslateFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseBoneRotateFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseBoneScaleFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseSurfaceFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseSlotDisplayFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseSlotColorFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseSlotFFDFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseIKConstraintFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseAnimationFrame(rawData: any, frameStart: number, frameCount: number): number;
protected _parseActionData(rawData: any, type: ActionType, bone: BoneData | null, slot: SlotData | null): Array<ActionData>;
protected _parseTransform(rawData: any, transform: Transform, scale: number): void;
protected _parseColorTransform(rawData: any, color: ColorTransform): void;
protected _parseArray(rawData: any): void;
protected _modifyArray(): void;
parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;
parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale?: number): boolean;
private static _objectDataParserInstance;
/**
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。
* @deprecated
* @language zh_CN
*/
static getInstance(): ObjectDataParser;
}
/**
* @internal
* @private
*/
class ActionFrame {
frameStart: number;
readonly actions: Array<number>;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* @internal
* @private
*/
class BinaryDataParser extends ObjectDataParser {
private _binaryOffset;
private _binary;
private _intArrayBuffer;
private _floatArrayBuffer;
private _frameIntArrayBuffer;
private _frameFloatArrayBuffer;
private _frameArrayBuffer;
private _timelineArrayBuffer;
private _inRange(a, min, max);
private _decodeUTF8(data);
private _getUTF16Key(value);
private _parseBinaryTimeline(type, offset, timelineData?);
protected _parseMesh(rawData: any, mesh: MeshDisplayData): void;
protected _parseAnimation(rawData: any): AnimationData;
protected _parseArray(rawData: any): void;
parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;
private static _binaryDataParserInstance;
/**
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。
* @deprecated
* @language zh_CN
*/
static getInstance(): BinaryDataParser;
}
}
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
declare namespace dragonBones {
/**
* - Base class for the factory that create the armatures. (Typically only one global factory instance is required)
* The factory instance create armatures by parsed and added DragonBonesData instances and TextureAtlasData instances.
* Once the data has been parsed, it has been cached in the factory instance and does not need to be parsed again until it is cleared by the factory instance.
* @see dragonBones.DragonBonesData
* @see dragonBones.TextureAtlasData
* @see dragonBones.ArmatureData
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 创建骨架的工厂基类。 (通常只需要一个全局工厂实例)
* 工厂通过解析并添加的 DragonBonesData 实例和 TextureAtlasData 实例来创建骨架。
* 当数据被解析过之后,已经添加到工厂中,在没有被工厂清理之前,不需要再次解析。
* @see dragonBones.DragonBonesData
* @see dragonBones.TextureAtlasData
* @see dragonBones.ArmatureData
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language zh_CN
*/
abstract class BaseFactory {
/**
* @private
*/
protected static _objectParser: ObjectDataParser;
/**
* @private
*/
protected static _binaryParser: BinaryDataParser;
/**
* @private
*/
autoSearch: boolean;
/**
* @private
*/
protected readonly _dragonBonesDataMap: Map<DragonBonesData>;
/**
* @private
*/
protected readonly _textureAtlasDataMap: Map<Array<TextureAtlasData>>;
/**
* @private
*/
protected _dragonBones: DragonBones;
/**
* @private
*/
protected _dataParser: DataParser;
/**
* - Create a factory instance. (typically only one global factory instance is required)
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 创建一个工厂实例。 (通常只需要一个全局工厂实例)
* @version DragonBones 3.0
* @language zh_CN
*/
constructor(dataParser?: DataParser | null);
/**
* @private
*/
protected _isSupportMesh(): boolean;
/**
* @private
*/
protected _getTextureData(textureAtlasName: string, textureName: string): TextureData | null;
/**
* @private
*/
protected _fillBuildArmaturePackage(dataPackage: BuildArmaturePackage, dragonBonesName: string, armatureName: string, skinName: string, textureAtlasName: string): boolean;
/**
* @private
*/
protected _buildBones(dataPackage: BuildArmaturePackage, armature: Armature): void;
/**
* @private
*/
protected _buildSlots(dataPackage: BuildArmaturePackage, armature: Armature): void;
/**
* @private
*/
protected _buildChildArmature(dataPackage: BuildArmaturePackage | null, slot: Slot, displayData: DisplayData): Armature | null;
/**
* @private
*/
protected _getSlotDisplay(dataPackage: BuildArmaturePackage | null, displayData: DisplayData, rawDisplayData: DisplayData | null, slot: Slot): any;
/**
* @private
*/
protected abstract _buildTextureAtlasData(textureAtlasData: TextureAtlasData | null, textureAtlas: any): TextureAtlasData;
/**
* @private
*/
protected abstract _buildArmature(dataPackage: BuildArmaturePackage): Armature;
/**
* @private
*/
protected abstract _buildSlot(dataPackage: BuildArmaturePackage, slotData: SlotData, displays: Array<DisplayData | null> | null, armature: Armature): Slot;
/**
* - Parse the raw data to a DragonBonesData instance and cache it to the factory.
* @param rawData - The raw data.
* @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead)
* @param scale - Specify a scaling value for all armatures. (Default: 1.0)
* @returns DragonBonesData instance
* @see #getDragonBonesData()
* @see #addDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 将原始数据解析为 DragonBonesData 实例,并缓存到工厂中。
* @param rawData - 原始数据。
* @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称)
* @param scale - 为所有的骨架指定一个缩放值。 (默认: 1.0)
* @returns DragonBonesData 实例
* @see #getDragonBonesData()
* @see #addDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 4.5
* @language zh_CN
*/
parseDragonBonesData(rawData: any, name?: string | null, scale?: number): DragonBonesData | null;
/**
* - Parse the raw texture atlas data and the texture atlas object to a TextureAtlasData instance and cache it to the factory.
* @param rawData - The raw texture atlas data.
* @param textureAtlas - The texture atlas object.
* @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead)
* @param scale - Specify a scaling value for the map set. (Default: 1.0)
* @returns TextureAtlasData instance
* @see #getTextureAtlasData()
* @see #addTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 将原始贴图集数据和贴图集对象解析为 TextureAtlasData 实例,并缓存到工厂中。
* @param rawData - 原始贴图集数据。
* @param textureAtlas - 贴图集对象。
* @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称)
* @param scale - 为贴图集指定一个缩放值。 (默认: 1.0)
* @returns TextureAtlasData 实例
* @see #getTextureAtlasData()
* @see #addTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 4.5
* @language zh_CN
*/
parseTextureAtlasData(rawData: any, textureAtlas: any, name?: string | null, scale?: number): TextureAtlasData;
/**
* @private
*/
updateTextureAtlasData(name: string, textureAtlases: Array<any>): void;
/**
* - Get a specific DragonBonesData instance.
* @param name - The DragonBonesData instance cache name.
* @returns DragonBonesData instance
* @see #parseDragonBonesData()
* @see #addDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的 DragonBonesData 实例。
* @param name - DragonBonesData 实例的缓存名称。
* @returns DragonBonesData 实例
* @see #parseDragonBonesData()
* @see #addDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language zh_CN
*/
getDragonBonesData(name: string): DragonBonesData | null;
/**
* - Cache a DragonBonesData instance to the factory.
* @param data - The DragonBonesData instance.
* @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead)
* @see #parseDragonBonesData()
* @see #getDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 将 DragonBonesData 实例缓存到工厂中。
* @param data - DragonBonesData 实例。
* @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称)
* @see #parseDragonBonesData()
* @see #getDragonBonesData()
* @see #removeDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language zh_CN
*/
addDragonBonesData(data: DragonBonesData, name?: string | null): void;
/**
* - Remove a DragonBonesData instance.
* @param name - The DragonBonesData instance cache name.
* @param disposeData - Whether to dispose data. (Default: true)
* @see #parseDragonBonesData()
* @see #getDragonBonesData()
* @see #addDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 移除 DragonBonesData 实例。
* @param name - DragonBonesData 实例缓存名称。
* @param disposeData - 是否释放数据。 (默认: true)
* @see #parseDragonBonesData()
* @see #getDragonBonesData()
* @see #addDragonBonesData()
* @see dragonBones.DragonBonesData
* @version DragonBones 3.0
* @language zh_CN
*/
removeDragonBonesData(name: string, disposeData?: boolean): void;
/**
* - Get a list of specific TextureAtlasData instances.
* @param name - The TextureAtlasData cahce name.
* @see #parseTextureAtlasData()
* @see #addTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 获取特定的 TextureAtlasData 实例列表。
* @param name - TextureAtlasData 实例缓存名称。
* @see #parseTextureAtlasData()
* @see #addTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language zh_CN
*/
getTextureAtlasData(name: string): Array<TextureAtlasData> | null;
/**
* - Cache a TextureAtlasData instance to the factory.
* @param data - The TextureAtlasData instance.
* @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead)
* @see #parseTextureAtlasData()
* @see #getTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 将 TextureAtlasData 实例缓存到工厂中。
* @param data - TextureAtlasData 实例。
* @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称)
* @see #parseTextureAtlasData()
* @see #getTextureAtlasData()
* @see #removeTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language zh_CN
*/
addTextureAtlasData(data: TextureAtlasData, name?: string | null): void;
/**
* - Remove a TextureAtlasData instance.
* @param name - The TextureAtlasData instance cache name.
* @param disposeData - Whether to dispose data.
* @see #parseTextureAtlasData()
* @see #getTextureAtlasData()
* @see #addTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 移除 TextureAtlasData 实例。
* @param name - TextureAtlasData 实例的缓存名称。
* @param disposeData - 是否释放数据。
* @see #parseTextureAtlasData()
* @see #getTextureAtlasData()
* @see #addTextureAtlasData()
* @see dragonBones.TextureAtlasData
* @version DragonBones 3.0
* @language zh_CN
*/
removeTextureAtlasData(name: string, disposeData?: boolean): void;
/**
* - Get a specific armature data.
* @param name - The armature data name.
* @param dragonBonesName - The cached name for DragonbonesData instance.
* @see dragonBones.ArmatureData
* @version DragonBones 5.1
* @language en_US
*/
/**
* - 获取特定的骨架数据。
* @param name - 骨架数据名称。
* @param dragonBonesName - DragonBonesData 实例的缓存名称。
* @see dragonBones.ArmatureData
* @version DragonBones 5.1
* @language zh_CN
*/
getArmatureData(name: string, dragonBonesName?: string): ArmatureData | null;
/**
* - Clear all cached DragonBonesData instances and TextureAtlasData instances.
* @param disposeData - Whether to dispose data.
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 清除缓存的所有 DragonBonesData 实例和 TextureAtlasData 实例。
* @param disposeData - 是否释放数据。
* @version DragonBones 4.5
* @language zh_CN
*/
clear(disposeData?: boolean): void;
/**
* - Create a armature from cached DragonBonesData instances and TextureAtlasData instances.
* @param armatureName - The armature data name.
* @param dragonBonesName - The cached name of the DragonBonesData instance. (If not set, all DragonBonesData instances are retrieved, and when multiple DragonBonesData instances contain a the same name armature data, it may not be possible to accurately create a specific armature)
* @param skinName - The skin name, you can set a different ArmatureData name to share it's skin data. (If not set, use the default skin data)
* @returns The armature.
* @example
* <pre>
* let armature = factory.buildArmature("armatureName", "dragonBonesName");
* armature.clock = factory.clock;
* </pre>
* @see dragonBones.DragonBonesData
* @see dragonBones.ArmatureData
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language en_US
*/
/**
* - 通过缓存的 DragonBonesData 实例和 TextureAtlasData 实例创建一个骨架。
* @param armatureName - 骨架数据名称。
* @param dragonBonesName - DragonBonesData 实例的缓存名称。 (如果未设置,将检索所有的 DragonBonesData 实例,当多个 DragonBonesData 实例中包含同名的骨架数据时,可能无法准确的创建出特定的骨架)
* @param skinName - 皮肤名称,可以设置一个其他骨架数据名称来共享其皮肤数据(如果未设置,则使用默认的皮肤数据)。
* @returns 骨架。
* @example
* <pre>
* let armature = factory.buildArmature("armatureName", "dragonBonesName");
* armature.clock = factory.clock;
* </pre>
* @see dragonBones.DragonBonesData
* @see dragonBones.ArmatureData
* @see dragonBones.Armature
* @version DragonBones 3.0
* @language zh_CN
*/
buildArmature(armatureName: string, dragonBonesName?: string, skinName?: string, textureAtlasName?: string): Armature | null;
/**
* @private
*/
replaceDisplay(slot: Slot, displayData: DisplayData, displayIndex?: number): void;
/**
* - Replaces the current display data for a particular slot with a specific display data.
* Specify display data with "dragonBonesName/armatureName/slotName/displayName".
* @param dragonBonesName - The DragonBonesData instance cache name.
* @param armatureName - The armature data name.
* @param slotName - The slot data name.
* @param displayName - The display data name.
* @param slot - The slot.
* @param displayIndex - The index of the display data that is replaced. (If it is not set, replaces the current display data)
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* factory.replaceSlotDisplay("dragonBonesName", "armatureName", "slotName", "displayName", slot);
* </pre>
* @version DragonBones 4.5
* @language en_US
*/
/**
* - 用特定的显示对象数据替换特定插槽当前的显示对象数据。
* 用 "dragonBonesName/armatureName/slotName/displayName" 指定显示对象数据。
* @param dragonBonesName - DragonBonesData 实例的缓存名称。
* @param armatureName - 骨架数据名称。
* @param slotName - 插槽数据名称。
* @param displayName - 显示对象数据名称。
* @param slot - 插槽。
* @param displayIndex - 被替换的显示对象数据的索引。 (如果未设置,则替换当前的显示对象数据)
* @example
* <pre>
* let slot = armature.getSlot("weapon");
* factory.replaceSlotDisplay("dragonBonesName", "armatureName", "slotName", "displayName", slot);
* </pre>
* @version DragonBones 4.5
* @language zh_CN
*/
replaceSlotDisplay(dragonBonesName: string, armatureName: string, slotName: string, displayName: string, slot: Slot, displayIndex?: number): boolean;
/**
* @private
*/
replaceSlotDisplayList(dragonBonesName: string | null, armatureName: string, slotName: string, slot: Slot): boolean;
/**
* - Share specific skin data with specific armature.
* @param armature - The armature.
* @param skin - The skin data.
* @param isOverride - Whether it completely override the original skin. (Default: false)
* @param exclude - A list of slot names that do not need to be replace.
* @example
* <pre>
* let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
* let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
* if (armatureDataB && armatureDataB.defaultSkin) {
* factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, ["arm_l", "weapon_l"]);
* }
* </pre>
* @see dragonBones.Armature
* @see dragonBones.SkinData
* @version DragonBones 5.6
* @language en_US
*/
/**
* - 将特定的皮肤数据共享给特定的骨架使用。
* @param armature - 骨架。
* @param skin - 皮肤数据。
* @param isOverride - 是否完全覆盖原来的皮肤。 (默认: false)
* @param exclude - 不需要被替换的插槽名称列表。
* @example
* <pre>
* let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
* let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
* if (armatureDataB && armatureDataB.defaultSkin) {
* factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, ["arm_l", "weapon_l"]);
* }
* </pre>
* @see dragonBones.Armature
* @see dragonBones.SkinData
* @version DragonBones 5.6
* @language zh_CN
*/
replaceSkin(armature: Armature, skin: SkinData, isOverride?: boolean, exclude?: Array<string> | null): boolean;
/**
* - Replaces the existing animation data for a specific armature with the animation data for the specific armature data.
* This enables you to make a armature template so that other armature without animations can share it's animations.
* @param armature - The armtaure.
* @param armatureData - The armature data.
* @param isOverride - Whether to completely overwrite the original animation. (Default: false)
* @example
* <pre>
* let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
* let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
* if (armatureDataB) {
* factory.replaceAnimation(armatureA, armatureDataB);
* }
* </pre>
* @see dragonBones.Armature
* @see dragonBones.ArmatureData
* @version DragonBones 5.6
* @language en_US
*/
/**
* - 用特定骨架数据的动画数据替换特定骨架现有的动画数据。
* 这样就能实现制作一个骨架动画模板,让其他没有制作动画的骨架共享该动画。
* @param armature - 骨架。
* @param armatureData - 骨架数据。
* @param isOverride - 是否完全覆盖原来的动画。(默认: false)。
* @example
* <pre>
* let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
* let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
* if (armatureDataB) {
* factory.replaceAnimation(armatureA, armatureDataB);
* }
* </pre>
* @see dragonBones.Armature
* @see dragonBones.ArmatureData
* @version DragonBones 5.6
* @language zh_CN
*/
replaceAnimation(armature: Armature, armatureData: ArmatureData, isOverride?: boolean): boolean;
/**
* @private
*/
getAllDragonBonesData(): Map<DragonBonesData>;
/**
* @private
*/
getAllTextureAtlasData(): Map<Array<TextureAtlasData>>;
/**
* - An Worldclock instance updated by engine.
* @version DragonBones 5.7
* @language en_US
*/
/**
* - 由引擎驱动的 WorldClock 实例。
* @version DragonBones 5.7
* @language zh_CN
*/
readonly clock: WorldClock;
/**
* @private
*/
readonly dragonBones: DragonBones;
/**
* - Deprecated, please refer to {@link #replaceSkin}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #replaceSkin}。
* @deprecated
* @language zh_CN
*/
changeSkin(armature: Armature, skin: SkinData, exclude?: Array<string> | null): boolean;
/**
* - Deprecated, please refer to {@link #replaceAnimation}.
* @deprecated
* @language en_US
*/
/**
* - 已废弃,请参考 {@link #replaceAnimation}。
* @deprecated
* @language zh_CN
*/
copyAnimationsToArmature(toArmature: Armature, fromArmatreName: string, fromSkinName?: string, fromDragonBonesDataName?: string, replaceOriginalAnimation?: boolean): boolean;
}
/**
* @internal
* @private
*/
class BuildArmaturePackage {
dataName: string;
textureAtlasName: string;
data: DragonBonesData;
armature: ArmatureData;
skin: SkinData | null;
}
}
declare namespace sp.spine {
class Animation {
name: string;
timelines: Array<Timeline>;
timelineIds: Array<boolean>;
duration: number;
constructor(name: string, timelines: Array<Timeline>, duration: number);
hasTimeline(id: number): boolean;
apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
static binarySearch(values: ArrayLike<number>, target: number, step?: number): number;
static linearSearch(values: ArrayLike<number>, target: number, step: number): number;
}
interface Timeline {
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
getPropertyId(): number;
}
enum MixBlend {
setup = 0,
first = 1,
replace = 2,
add = 3
}
enum MixDirection {
mixIn = 0,
mixOut = 1
}
enum TimelineType {
rotate = 0,
translate = 1,
scale = 2,
shear = 3,
attachment = 4,
color = 5,
deform = 6,
event = 7,
drawOrder = 8,
ikConstraint = 9,
transformConstraint = 10,
pathConstraintPosition = 11,
pathConstraintSpacing = 12,
pathConstraintMix = 13,
twoColor = 14
}
abstract class CurveTimeline implements Timeline {
static LINEAR: number;
static STEPPED: number;
static BEZIER: number;
static BEZIER_SIZE: number;
private curves;
abstract getPropertyId(): number;
constructor(frameCount: number);
getFrameCount(): number;
setLinear(frameIndex: number): void;
setStepped(frameIndex: number): void;
getCurveType(frameIndex: number): number;
setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
getCurvePercent(frameIndex: number, percent: number): number;
abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class RotateTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATION: number;
static ROTATION: number;
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, degrees: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TranslateTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_X: number;
static PREV_Y: number;
static X: number;
static Y: number;
boneIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, x: number, y: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ScaleTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ShearTimeline extends TranslateTimeline {
constructor(frameCount: number);
getPropertyId(): number;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class ColorTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_R: number;
static PREV_G: number;
static PREV_B: number;
static PREV_A: number;
static R: number;
static G: number;
static B: number;
static A: number;
slotIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TwoColorTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_R: number;
static PREV_G: number;
static PREV_B: number;
static PREV_A: number;
static PREV_R2: number;
static PREV_G2: number;
static PREV_B2: number;
static R: number;
static G: number;
static B: number;
static A: number;
static R2: number;
static G2: number;
static B2: number;
slotIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class AttachmentTimeline implements Timeline {
slotIndex: number;
frames: ArrayLike<number>;
attachmentNames: Array<string>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, attachmentName: string): void;
apply(skeleton: Skeleton, lastTime: number, time: number, events: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DeformTimeline extends CurveTimeline {
slotIndex: number;
attachment: VertexAttachment;
frames: ArrayLike<number>;
frameVertices: Array<ArrayLike<number>>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, vertices: ArrayLike<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class EventTimeline implements Timeline {
frames: ArrayLike<number>;
events: Array<Event>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, event: Event): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class DrawOrderTimeline implements Timeline {
frames: ArrayLike<number>;
drawOrders: Array<Array<number>>;
constructor(frameCount: number);
getPropertyId(): number;
getFrameCount(): number;
setFrame(frameIndex: number, time: number, drawOrder: Array<number>): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class IkConstraintTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_MIX: number;
static PREV_SOFTNESS: number;
static PREV_BEND_DIRECTION: number;
static PREV_COMPRESS: number;
static PREV_STRETCH: number;
static MIX: number;
static SOFTNESS: number;
static BEND_DIRECTION: number;
static COMPRESS: number;
static STRETCH: number;
ikConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class TransformConstraintTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATE: number;
static PREV_TRANSLATE: number;
static PREV_SCALE: number;
static PREV_SHEAR: number;
static ROTATE: number;
static TRANSLATE: number;
static SCALE: number;
static SHEAR: number;
transformConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintPositionTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_VALUE: number;
static VALUE: number;
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, value: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline {
constructor(frameCount: number);
getPropertyId(): number;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
class PathConstraintMixTimeline extends CurveTimeline {
static ENTRIES: number;
static PREV_TIME: number;
static PREV_ROTATE: number;
static PREV_TRANSLATE: number;
static ROTATE: number;
static TRANSLATE: number;
pathConstraintIndex: number;
frames: ArrayLike<number>;
constructor(frameCount: number);
getPropertyId(): number;
setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void;
apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array<Event>, alpha: number, blend: MixBlend, direction: MixDirection): void;
}
}
declare namespace sp.spine {
class AnimationState {
static emptyAnimation: Animation;
static SUBSEQUENT: number;
static FIRST: number;
static HOLD: number;
static HOLD_MIX: number;
static NOT_LAST: number;
data: AnimationStateData;
tracks: TrackEntry[];
timeScale: number;
events: Event[];
listeners: AnimationStateListener[];
queue: EventQueue;
propertyIDs: IntSet;
animationsChanged: boolean;
trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData);
update(delta: number): void;
updateMixingFrom(to: TrackEntry, delta: number): boolean;
apply(skeleton: Skeleton): boolean;
applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;
queueEvents(entry: TrackEntry, animationTime: number): void;
clearTracks(): void;
clearTrack(trackIndex: number): void;
setCurrent(index: number, current: TrackEntry, interrupt: boolean): void;
setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry;
setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry;
addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry;
addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry;
setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry;
addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry;
setEmptyAnimations(mixDuration: number): void;
expandToIndex(index: number): TrackEntry;
trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry;
disposeNext(entry: TrackEntry): void;
_animationsChanged(): void;
computeHold(entry: TrackEntry): void;
computeNotLast(entry: TrackEntry): void;
getCurrent(trackIndex: number): TrackEntry;
addListener(listener: AnimationStateListener): void;
removeListener(listener: AnimationStateListener): void;
clearListeners(): void;
clearListenerNotifications(): void;
}
class TrackEntry {
animation: Animation;
next: TrackEntry;
mixingFrom: TrackEntry;
mixingTo: TrackEntry;
listener: AnimationStateListener;
trackIndex: number;
loop: boolean;
holdPrevious: boolean;
eventThreshold: number;
attachmentThreshold: number;
drawOrderThreshold: number;
animationStart: number;
animationEnd: number;
animationLast: number;
nextAnimationLast: number;
delay: number;
trackTime: number;
trackLast: number;
nextTrackLast: number;
trackEnd: number;
timeScale: number;
alpha: number;
mixTime: number;
mixDuration: number;
interruptAlpha: number;
totalAlpha: number;
mixBlend: MixBlend;
timelineMode: number[];
timelineHoldMix: TrackEntry[];
timelinesRotation: number[];
reset(): void;
getAnimationTime(): number;
setAnimationLast(animationLast: number): void;
isComplete(): boolean;
resetRotationDirections(): void;
}
class EventQueue {
objects: Array<any>;
drainDisabled: boolean;
animState: AnimationState;
constructor(animState: AnimationState);
start(entry: TrackEntry): void;
interrupt(entry: TrackEntry): void;
end(entry: TrackEntry): void;
dispose(entry: TrackEntry): void;
complete(entry: TrackEntry): void;
event(entry: TrackEntry, event: Event): void;
drain(): void;
clear(): void;
}
enum EventType {
start = 0,
interrupt = 1,
end = 2,
dispose = 3,
complete = 4,
event = 5
}
interface AnimationStateListener {
start(entry: TrackEntry): void;
interrupt(entry: TrackEntry): void;
end(entry: TrackEntry): void;
dispose(entry: TrackEntry): void;
complete(entry: TrackEntry): void;
event(entry: TrackEntry, event: Event): void;
}
abstract class AnimationStateAdapter implements AnimationStateListener {
start(entry: TrackEntry): void;
interrupt(entry: TrackEntry): void;
end(entry: TrackEntry): void;
dispose(entry: TrackEntry): void;
complete(entry: TrackEntry): void;
event(entry: TrackEntry, event: Event): void;
}
}
declare namespace sp.spine {
class AnimationStateData {
skeletonData: SkeletonData;
animationToMixTime: Map<number>;
defaultMix: number;
constructor(skeletonData: SkeletonData);
setMix(fromName: string, toName: string, duration: number): void;
setMixWith(from: Animation, to: Animation, duration: number): void;
getMix(from: Animation, to: Animation): number;
}
}
declare namespace sp.spine {
class AssetManager implements Disposable {
private pathPrefix;
private textureLoader;
private assets;
private errors;
private toLoad;
private loaded;
constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string);
private static downloadText;
private static downloadBinary;
loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void;
loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void;
loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void;
loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void;
get(path: string): any;
remove(path: string): void;
removeAll(): void;
isLoadingComplete(): boolean;
getToLoad(): number;
getLoaded(): number;
dispose(): void;
hasErrors(): boolean;
getErrors(): Map<string>;
}
}
declare namespace sp.spine {
class AtlasAttachmentLoader implements AttachmentLoader {
atlas: TextureAtlas;
constructor(atlas: TextureAtlas);
newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment;
newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment;
newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment;
newPathAttachment(skin: Skin, name: string): PathAttachment;
newPointAttachment(skin: Skin, name: string): PointAttachment;
newClippingAttachment(skin: Skin, name: string): ClippingAttachment;
}
}
declare namespace sp.spine {
enum BlendMode {
Normal = 0,
Additive = 1,
Multiply = 2,
Screen = 3
}
}
declare namespace sp.spine {
class Bone implements Updatable {
data: BoneData;
skeleton: Skeleton;
parent: Bone;
children: Bone[];
x: number;
y: number;
rotation: number;
scaleX: number;
scaleY: number;
shearX: number;
shearY: number;
ax: number;
ay: number;
arotation: number;
ascaleX: number;
ascaleY: number;
ashearX: number;
ashearY: number;
appliedValid: boolean;
a: number;
b: number;
c: number;
d: number;
worldY: number;
worldX: number;
sorted: boolean;
active: boolean;
constructor(data: BoneData, skeleton: Skeleton, parent: Bone);
isActive(): boolean;
update(): void;
updateWorldTransform(): void;
updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void;
setToSetupPose(): void;
getWorldRotationX(): number;
getWorldRotationY(): number;
getWorldScaleX(): number;
getWorldScaleY(): number;
updateAppliedTransform(): void;
worldToLocal(world: Vector2): Vector2;
localToWorld(local: Vector2): Vector2;
worldToLocalRotation(worldRotation: number): number;
localToWorldRotation(localRotation: number): number;
rotateWorld(degrees: number): void;
}
}
declare namespace sp.spine {
class BoneData {
index: number;
name: string;
parent: BoneData;
length: number;
x: number;
y: number;
rotation: number;
scaleX: number;
scaleY: number;
shearX: number;
shearY: number;
transformMode: TransformMode;
skinRequired: boolean;
color: Color;
constructor(index: number, name: string, parent: BoneData);
}
enum TransformMode {
Normal = 0,
OnlyTranslation = 1,
NoRotationOrReflection = 2,
NoScale = 3,
NoScaleOrReflection = 4
}
}
declare namespace sp.spine {
abstract class ConstraintData {
name: string;
order: number;
skinRequired: boolean;
constructor(name: string, order: number, skinRequired: boolean);
}
}
declare namespace sp.spine {
class Event {
data: EventData;
intValue: number;
floatValue: number;
stringValue: string;
time: number;
volume: number;
balance: number;
constructor(time: number, data: EventData);
}
}
declare namespace sp.spine {
class EventData {
name: string;
intValue: number;
floatValue: number;
stringValue: string;
audioPath: string;
volume: number;
balance: number;
constructor(name: string);
}
}
declare namespace sp.spine {
class IkConstraint implements Updatable {
data: IkConstraintData;
bones: Array<Bone>;
target: Bone;
bendDirection: number;
compress: boolean;
stretch: boolean;
mix: number;
softness: number;
active: boolean;
constructor(data: IkConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void;
apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void;
}
}
declare namespace sp.spine {
class IkConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
bendDirection: number;
compress: boolean;
stretch: boolean;
uniform: boolean;
mix: number;
softness: number;
constructor(name: string);
}
}
declare namespace sp.spine {
class PathConstraint implements Updatable {
static NONE: number;
static BEFORE: number;
static AFTER: number;
static epsilon: number;
data: PathConstraintData;
bones: Array<Bone>;
target: Slot;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
spaces: number[];
positions: number[];
world: number[];
curves: number[];
lengths: number[];
segments: number[];
active: boolean;
constructor(data: PathConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[];
addBeforePosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addAfterPosition(p: number, temp: Array<number>, i: number, out: Array<number>, o: number): void;
addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array<number>, o: number, tangents: boolean): void;
}
}
declare namespace sp.spine {
class PathConstraintData extends ConstraintData {
bones: BoneData[];
target: SlotData;
positionMode: PositionMode;
spacingMode: SpacingMode;
rotateMode: RotateMode;
offsetRotation: number;
position: number;
spacing: number;
rotateMix: number;
translateMix: number;
constructor(name: string);
}
enum PositionMode {
Fixed = 0,
Percent = 1
}
enum SpacingMode {
Length = 0,
Fixed = 1,
Percent = 2
}
enum RotateMode {
Tangent = 0,
Chain = 1,
ChainScale = 2
}
}
declare namespace sp.spine {
class SharedAssetManager implements Disposable {
private pathPrefix;
private clientAssets;
private queuedAssets;
private rawAssets;
private errors;
constructor(pathPrefix?: string);
private queueAsset;
loadText(clientId: string, path: string): void;
loadJson(clientId: string, path: string): void;
loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void;
get(clientId: string, path: string): any;
private updateClientAssets;
isLoadingComplete(clientId: string): boolean;
dispose(): void;
hasErrors(): boolean;
getErrors(): Map<string>;
}
}
declare namespace sp.spine {
class Skeleton {
data: SkeletonData;
bones: Array<Bone>;
slots: Array<Slot>;
drawOrder: Array<Slot>;
ikConstraints: Array<IkConstraint>;
transformConstraints: Array<TransformConstraint>;
pathConstraints: Array<PathConstraint>;
_updateCache: Updatable[];
updateCacheReset: Updatable[];
skin: Skin;
color: Color;
time: number;
scaleX: number;
scaleY: number;
x: number;
y: number;
constructor(data: SkeletonData);
updateCache(): void;
sortIkConstraint(constraint: IkConstraint): void;
sortPathConstraint(constraint: PathConstraint): void;
sortTransformConstraint(constraint: TransformConstraint): void;
sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void;
sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void;
sortBone(bone: Bone): void;
sortReset(bones: Array<Bone>): void;
updateWorldTransform(): void;
setToSetupPose(): void;
setBonesToSetupPose(): void;
setSlotsToSetupPose(): void;
getRootBone(): Bone;
findBone(boneName: string): Bone;
findBoneIndex(boneName: string): number;
findSlot(slotName: string): Slot;
findSlotIndex(slotName: string): number;
setSkinByName(skinName: string): void;
setSkin(newSkin: Skin): void;
getAttachmentByName(slotName: string, attachmentName: string): Attachment;
getAttachment(slotIndex: number, attachmentName: string): Attachment;
setAttachment(slotName: string, attachmentName: string): void;
findIkConstraint(constraintName: string): IkConstraint;
findTransformConstraint(constraintName: string): TransformConstraint;
findPathConstraint(constraintName: string): PathConstraint;
getBounds(offset: Vector2, size: Vector2, temp?: Array<number>): void;
update(delta: number): void;
}
}
declare namespace sp.spine {
class SkeletonBinary {
static AttachmentTypeValues: number[];
static TransformModeValues: TransformMode[];
static PositionModeValues: PositionMode[];
static SpacingModeValues: SpacingMode[];
static RotateModeValues: RotateMode[];
static BlendModeValues: BlendMode[];
static BONE_ROTATE: number;
static BONE_TRANSLATE: number;
static BONE_SCALE: number;
static BONE_SHEAR: number;
static SLOT_ATTACHMENT: number;
static SLOT_COLOR: number;
static SLOT_TWO_COLOR: number;
static PATH_POSITION: number;
static PATH_SPACING: number;
static PATH_MIX: number;
static CURVE_LINEAR: number;
static CURVE_STEPPED: number;
static CURVE_BEZIER: number;
scale: number;
attachmentLoader: AttachmentLoader;
private linkedMeshes;
constructor(attachmentLoader: AttachmentLoader);
readSkeletonData(binary: Uint8Array): SkeletonData;
private readSkin;
private readAttachment;
private readVertices;
private readFloatArray;
private readShortArray;
private readAnimation;
private readCurve;
setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void;
}
}
declare namespace sp.spine {
class SkeletonBounds {
minX: number;
minY: number;
maxX: number;
maxY: number;
boundingBoxes: BoundingBoxAttachment[];
polygons: ArrayLike<number>[];
private polygonPool;
update(skeleton: Skeleton, updateAabb: boolean): void;
aabbCompute(): void;
aabbContainsPoint(x: number, y: number): boolean;
aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean;
aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean;
containsPoint(x: number, y: number): BoundingBoxAttachment;
containsPointPolygon(polygon: ArrayLike<number>, x: number, y: number): boolean;
intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment;
intersectsSegmentPolygon(polygon: ArrayLike<number>, x1: number, y1: number, x2: number, y2: number): boolean;
getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike<number>;
getWidth(): number;
getHeight(): number;
}
}
declare namespace sp.spine {
class SkeletonClipping {
private triangulator;
private clippingPolygon;
private clipOutput;
clippedVertices: number[];
clippedTriangles: number[];
private scratch;
private clipAttachment;
private clippingPolygons;
clipStart(slot: Slot, clip: ClippingAttachment): number;
clipEndWithSlot(slot: Slot): void;
clipEnd(): void;
isClipping(): boolean;
clipTriangles(vertices: ArrayLike<number>, verticesLength: number, triangles: ArrayLike<number>, trianglesLength: number, uvs: ArrayLike<number>, light: Color, dark: Color, twoColor: boolean): void;
clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array<number>, output: Array<number>): boolean;
static makeClockwise(polygon: ArrayLike<number>): void;
}
}
declare namespace sp.spine {
class SkeletonData {
name: string;
bones: BoneData[];
slots: SlotData[];
skins: Skin[];
defaultSkin: Skin;
events: EventData[];
animations: Animation[];
ikConstraints: IkConstraintData[];
transformConstraints: TransformConstraintData[];
pathConstraints: PathConstraintData[];
x: number;
y: number;
width: number;
height: number;
version: string;
hash: string;
fps: number;
imagesPath: string;
audioPath: string;
findBone(boneName: string): BoneData;
findBoneIndex(boneName: string): number;
findSlot(slotName: string): SlotData;
findSlotIndex(slotName: string): number;
findSkin(skinName: string): Skin;
findEvent(eventDataName: string): EventData;
findAnimation(animationName: string): Animation;
findIkConstraint(constraintName: string): IkConstraintData;
findTransformConstraint(constraintName: string): TransformConstraintData;
findPathConstraint(constraintName: string): PathConstraintData;
findPathConstraintIndex(pathConstraintName: string): number;
}
}
declare namespace sp.spine {
class SkeletonJson {
attachmentLoader: AttachmentLoader;
scale: number;
private linkedMeshes;
constructor(attachmentLoader: AttachmentLoader);
readSkeletonData(json: string | any): SkeletonData;
readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment;
readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void;
readAnimation(map: any, name: string, skeletonData: SkeletonData): void;
readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void;
getValue(map: any, prop: string, defaultValue: any): any;
static blendModeFromString(str: string): BlendMode;
static positionModeFromString(str: string): PositionMode;
static spacingModeFromString(str: string): SpacingMode;
static rotateModeFromString(str: string): RotateMode;
static transformModeFromString(str: string): TransformMode;
}
}
declare namespace sp.spine {
class SkinEntry {
slotIndex: number;
name: string;
attachment: Attachment;
constructor(slotIndex: number, name: string, attachment: Attachment);
}
class Skin {
name: string;
attachments: Map<Attachment>[];
bones: BoneData[];
constraints: ConstraintData[];
constructor(name: string);
setAttachment(slotIndex: number, name: string, attachment: Attachment): void;
addSkin(skin: Skin): void;
copySkin(skin: Skin): void;
getAttachment(slotIndex: number, name: string): Attachment;
removeAttachment(slotIndex: number, name: string): void;
getAttachments(): Array<SkinEntry>;
getAttachmentsForSlot(slotIndex: number, attachments: Array<SkinEntry>): void;
clear(): void;
attachAll(skeleton: Skeleton, oldSkin: Skin): void;
}
}
declare namespace sp.spine {
class Slot {
data: SlotData;
bone: Bone;
color: Color;
darkColor: Color;
private attachment;
private attachmentTime;
deform: number[];
constructor(data: SlotData, bone: Bone);
getSkeleton(): Skeleton;
getAttachment(): Attachment;
setAttachment(attachment: Attachment): void;
setAttachmentTime(time: number): void;
getAttachmentTime(): number;
setToSetupPose(): void;
}
}
declare namespace sp.spine {
class SlotData {
index: number;
name: string;
boneData: BoneData;
color: Color;
darkColor: Color;
attachmentName: string;
blendMode: BlendMode;
constructor(index: number, name: string, boneData: BoneData);
}
}
declare namespace sp.spine {
abstract class Texture {
protected _image: HTMLImageElement;
constructor(image: HTMLImageElement);
getImage(): HTMLImageElement;
abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void;
abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void;
abstract dispose(): void;
static filterFromString(text: string): TextureFilter;
static wrapFromString(text: string): TextureWrap;
}
enum TextureFilter {
Nearest = 9728,
Linear = 9729,
MipMap = 9987,
MipMapNearestNearest = 9984,
MipMapLinearNearest = 9985,
MipMapNearestLinear = 9986,
MipMapLinearLinear = 9987
}
enum TextureWrap {
MirroredRepeat = 33648,
ClampToEdge = 33071,
Repeat = 10497
}
class TextureRegion {
renderObject: any;
u: number;
v: number;
u2: number;
v2: number;
width: number;
height: number;
rotate: boolean;
offsetX: number;
offsetY: number;
originalWidth: number;
originalHeight: number;
}
class FakeTexture extends Texture {
setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void;
setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void;
dispose(): void;
}
}
declare namespace sp.spine {
class TextureAtlas implements Disposable {
pages: TextureAtlasPage[];
regions: TextureAtlasRegion[];
constructor(atlasText: string, textureLoader: (path: string) => any);
private load;
findRegion(name: string): TextureAtlasRegion;
dispose(): void;
}
class TextureAtlasPage {
name: string;
minFilter: TextureFilter;
magFilter: TextureFilter;
uWrap: TextureWrap;
vWrap: TextureWrap;
texture: Texture;
width: number;
height: number;
}
class TextureAtlasRegion extends TextureRegion {
page: TextureAtlasPage;
name: string;
x: number;
y: number;
index: number;
rotate: boolean;
degrees: number;
texture: Texture;
}
}
declare namespace sp.spine {
class TransformConstraint implements Updatable {
data: TransformConstraintData;
bones: Array<Bone>;
target: Bone;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
temp: Vector2;
active: boolean;
constructor(data: TransformConstraintData, skeleton: Skeleton);
isActive(): boolean;
apply(): void;
update(): void;
applyAbsoluteWorld(): void;
applyRelativeWorld(): void;
applyAbsoluteLocal(): void;
applyRelativeLocal(): void;
}
}
declare namespace sp.spine {
class TransformConstraintData extends ConstraintData {
bones: BoneData[];
target: BoneData;
rotateMix: number;
translateMix: number;
scaleMix: number;
shearMix: number;
offsetRotation: number;
offsetX: number;
offsetY: number;
offsetScaleX: number;
offsetScaleY: number;
offsetShearY: number;
relative: boolean;
local: boolean;
constructor(name: string);
}
}
declare namespace sp.spine {
class Triangulator {
private convexPolygons;
private convexPolygonsIndices;
private indicesArray;
private isConcaveArray;
private triangles;
private polygonPool;
private polygonIndicesPool;
triangulate(verticesArray: ArrayLike<number>): Array<number>;
decompose(verticesArray: Array<number>, triangles: Array<number>): Array<Array<number>>;
private static isConcave;
private static positiveArea;
private static winding;
}
}
declare namespace sp.spine {
interface Updatable {
update(): void;
isActive(): boolean;
}
}
declare namespace sp.spine {
interface Map<T> {
[key: string]: T;
}
class IntSet {
array: number[];
add(value: number): boolean;
contains(value: number): boolean;
remove(value: number): void;
clear(): void;
}
interface Disposable {
dispose(): void;
}
interface Restorable {
restore(): void;
}
class Color {
r: number;
g: number;
b: number;
a: number;
static WHITE: Color;
static RED: Color;
static GREEN: Color;
static BLUE: Color;
static MAGENTA: Color;
constructor(r?: number, g?: number, b?: number, a?: number);
set(r: number, g: number, b: number, a: number): this;
setFromColor(c: Color): this;
setFromString(hex: string): this;
add(r: number, g: number, b: number, a: number): this;
clamp(): this;
static rgba8888ToColor(color: Color, value: number): void;
static rgb888ToColor(color: Color, value: number): void;
}
class MathUtils {
static PI: number;
static PI2: number;
static radiansToDegrees: number;
static radDeg: number;
static degreesToRadians: number;
static degRad: number;
static clamp(value: number, min: number, max: number): number;
static cosDeg(degrees: number): number;
static sinDeg(degrees: number): number;
static signum(value: number): number;
static toInt(x: number): number;
static cbrt(x: number): number;
static randomTriangular(min: number, max: number): number;
static randomTriangularWith(min: number, max: number, mode: number): number;
}
abstract class Interpolation {
protected abstract applyInternal(a: number): number;
apply(start: number, end: number, a: number): number;
}
class Pow extends Interpolation {
protected power: number;
constructor(power: number);
applyInternal(a: number): number;
}
class PowOut extends Pow {
constructor(power: number);
applyInternal(a: number): number;
}
class Utils {
static SUPPORTS_TYPED_ARRAYS: boolean;
static arrayCopy<T>(source: ArrayLike<T>, sourceStart: number, dest: ArrayLike<T>, destStart: number, numElements: number): void;
static setArraySize<T>(array: Array<T>, size: number, value?: any): Array<T>;
static ensureArrayCapacity<T>(array: Array<T>, size: number, value?: any): Array<T>;
static newArray<T>(size: number, defaultValue: T): Array<T>;
static newFloatArray(size: number): ArrayLike<number>;
static newShortArray(size: number): ArrayLike<number>;
static toFloatArray(array: Array<number>): number[] | Float32Array;
static toSinglePrecision(value: number): number;
static webkit602BugfixHelper(alpha: number, blend: MixBlend): void;
static contains<T>(array: Array<T>, element: T, identity?: boolean): boolean;
}
class DebugUtils {
static logBones(skeleton: Skeleton): void;
}
class Pool<T> {
private items;
private instantiator;
constructor(instantiator: () => T);
obtain(): T;
free(item: T): void;
freeAll(items: ArrayLike<T>): void;
clear(): void;
}
class Vector2 {
x: number;
y: number;
constructor(x?: number, y?: number);
set(x: number, y: number): Vector2;
length(): number;
normalize(): this;
}
class TimeKeeper {
maxDelta: number;
framesPerSecond: number;
delta: number;
totalTime: number;
private lastTime;
private frameCount;
private frameTime;
update(): void;
}
interface ArrayLike<T> {
length: number;
[n: number]: T;
}
class WindowedMean {
values: Array<number>;
addedValues: number;
lastValue: number;
mean: number;
dirty: boolean;
constructor(windowSize?: number);
hasEnoughData(): boolean;
addValue(value: number): void;
getMean(): number;
}
}
declare namespace sp.spine {
interface VertexEffect {
begin(skeleton: Skeleton): void;
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
end(): void;
}
}
interface Math {
fround(n: number): number;
}
declare namespace sp.spine {
abstract class Attachment {
name: string;
constructor(name: string);
abstract copy(): Attachment;
}
abstract class VertexAttachment extends Attachment {
private static nextID;
id: number;
bones: Array<number>;
vertices: ArrayLike<number>;
worldVerticesLength: number;
deformAttachment: VertexAttachment;
constructor(name: string);
computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
copyTo(attachment: VertexAttachment): void;
}
}
declare namespace sp.spine {
interface AttachmentLoader {
newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment;
newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment;
newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment;
newPathAttachment(skin: Skin, name: string): PathAttachment;
newPointAttachment(skin: Skin, name: string): PointAttachment;
newClippingAttachment(skin: Skin, name: string): ClippingAttachment;
}
}
declare namespace sp.spine {
enum AttachmentType {
Region = 0,
BoundingBox = 1,
Mesh = 2,
LinkedMesh = 3,
Path = 4,
Point = 5,
Clipping = 6
}
}
declare namespace sp.spine {
class BoundingBoxAttachment extends VertexAttachment {
color: Color;
constructor(name: string);
copy(): Attachment;
}
}
declare namespace sp.spine {
class ClippingAttachment extends VertexAttachment {
endSlot: SlotData;
color: Color;
constructor(name: string);
copy(): Attachment;
}
}
declare namespace sp.spine {
class MeshAttachment extends VertexAttachment {
region: TextureRegion;
path: string;
regionUVs: ArrayLike<number>;
uvs: ArrayLike<number>;
triangles: Array<number>;
color: Color;
width: number;
height: number;
hullLength: number;
edges: Array<number>;
private parentMesh;
tempColor: Color;
constructor(name: string);
updateUVs(): void;
getParentMesh(): MeshAttachment;
setParentMesh(parentMesh: MeshAttachment): void;
copy(): Attachment;
newLinkedMesh(): MeshAttachment;
}
}
declare namespace sp.spine {
class PathAttachment extends VertexAttachment {
lengths: Array<number>;
closed: boolean;
constantSpeed: boolean;
color: Color;
constructor(name: string);
copy(): Attachment;
}
}
declare namespace sp.spine {
class PointAttachment extends VertexAttachment {
x: number;
y: number;
rotation: number;
color: Color;
constructor(name: string);
computeWorldPosition(bone: Bone, point: Vector2): Vector2;
computeWorldRotation(bone: Bone): number;
copy(): Attachment;
}
}
declare namespace sp.spine {
class RegionAttachment extends Attachment {
static OX1: number;
static OY1: number;
static OX2: number;
static OY2: number;
static OX3: number;
static OY3: number;
static OX4: number;
static OY4: number;
static X1: number;
static Y1: number;
static C1R: number;
static C1G: number;
static C1B: number;
static C1A: number;
static U1: number;
static V1: number;
static X2: number;
static Y2: number;
static C2R: number;
static C2G: number;
static C2B: number;
static C2A: number;
static U2: number;
static V2: number;
static X3: number;
static Y3: number;
static C3R: number;
static C3G: number;
static C3B: number;
static C3A: number;
static U3: number;
static V3: number;
static X4: number;
static Y4: number;
static C4R: number;
static C4G: number;
static C4B: number;
static C4A: number;
static U4: number;
static V4: number;
x: number;
y: number;
scaleX: number;
scaleY: number;
rotation: number;
width: number;
height: number;
color: Color;
path: string;
rendererObject: any;
region: TextureRegion;
offset: ArrayLike<number>;
uvs: ArrayLike<number>;
tempColor: Color;
constructor(name: string);
updateOffset(): void;
setRegion(region: TextureRegion): void;
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
copy(): Attachment;
}
}
declare namespace sp.spine {
class JitterEffect implements VertexEffect {
jitterX: number;
jitterY: number;
constructor(jitterX: number, jitterY: number);
begin(skeleton: Skeleton): void;
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
end(): void;
}
}
declare namespace sp.spine {
class SwirlEffect implements VertexEffect {
static interpolation: PowOut;
centerX: number;
centerY: number;
radius: number;
angle: number;
private worldX;
private worldY;
constructor(radius: number);
begin(skeleton: Skeleton): void;
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
end(): void;
}
}
/**
* API for jsb module
* Author: haroel
* Homepage: https://github.com/haroel/creatorexDTS
*/
declare namespace jsb{
export module reflection{
/**
* https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html
* call OBJC/Java static methods
*
* @param className
* @param methodName
* @param methodSignature
* @param parameters
*/
export function callStaticMethod (className: string, methodName: string, methodSignature: string, ...parameters:any): any;
}
/**
* 下载任务对象
*/
export type DownloaderTask = { requestURL: string, storagePath: string, identifier: string };
/**
* Http file downloader for jsb!
*/
export class Downloader{
/**
* create a download task
* @param requestURL
* @param storagePath
* @param identifier
*/
createDownloadFileTask (requestURL:string, storagePath:string, identifier?:string): DownloaderTask;
setOnFileTaskSuccess (onSucceed: (task: DownloaderTask) => void): void;
setOnTaskProgress (onProgress: (task: DownloaderTask, bytesReceived: number, totalBytesReceived: number, totalBytesExpected: number) => void): void;
setOnTaskError (onError: (task: DownloaderTask, errorCode: number, errorCodeInternal: number, errorStr: string) => void): void;
}
export interface ManifestAsset {
md5: string;
path: string;
compressed: boolean;
size: number;
downloadState: number;
}
export class Manifest {
constructor (manifestUrl: string);
constructor (content: string, manifestRoot: string);
parseFile (manifestUrl: string): void;
parseJSONString (content: string, manifestRoot: string): void;
getManifestRoot (): string;
getManifestFileUrl (): string;
getVersionFileUrl (): string;
getSearchPaths (): [string];
getVersion (): string;
getPackageUrl (): boolean;
setUpdating (isUpdating: boolean): void;
isUpdating (): boolean;
isVersionLoaded (): boolean;
isLoaded (): boolean;
}
export class EventAssetsManager {
// EventCode
static ERROR_NO_LOCAL_MANIFEST: number;
static ERROR_DOWNLOAD_MANIFEST: number;
static ERROR_PARSE_MANIFEST: number;
static NEW_VERSION_FOUND: number;
static ALREADY_UP_TO_DATE: number;
static UPDATE_PROGRESSION: number;
static ASSET_UPDATED: number;
static ERROR_UPDATING: number;
static UPDATE_FINISHED: number;
static UPDATE_FAILED: number;
static ERROR_DECOMPRESS: number;
constructor (eventName: string, manager: AssetsManager, eventCode: number,
assetId?: string, message?: string, curleCode?: number, curlmCode?: number);
getAssetsManagerEx (): AssetsManager;
isResuming (): boolean;
getDownloadedFiles (): number;
getDownloadedBytes (): number;
getTotalFiles (): number;
getTotalBytes (): number;
getPercent (): number;
getPercentByFile (): number;
getEventCode (): number;
getMessage (): string;
getAssetId (): string;
getCURLECode (): number;
getCURLMCode (): number;
}
export module AssetsManager {
export enum State {
UNINITED,
UNCHECKED,
PREDOWNLOAD_VERSION,
DOWNLOADING_VERSION,
VERSION_LOADED,
PREDOWNLOAD_MANIFEST,
DOWNLOADING_MANIFEST,
MANIFEST_LOADED,
NEED_UPDATE,
READY_TO_UPDATE,
UPDATING,
UNZIPPING,
UP_TO_DATE,
FAIL_TO_UPDATE,
}
}
export class AssetsManager {
constructor (manifestUrl: string, storagePath: string, versionCompareHandle?: (versionA: string, versionB: string) => number);
static create (manifestUrl: string, storagePath: string): AssetsManager;
getState (): AssetsManager.State;
getStoragePath (): string
getMaxConcurrentTask (): number;
// setMaxConcurrentTask (max: number): void; // actually not supported
checkUpdate (): void;
prepareUpdate (): void;
update (): void;
isResuming (): boolean;
getDownloadedFiles (): number;
getDownloadedBytes (): number;
getTotalFiles (): number;
getTotalBytes (): number;
downloadFailedAssets (): void;
getLocalManifest (): Manifest;
loadLocalManifest (manifestUrl: string): boolean;
loadLocalManifest (localManifest: Manifest, storagePath: string): boolean;
getRemoteManifest (): Manifest;
loadRemoteManifest (remoteManifest: Manifest): boolean;
/**
* Setup your own version compare handler, versionA and B is versions in string.
* if the return value greater than 0, versionA is greater than B,
* if the return value equals 0, versionA equals to B,
* if the return value smaller than 0, versionA is smaller than B.
*/
setVersionCompareHandle (versionCompareHandle?: (versionA: string, versionB: string) => number): void;
/**
* Setup the verification callback, Return true if the verification passed, otherwise return false
*/
setVerifyCallback (verifyCallback: (path: string, asset: ManifestAsset) => boolean): void;
setEventCallback (eventCallback: (event: EventAssetsManager) => void): void;
}
/**
* FileUtils Helper class to handle file operations.
*/
export module fileUtils{
/**
* Checks whether the path is an absolute path.
*
* @note On Android, if the parameter passed in is relative to "@assets/", this method will treat it as an absolute path.
* Also on Blackberry, path starts with "app/native/Resources/" is treated as an absolute path.
*
* @param path The path that needs to be checked.
* @return True if it's an absolute path, false if not.
*/
export function isAbsolutePath (path:string):boolean;
/** Returns the fullpath for a given filename.
First it will try to get a new filename from the "filenameLookup" dictionary.
If a new filename can't be found on the dictionary, it will use the original filename.
Then it will try to obtain the full path of the filename using the FileUtils search rules: resolutions, and search paths.
The file search is based on the array element order of search paths and resolution directories.
For instance:
We set two elements("/mnt/sdcard/", "internal_dir/") to search paths vector by setSearchPaths,
and set three elements("resources-ipadhd/", "resources-ipad/", "resources-iphonehd")
to resolutions vector by setSearchResolutionsOrder. The "internal_dir" is relative to "Resources/".
If we have a file named 'sprite.png', the mapping in fileLookup dictionary contains `key: sprite.png -> value: sprite.pvr.gz`.
Firstly, it will replace 'sprite.png' with 'sprite.pvr.gz', then searching the file sprite.pvr.gz as follows:
/mnt/sdcard/resources-ipadhd/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/resources-ipad/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/resources-iphonehd/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/sprite.pvr.gz (if not found, search next)
internal_dir/resources-ipadhd/sprite.pvr.gz (if not found, search next)
internal_dir/resources-ipad/sprite.pvr.gz (if not found, search next)
internal_dir/resources-iphonehd/sprite.pvr.gz (if not found, search next)
internal_dir/sprite.pvr.gz (if not found, return "sprite.png")
If the filename contains relative path like "gamescene/uilayer/sprite.png",
and the mapping in fileLookup dictionary contains `key: gamescene/uilayer/sprite.png -> value: gamescene/uilayer/sprite.pvr.gz`.
The file search order will be:
/mnt/sdcard/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next)
/mnt/sdcard/gamescene/uilayer/sprite.pvr.gz (if not found, search next)
internal_dir/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next)
internal_dir/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next)
internal_dir/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next)
internal_dir/gamescene/uilayer/sprite.pvr.gz (if not found, return "gamescene/uilayer/sprite.png")
If the new file can't be found on the file system, it will return the parameter filename directly.
This method was added to simplify multiplatform support. Whether you are using cocos2d-js or any cross-compilation toolchain like StellaSDK or Apportable,
you might need to load different resources for a given file in the different platforms.
@since v2.1
*/
export function fullPathForFilename (filename:string):string;
/**
* Gets string from a file.
*/
export function getStringFromFile (filename:string):string;
/**
* Removes a file.
*
* @param filepath The full path of the file, it must be an absolute path.
* @return True if the file have been removed successfully, false if not.
*/
export function removeFile (filepath:string):boolean;
/**
* Checks whether the path is a directory.
*
* @param dirPath The path of the directory, it could be a relative or an absolute path.
* @return True if the directory exists, false if not.
*/
export function isDirectoryExist (dirPath:string):boolean;
/**
* Normalize: remove . and ..
* @param filepath
*/
export function normalizePath (filepath:string):string;
/**
* Get default resource root path.
*/
export function getDefaultResourceRootPath ():string;
/**
* Loads the filenameLookup dictionary from the contents of a filename.
*
* @note The plist file name should follow the format below:
*
* @code
* <?xml version="1.0" encoding="UTF-8"?>
* <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
* <plist version="1.0">
* <dict>
* <key>filenames</key>
* <dict>
* <key>sounds/click.wav</key>
* <string>sounds/click.caf</string>
* <key>sounds/endgame.wav</key>
* <string>sounds/endgame.caf</string>
* <key>sounds/gem-0.wav</key>
* <string>sounds/gem-0.caf</string>
* </dict>
* <key>metadata</key>
* <dict>
* <key>version</key>
* <integer>1</integer>
* </dict>
* </dict>
* </plist>
* @endcode
* @param filename The plist file name.
*
@since v2.1
* @js loadFilenameLookup
* @lua loadFilenameLookup
*/
export function loadFilenameLookup (filepath:string):void;
/** Checks whether to pop up a message box when failed to load an image.
* @return True if pop up a message box when failed to load an image, false if not.
*/
export function isPopupNotify ():boolean;
/**
* Sets whether to pop-up a message box when failed to load an image.
*/
export function setPopupNotify (notify:boolean):void;
// Converts the contents of a file to a ValueVector.
// This method is used internally.
export function getValueVectorFromFile (filepath:string):Array<any>;
/**
* Gets the array of search paths.
*
* @return The array of search paths which may contain the prefix of default resource root path.
* @note In best practise, getter function should return the value of setter function passes in.
* But since we should not break the compatibility, we keep using the old logic.
* Therefore, If you want to get the original search paths, please call 'getOriginalSearchPaths()' instead.
* @see fullPathForFilename(const char*).
* @lua NA
*/
export function getSearchPaths ():Array<string>;
/**
*
* @param filepath
*/
export function getFileDir (filepath:string):string;
/**
* write a ValueMap into a plist file
*
*@param dict the ValueMap want to save (key,value)
*@param fullPath The full path to the file you want to save a string
*@return bool
*/
export function writeToFile ( valueMap:any ):boolean;
/**
* Gets the original search path array set by 'setSearchPaths' or 'addSearchPath'.
* @return The array of the original search paths
*/
export function getOriginalSearchPaths ():Array<string>;
/**
* List all files in a directory.
*
* @param dirPath The path of the directory, it could be a relative or an absolute path.
* @return File paths in a string vector
*/
export function listFiles (filepath:string):Array<string>;
/**
* Converts the contents of a file to a ValueMap.
* @param filename The filename of the file to gets content.
* @return ValueMap of the file contents.
* @note This method is used internally.
*/
export function getValueMapFromFile (filepath:string):any;
/**
* Retrieve the file size.
*
* @note If a relative path was passed in, it will be inserted a default root path at the beginning.
* @param filepath The path of the file, it could be a relative or absolute path.
* @return The file size.
*/
export function getFileSize (filepath:string):number;
/** Converts the contents of a file to a ValueMap.
* This method is used internally.
*/
export function getValueMapFromData (filedata:string,filesize:number):any;
/**
* Removes a directory.
*
* @param dirPath The full path of the directory, it must be an absolute path.
* @return True if the directory have been removed successfully, false if not.
*/
export function removeDirectory (dirPath:string):boolean;
/**
* Sets the array of search paths.
*
* You can use this array to modify the search path of the resources.
* If you want to use "themes" or search resources in the "cache", you can do it easily by adding new entries in this array.
*
* @note This method could access relative path and absolute path.
* If the relative path was passed to the vector, FileUtils will add the default resource directory before the relative path.
* For instance:
* On Android, the default resource root path is "@assets/".
* If "/mnt/sdcard/" and "resources-large" were set to the search paths vector,
* "resources-large" will be converted to "@assets/resources-large" since it was a relative path.
*
* @param searchPaths The array contains search paths.
* @see fullPathForFilename(const char*)
* @since v2.1
* In js:var setSearchPaths(var jsval);
* @lua NA
*/
export function setSearchPaths ( searchPath:Array<string>):void;
/**
* write a string into a file
*
* @param dataStr the string want to save
* @param fullPath The full path to the file you want to save a string
* @return bool True if write success
*/
export function writeStringToFile (dataStr:string,fullPath:string):boolean;
/**
* Sets the array that contains the search order of the resources.
*
* @param searchResolutionsOrder The source array that contains the search order of the resources.
* @see getSearchResolutionsOrder(), fullPathForFilename(const char*).
* @since v2.1
* In js:var setSearchResolutionsOrder(var jsval)
* @lua NA
*/
export function setSearchResolutionsOrder (searchResolutionsOrder:Array<string>):void;
/**
* Append search order of the resources.
*
* @see setSearchResolutionsOrder(), fullPathForFilename().
* @since v2.1
*/
export function addSearchResolutionsOrder (order:string,front:boolean):void;
/**
* Add search path.
*
* @since v2.1
*/
export function addSearchPath (path:string,front:boolean):void;
/**
* write ValueVector into a plist file
*
*@param vecData the ValueVector want to save
*@param fullPath The full path to the file you want to save a string
*@return bool
*/
export function writeValueVectorToFile (vecData:Array<any>,fullPath:string):boolean;
/**
* Checks whether a file exists.
*
* @note If a relative path was passed in, it will be inserted a default root path at the beginning.
* @param filename The path of the file, it could be a relative or absolute path.
* @return True if the file exists, false if not.
*/
export function isFileExist (filename:string):boolean;
/**©∫
* Purges full path caches.
*/
export function purgeCachedEntries ():void;
/**
* Gets full path from a file name and the path of the relative file.
* @param filename The file name.
* @param relativeFile The path of the relative file.
* @return The full path.
* e.g. filename: hello.png, pszRelativeFile: /User/path1/path2/hello.plist
* Return: /User/path1/path2/hello.pvr (If there a a key(hello.png)-value(hello.pvr) in FilenameLookup dictionary. )
*
*/
export function fullPathFromRelativeFile (filename:string,relativeFile:string):string;
/**
* Windows fopen can't support UTF-8 filename
* Need convert all parameters fopen and other 3rd-party libs
*
* @param filenameUtf8 std::string name file for conversion from utf-8
* @return std::string ansi filename in current locale
*/
export function getSuitableFOpen (filenameUtf8:string):string;
/**
* write ValueMap into a plist file
*
*@param dict the ValueMap want to save
*@param fullPath The full path to the file you want to save a string
*@return bool
*/
export function writeValueMapToFile (dict:any,fullPath:string):string;
/**
* Gets filename extension is a suffix (separated from the base filename by a dot) in lower case.
* Examples of filename extensions are .png, .jpeg, .exe, .dmg and .txt.
* @param filePath The path of the file, it could be a relative or absolute path.
* @return suffix for filename in lower case or empty if a dot not found.
*/
export function getFileExtension (filePath:string):string;
/**
* Sets writable path.
*/
export function setWritablePath (writablePath:string):void;
/**
* Set default resource root path.
*/
export function setDefaultResourceRootPath (filepath:string):void;
/**
* Gets the array that contains the search order of the resources.
*
* @see setSearchResolutionsOrder(const std::vector<std::string>&), fullPathForFilename(const char*).
* @since v2.1
* @lua NA
*/
export function getSearchResolutionsOrder ():Array<string>;
/**
* Creates a directory.
*
* @param dirPath The path of the directory, it must be an absolute path.
* @return True if the directory have been created successfully, false if not.
*/
export function createDirectory (dirPath:string):string;
/**
* List all files recursively in a directory.
*
* @param dirPath The path of the directory, it could be a relative or an absolute path.
* @return File paths in a string vector
*/
export function listFilesRecursively (dirPath:string, files:Array<string>):void;
/**
* Gets the writable path.
* @return The path that can be write/read a file in
*/
export function getWritablePath ():string;
}
}
/** Running in the editor. */
declare const CC_EDITOR: boolean;
/** Preview in browser or simulator. */
declare const CC_PREVIEW: boolean;
/** Running in the editor or preview. */
declare const CC_DEV: boolean;
/** Running in the editor or preview, or build in debug mode. */
declare const CC_DEBUG: boolean;
/** Running in published project. */
declare const CC_BUILD: boolean;
/** Running in native platforms (mobile app, desktop app, or simulator). */
declare const CC_JSB: boolean;
/** Running in runtime environments. */
declare const CC_RUNTIME: boolean;
/** Running in the engine's unit test. */
declare const CC_TEST: boolean;
/** Running in the WeChat Mini Game. */
declare const CC_WECHATGAME: boolean;