-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.d.ts
3452 lines (3211 loc) · 160 KB
/
index.d.ts
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
// Type definitions for CreateJS
// Project: http://www.createjs.com/
// Definitions by: Pedro Ferreira <https://bitbucket.org/drk4>, Chris Smith <https://github.com/evilangelist>, Satoru Kimura <https://github.com/gyohk>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/*
Copyright (c) 2012 Pedro Ferreira
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.
*/
// Common class and methods for CreateJS.
// Library documentation : http://www.createjs.com/Docs/EaselJS/modules/EaselJS.html
// Library documentation : http://www.createjs.com/Docs/PreloadJS/modules/PreloadJS.html
// Library documentation : http://www.createjs.com/Docs/SoundJS/modules/SoundJS.html
// Library documentation : http://www.createjs.com/Docs/TweenJS/modules/TweenJS.html
interface NativeMouseEvent extends MouseEvent {
}
declare namespace createjs {
export class Types {
static BINARY:string
static CSS:string
static FONT:string
static FONTCSS:string
static IMAGE:string
static JAVASCRIPT:string
static MANIFEST:string
static SOUND:string
static VIDEO:string
static JSON:string
static JSONP:string
static SPRITESHEET:string
static SVG:string
static TEXT:string
static XML:string
}
/**
* 包含所有事件共享的属性和方法,以便与{@link EventDispatcher}一起使用。
* 请注意,事件对象经常被重用,因此您永远不应该依赖于事件对象在调用堆栈之外的状态。
*/
class Event {
/**
*
* @param type 事件类型。例如,Event.COMPLETE
* @param bubbles 指示事件是否会在显示列表中冒泡。
* @param cancelable 指示是否可以取消此事件的默认行为。
*/
constructor(type?: string, bubbles?: boolean, cancelable?: boolean);
// properties
/** 指示事件是否会在显示列表中冒泡 */
bubbles: boolean;
/** 指示是否可以通过preventDefault取消此事件的默认行为。这是通过Event构造函数设置的 */
cancelable: boolean;
/** 正在从中调度冒泡事件的当前目标。对于非冒泡事件,这将始终与目标相同。例如,如果childObj.parent=parentObj,并且从childObj生成冒泡事件,则parentObj上的侦听器将接收到target=childObj(原始目标)和currentTarget=parentObj(添加侦听器的位置)的事件 */
currentTarget: any; // It is 'Object' type officially, but 'any' is easier to use.
/** 指示是否对此事件调用了preventDefault */
defaultPrevented: boolean;
/**
* 对于冒泡事件,这表示当前事件阶段:
* 1.捕获阶段:从顶部父对象开始到目标
* 2.在目标阶段:当前正在从目标调度
* 3.冒泡阶段:从目标到顶部父对象
*/
eventPhase: number;
/** 指示是否对此事件调用了stopImmediatePropagation */
immediatePropagationStopped: boolean;
/** 指示是否对此事件调用了stopPropagation或stopImmediatePropagation */
propagationStopped: boolean;
/** 指示是否对此事件调用了remove */
removed: boolean;
/** 事件目标对象 */
target: any; // It is 'Object' type officially, but 'any' is easier to use.
timeStamp: number;
type: string;
// other event payloads
data: any;
delta: number;
error: string;
id: string;
item: any;
loaded: number;
name: string;
next: string;
params: any;
paused: boolean;
progress: number;
rawResult: any;
result: any;
runTime: number;
src: string;
time: number;
total: number;
// methods
/**
* 返回Event实例的克隆。
* @returns Event实例的克隆。
*/
clone(): Event;
/**
* 如果事件可取消,则将{@link defaultPrevented}设置为true。反映DOM2事件标准。一般来说,如果事件可取消,则调用preventDefault()将取消与该事件关联的默认行为。
*/
preventDefault(): void;
/**
* 通过removeEventListener();删除活动监听器
* ```js
* myBtn.addEventListener("click", function(evt) {
* // do stuff...
* evt.remove(); // 删除此侦听器。
* });
* ```
*/
remove(): void;
/**
* 提供一种可链接的快捷方式,用于在实例上设置多个属性。
* @param props 包含要复制到实例的属性的通用对象。
* @returns 返回方法被调用的实例(对于链式调用很有用。)
*/
set(props: Object): Event;
/**
* 将{@link propagationStopped}和{@link immediatePropagationStopped}设置为true。反映DOM事件标准。
*/
stopImmediatePropagation(): void;
/**
* 将{@link propagationStopped}设置为true。反映DOM事件标准。
*/
stopPropagation(): void;
/**
* 返回此对象的字符串表示形式。
* @returns 实例的字符串表示。
*/
toString(): string;
}
/**
* EventDispatcher提供了管理事件侦听器队列和分发事件的方法。
*
* 您可以扩展EventDispatcher,也可以使用EventDispatcher的{@link initialize}方法将其方法混合到现有的原型或实例中。
*
* EventDispatcher与CreateJS Event类一起提供了一个基于DOM Level 2事件模型的扩展事件模型,包括addEventListener、removeEventListener和dispatchEvent。它支持冒泡/捕获、preventDefault, stopPropagation, stopImmediatePropagation和handleEvent。
*
* EventDispatcher还公开了一个{@link on}方法,这使得创建作用域监听器、只运行一次的监听器以及具有相关任意数据的监听器变得更加容易。{@link off}方法只是removeEventListener的别名。
*
* DOM Level 2模型的另一个补充是{@link removeAllEventListener}方法,该方法可用于所有事件的监听器,或特定事件的监听器。Event对象还包括一个{@link remove}方法,用于删除活动侦听器。
*
* Example
*
* 将EventDispatcher功能添加到“MyClass”类中。
* ```js
* EventDispatcher.initialize(MyClass.prototype);
* ```
* 添加事件(请参阅{@link addEventListener})。
* ```js
* instance.addEventListener("eventName", handlerMethod);
* function handlerMethod(event) {
* console.log(event.target + " Was Clicked");
* }
* ```
* 保持适当的范围
*
* Scope (ie. "this")对事件来说可能是一个挑战。使用{@link on}方法监听事件简化了这一过程。
* ```js
* instance.addEventListener("click", function(event) {
* console.log(instance == this); // false, scope is ambiguous.
* });
*
* instance.on("click", function(event) {
* console.log(instance == this); // true, "on" uses dispatcher scope by default.
* });
* ```
* 如果你想使用addEventListener,你可能想使用function.bind()或类似的代理来管理作用域。
*
* 浏览器支持CreateJS中的事件模型可以在任何项目中与套件分开使用,但是继承模型需要现代浏览器(IE9+)。
*/
class EventDispatcher {
constructor()
// methods
/**
* 添加指定的事件侦听器。请注意,向同一个对象添加多个监听器将导致多个监听器被触发。
*
* 案例:
* ```js
* displayObject.addEventListener("click", handleClick);
* function handleClick(event) {
* // Click happened.
* }
* ```
* @param type 事件的字符串类型。
* @param listener 具有handleEvent方法的对象,或在事件被分派时将被调用的函数。
* @param useCapture 对于冒泡的事件,指示是在捕获阶段还是冒泡/目标阶段监听事件。
* @returns 返回用于链接或赋值的侦听器。
*/
addEventListener(type: string, listener: (eventObj: Object) => void|boolean, useCapture?: boolean): Function|Object
//addEventListener(type: string, listener: (eventObj: Object) => void, useCapture?: boolean): Function;
addEventListener(type: string, listener: { handleEvent: (eventObj: Object) => void|boolean}, useCapture?: boolean): Object
//addEventListener(type: string, listener: { handleEvent: (eventObj: Object) => void; }, useCapture?: boolean): Object;
addEventListener(type: string, listener: (e?:Event|any) => void, useCapture?: boolean): ()=>{}
//addEventListener(type: string, listener: (e?:any) => void, useCapture?: boolean): ()=>{}
/**
* 将指定的事件分派给所有侦听器。
* @param eventObj 具有“type”属性或字符串类型的对象。虽然通用对象可以工作,但建议使用CreateJS事件实例。如果使用了字符串,dispatchEvent将在必要时使用指定的类型构造一个Event实例。后一种方法可以用于避免可能没有任何侦听器的非冒泡事件的事件对象实例化。
* @param bubbles 指定将字符串传递给eventObj时的气泡值。
* @param cancelable 指定将字符串传递给eventObj时可取消的值。
* @returns 如果对可取消事件调用了preventDefault(),则返回false,否则返回true。
*/
dispatchEvent(eventObj: Object|string|Event, target?: Object): boolean;
/*dispatchEvent(eventObj: string, target?: Object): boolean;
dispatchEvent(eventObj: Event, target?: Object): boolean;*/
/**
* 指定事件类型是否至少有一个侦听器。
* @param type 事件类型
* @returns 如果指定事件至少有一个侦听器,则返回true。
*/
hasEventListener(type: string): boolean;
/**
* 静态初始化方法,用于将EventDispatcher方法混合到目标对象或原型中。
* ```js
* EventDispatcher.initialize(MyClass.prototype); // add to the prototype of the class
* EventDispatcher.initialize(myObject); // add to a specific instance
* ```
* @param target 将EventDispatcher方法注入的目标对象。这可以是实例或原型。
*/
static initialize(target: Object): void;
off(type: string, listener: (eventObj: Object) => boolean|void, useCapture?: boolean): void;
//off(type: string, listener: (eventObj: Object) => void, useCapture?: boolean): void;
off(type: string, listener: { handleEvent: (eventObj: Object) => boolean|void; }, useCapture?: boolean): void;
//off(type: string, listener: { handleEvent: (eventObj: Object) => void; }, useCapture?: boolean): void;
off(type: string, listener: Function, useCapture?: boolean): void; // It is necessary for "arguments.callee"
off<T extends Event = Event>(type: string, listener: Function|((eventObj?: T)=>void), useCapture?: boolean): void;
/**
* 一种使用addEventListener的快捷方法,可以更容易地指定执行范围,使侦听器只运行一次,将任意数据与侦听器相关联,并删除侦听器。
*
* 此方法通过创建匿名包装器函数并使用addEventListener订阅它来工作。返回包装器函数以与removeEventListener一起使用(或关闭)。
*
* 重要提示:要删除添加了on的侦听器,您必须将返回的包装器函数作为侦听器传递,或使用remove。同样,每次调用NEW包装器函数时,都会订阅,因此使用相同参数对on的多次调用将创建多个侦听器。
*
* 案例:
* ```js
* var listener = myBtn.on("click", handleClick, null, false, {count:3});
* function handleClick(evt, data) {
* data.count -= 1;
* console.log(this == myBtn); // true - scope defaults to the dispatcher
* if (data.count == 0) {
* alert("clicked 3 times!");
* myBtn.off("click", listener);
* // alternately: evt.remove();
* }
* }
* ```
* @param type 事件类型
* @param listener 侦听器
* @param scope 执行侦听器的作用域。对于函数侦听器,默认为dispatcher/currentTarget,对于对象侦听器,则默认为侦听器本身(即使用handleEvent)。直白点说就是this指向谁,默认是指向侦听器自身。
* @param once 是否仅执行一次侦听器
* @param data 传参
* @param useCapture
*/
on(type: string, listener: (eventObj: Object) => boolean|void, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): Function;
//on(type: string, listener: (eventObj: Object) => void, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): Function;
on(type: string, listener: { handleEvent: (eventObj: Object) => boolean|void; }, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): Object;
//on(type: string, listener: { handleEvent: (eventObj: Object) => void; }, scope?: Object, once?: boolean, data?: any, useCapture?: boolean): Object;
on(type: string, listener:(eventObj: any)=>void, scope?: any, once?: boolean, data?: any, useCapture?: boolean):void;
on<T extends Event = Event>(type: string, listener: Function|((eventObj?: T)=>void|boolean), scope?: any, once?: boolean, data?: any, useCapture?: boolean):Function|((eventObj?: T)=>void);
/**
* 删除指定类型的所有侦听器,或所有类型的所有监听器。
*
* 案例:
* ```js
* // Remove all listeners
* displayObject.removeAllEventListeners();
*
* // Remove all click listeners
* displayObject.removeAllEventListeners("click");
* ```
* @param type 事件类型
*/
removeAllEventListeners(type?: string): void;
/**
* 删除指定的事件侦听器。
*
* 重要提示:您必须传递添加事件时使用的确切函数引用。如果使用代理函数或函数闭包作为回调,则必须使用代理/闭包引用——新的代理或闭包将无法工作。
*
* 案例:
* ```js
* displayObject.removeEventListener("click", handleClick);
* ```
* @param type 事件类型
* @param listener 监听器函数或对象。
* @param useCapture 对于冒泡的事件,指示是在捕获阶段还是冒泡/目标阶段监听事件。
*/
removeEventListener(type: string, listener: (eventObj: Object) => boolean|void, useCapture?: boolean): void;
//removeEventListener(type: string, listener: (eventObj: Object) => void, useCapture?: boolean): void;
removeEventListener(type: string, listener: { handleEvent: (eventObj: Object) => boolean|void; }, useCapture?: boolean): void;
//removeEventListener(type: string, listener: { handleEvent: (eventObj: Object) => void; }, useCapture?: boolean): void;
removeEventListener(type: string, listener: Function, useCapture?: boolean): void; // It is necessary for "arguments.callee"
/**
* @returns 实例的字符串表示。
*/
toString(): string;
/**
* 指示此对象或其任何祖先(父级、父级的父级等)上是否至少有一个指定事件类型的侦听器。
* 返回值true表示,如果从该对象分派指定类型的冒泡事件,它将触发至少一个侦听器。
*
* 这类似于{@link hasEventListener},但它在整个事件流中搜索侦听器,而不仅仅是这个对象。
* @param type 事件类型
* @returns 如果指定事件至少有一个侦听器,则返回true。
*/
willTrigger(type: string): boolean;
}
/**
* 为新类设置原型链和构造函数属性。
*
* 这应该在创建类构造函数之后立即调用。
*
* @param subclass
* @param superclass
*/
export function extend(subclass: () => any, superclass: () => any): () => any; // returns the subclass prototype
/**
* 在传入的数组中查找指定值searchElement的第一个匹配项,并返回该值的索引。如果找不到值,则返回-1。
* @param array 数组
* @param searchElement 匹配项
*/
export function indexOf(array: any[], searchElement: Object): number;
/**
* 通过创建格式为prefix_methodName的别名,提升超类上被重写的任何方法。建议使用超类的名称作为前缀。超类的构造函数的别名总是以前缀_构造函数的格式添加。
* 这允许子类在不使用function.call的情况下调用超类方法,从而提供更好的性能。
*
* 例如,如果MySubClass扩展了MySuperClass,并且两者都定义了一个draw方法,那么调用promote(MySubClass, "MySuperClass")将向MySubClass添加一个MySupClass_constructor方法,并将MySupClass上的draw方法提升为MySupClass_draw的MySubClass原型。
*
* 这应该在类的原型完全定义之后调用。
*
* @param subclass 超类
* @param prefix 前缀
*/
export function promote(subclass: () => any, prefix: string): () => any;
export function proxy(method: (eventObj: Object) => boolean, scope: Object, ...arg: any[]): (eventObj: Object) => any;
export function proxy(method: (eventObj: Object) => void, scope: Object, ...arg: any[]): (eventObj: Object) => any;
export function proxy(method: { handleEvent: (eventObj: Object) => boolean; }, scope: Object, ...arg: any[]): (eventObj: Object) => any;
export function proxy(method: { handleEvent: (eventObj: Object) => void; }, scope: Object, ...arg: any[]): (eventObj: Object) => any;
/**
* 将灰度 Alpha 贴图图像(或画布)应用到目标,这样结果的 Alpha 通道将从贴图的红色通道复制,RGB 通道将从目标复制。
* 通常,建议您使用AlphaMaskFilter,因为它的性能要好得多。
*/
class AlphaMapFilter extends Filter {
constructor(alphaMap: HTMLImageElement | HTMLCanvasElement);
// properties
/**
* 要用作结果的alpha值的灰度图像(或画布)。这应该与目标的尺寸完全相同。
*/
alphaMap: HTMLImageElement | HTMLCanvasElement;
// methods
clone(): AlphaMapFilter;
}
/**
* 将遮罩图像(或画布)中的alpha应用于目标,这样结果的alpha通道将从遮罩中导出,而RGB通道将从目标中复制。例如,这可以用于将alpha掩码应用于显示对象。
* 这也可以用于将JPG压缩的RGB图像与PNG32 alpha掩码组合,这可以导致比包含RGB的单个PNG32小得多的文件大小。
*/
class AlphaMaskFilter extends Filter {
constructor(mask: HTMLImageElement | HTMLCanvasElement);
// properties
/**
* 要用作遮罩的图像(或画布)。
*/
mask: HTMLImageElement | HTMLCanvasElement;
// methods
clone(): AlphaMaskFilter;
}
/**
* 位图表示显示列表中的图像、画布或视频。可以使用现有HTML元素或字符串实例化位图。
*
* 举个栗子
* ```js
* var bitmap = new createjs.Bitmap("imagePath.jpg");
* ```
* 注意事项:
*
* 1.当使用可能循环或查找的视频源时,请使用{@link VideoBuffer}对象以防止闪烁/闪烁。
*
* 2.当使用的图像或者img标签尚未加载时,在图像加载完成后,stage需要重绘才能显示该图像。
*
* 3.具有SVG源的位图当前不考虑0或1以外的alpha值。要解决此问题,可以缓存位图。
*
* 4.带有SVG源的位图会用跨源数据污染画布,这会阻止交互性。除最近的Firefox版本外,所有浏览器都会出现这种情况。
*
* 5.对于跨源加载的图像,如果使用鼠标交互、使用 getObjectUnderPoint等方法、应用滤镜或者缓存时会抛出cross-origin security报错。
* 你可以通过在将图像传递给EaselJS之前设置img标签的 crossOrigin 属性来解决这个问题,例如:img.crossOrigin="Anonymous";
*/
class Bitmap extends DisplayObject {
/**
* 要显示的源图像。这可以是CanvasImageSource (image, video, canvas)、具有返回CanvasImageSourcean的getImage方法的对象或图像的字符串URL。
* 如果是后者,将使用URL作为其src的新图像实例。
* @param imageOrUrl
*/
constructor(imageOrUrl?: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | Object | string);
// properties
/**
* 要显示的源图像。这可以是CanvasImageSource(图像、视频、画布)、具有返回CanvasImage源的getImage方法的对象或图像的字符串URL。
* 如果是后者,将使用URL作为其src的新图像实例。
*/
image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
/**
* 指定要绘制的源图像的区域。如果省略,将绘制整个图像。
*
* 注意:
*
* 1.视频源必须设置宽度/高度才能正确使用sourceRect
*
* 2.缓存对象将忽略sourceRect属性
*/
sourceRect: Rectangle;
// methods
clone(): Bitmap;
}
/**
* BitmapCache类集成了“缓存”对象所需的所有缓存属性和逻辑,它将{@link DisplayObject}对象渲染为位图。
* 此信息和功能曾经位于DisplayObject中的缓存方法上,但被移动到了BitmapCache类中。
*
* 在这种情况下,缓存纯粹是视觉上的,它会将DisplayObject渲染成一个图像来使用,而不是对象。
* 实际缓存本身仍然与{@link cacheCanvas}一起存储在目标上。{@link Bitmap}对象执行缓存几乎没有好处,因为它已经是单个图像了。
* 如果容器包含多个复杂且不经常移动的内容,使用缓存渲染图像将提高整体渲染速度。
* 缓存不会自动更新,除非调用{@link cache}方法。如果缓存像Stage一样每帧更新一次,则可能无法提高渲染性能。
* 当对象的内容变化频率很低时(画面长时间静止),最好使用缓存。
*
* 缓存也是应用滤镜的必要条件。当滤镜不改变时,直接使用缓存显示,不需要每帧渲染。
* BitmapCache还负责对对象应用过滤器,并根据这种关系读取每个{@link Filter}。在处理Context2D画布时,不建议使用实时过滤器。
* 为了获得最佳性能并仍然允许一些视觉效果,请在可能的情况下使用compositeOperation。
*/
class BitmapCache {
constructor();
// properties
/** 跟踪缓存已更新的次数,主要用于防止重复的cacheURL。这对于查看缓存是否已更新非常有用。 */
cacheID: number;
// methods
/**
* 返回围绕所有应用的滤镜的边界,依赖于每个滤镜来描述它如何更改边界。
* @param target 要检查其滤镜边界的对象。
* @param output 可选参数,如果提供,则计算的边界将应用于该对象。
*/
static getFilterBounds(target: DisplayObject, output?: Rectangle): Rectangle;
/**
* 返回此对象的字符串表示形式。
*/
toString(): string;
/**
* 实际上创建了正确的缓存表面和与之相关的属性。缓存函数和这个类描述讨论了{@link cache}及其好处。以下是如何使用options对象的详细细节。
*
* 1.如果options.useGL设置为"new",则会创建一个StageGL并将其包含在其中,以便在渲染缓存时使用。
*
* 2.如果options.useGL设置为"stage",如果当前stage是StageGL,则将使用它。如果没有,它将默认为"new"。
*
* 3.如果options.useGL是StageGL实例,它不会创建一个实例,而是使用提供的实例。
*
* 4.如果options.useGL为undefined,将执行上下文2D缓存。
*
* 这意味着您可以使用StageGL和2D的任何组合,其中一个、两个或两个阶段和缓存都是WebGL。在StageGL显示列表中使用"new"是非常不受欢迎的,但仍然是一种选择。
* 由于负面性能原因和上述类别复杂性中提到的图像加载限制,应避免使用。
*
* 当“options.useGL”设置为目标和WebGL的父阶段时,通过使用"RenderTextures"而不是画布元素来提高性能。这些是存储在GPU中的图形卡上的内部纹理。
* 因为它们不再是画布,所以无法执行常规画布所能执行的操作。这样做的好处是避免了将纹理从GPU来回复制到Canvas元素的速度减慢。这意味着“阶段”是可用的推荐选项。
*
* StageGL缓存不会推断绘制StageGL当前无法绘制的对象的能力,即在缓存形状、文本等时不要使用WebGL上下文缓存。
*
* 具有2D上下文的WebGL缓存
* ```js
* var stage = new createjs.Stage();
* var bmp = new createjs.Bitmap(src);
* bmp.cache(0, 0, bmp.width, bmp.height, 1, {gl: "new"}); // no StageGL to use, so make one
*
* var shape = new createjs.Shape();
* shape.graphics.clear().fill("red").drawRect(0,0,20,20);
* shape.cache(0, 0, 20, 20, 1);
* ```
* 带有WebGL上下文的WebGL缓存
* ```js
* var stageGL = new createjs.StageGL();
* var bmp = new createjs.Bitmap(src);
* bmp.cache(0, 0, bmp.width, bmp.height, 1, {gl: "stage"}); // use our StageGL to cache
*
* var shape = new createjs.Shape();
* shape.graphics.clear().fill("red").drawRect(0,0,20,20);
* shape.cache(0, 0, 20, 20, 1);
* ```
* 您可能希望创建自己的StageGL实例来控制诸如透明颜色、透明度、AA等因素。
* 如果您这样做,则传入一个新实例而不是“true”,库将自动在您的实例上将StageGL/isCacheControlled设置为true。
* 这将触发它正确运行,而不是假设您的主上下文是WebGL。
* @param target
* @param x
* @param y
* @param width 缓存区域的宽度。
* @param height 缓存区域的高度。
* @param scale 将创建缓存的比例。例如,如果使用myShape.cache(0,0100100.2)缓存矢量形状,则生成的cacheCanvas将为200x200 px。
* 这样可以更逼真地缩放和旋转缓存的元素。默认值为1。
* @param {Object} [options=undefined] 为缓存逻辑指定其他参数。
* @param {undefined|"new"|"stage"|StageGL} [options.useGL=undefined] 选择是使用上下文2D还是WebGL渲染,以及是创建新的舞台实例还是使用现有的舞台实例。
* 有关使用的详细信息,请参阅上文。
* @for BitmapCache
*/
define(target: DisplayObject, x: number, y: number, width: number, height: number, scale?: number, options?:any): void;
/**
* 直接通过{@link updateCache}调用,也可以在内部调用。这具有双重责任,即确保表面已准备好绘制,并执行绘制。
* 有关每种行为的完整详细信息,请分别检查受保护的函数{@link _updateSurface}和{@link _drawToCache}。
* @param compositeOperation
*/
update(compositeOperation?: string): void;
/**
* 重置并释放与此缓存关联的所有属性和内存。
*/
release(): void;
/**
* 返回缓存的数据URL,如果未缓存此显示对象,则返回null。使用cacheID确保在缓存未更改的情况下不会生成新的数据URL。
* @returns {string} 缓存的图像数据url。
*/
getCacheDataURL(): string;
/**
* 使用context2D绘图命令显示正在使用的缓存画布。
* @param ctx 绘制的画布上下文。
* @returns {boolean} 绘制是否成功
*/
draw(ctx: CanvasRenderingContext2D): boolean;
}
/**
* 对位图使用九宫格缩放。
*
* 案例:
* ```js
* var sb = new createjs.ScaleBitmap(image, new createjs.Rectangle(12, 12, 5, 10));
* sb.setDrawSize(200, 300);
* stage.addChild(sb);
* ```
*/
class ScaleBitmap extends DisplayObject {
/**
*
* @param imageOrUrl 源图或者链接地址
* @param scale9Grid 指定九区域缩放网格的内部矩形
*/
constructor(imageOrUrl: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | Object | string, scale9Grid: Rectangle);
// properties
/** 用来渲染的图像。可以是Image,或者Canvas,又或者Video */
image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement;
/** 源图的裁剪区域 */
sourceRect: Rectangle;
/** 绘制宽度 */
drawWidth: number;
/** 绘制高度 */
drawHeight: number;
/** 指定九区域缩放网格的内部矩形 */
scale9Grid: Rectangle;
/** ScaleSpriteSheet是否应在整个像素坐标下绘制到画布 */
snapToPixel: boolean;
// methods
/**
* 设置用于绘制ScaleSpriteSheet的尺寸
* @param newWidth
* @param newHeight
*/
setDrawSize (newWidth: number, newHeight: number): void;
/**
* 返回克隆的ScaleBitmap实例。
*/
clone(): ScaleBitmap;
}
/**
* 使用sprite sheet中定义的位图图示符显示文本。支持使用换行字符的多行文本,但不支持自动换行。
* 有关定义图示符的详细信息,请参见{@link spriteSheet}属性。
*
* 重要提示: 虽然BitmapText扩展了Container,但它并不是设计为一个容器。因此,addChild和removeChild等方法被禁用。
*/
class BitmapText extends DisplayObject {
/**
*
* @param text 要显示的文本。
* @param spriteSheet 定义字符图示符的精灵表。
*/
constructor(text?:string, spriteSheet?:SpriteSheet);
/**
* BitmapText使用Sprite实例绘制文本。为了减少实例的创建和销毁(从而减少垃圾收集),它维护了一个内部的sprite实例对象池以供重用。
* 增加此值会导致保留更多精灵,略微增加内存使用,但会减少实例化。
* @defaultValue 100
*/
static maxPoolSize: number;
// properties
/**
* 此间距(像素)将添加到输出中的每个字符之后。
* @defaultValue 0
*/
letterSpacing: number;
/**
* 每行文字的高度。如果为0,则它将使用通过检查“1”、“T”或“L”字符的高度(按此顺序)计算的行高度。
* 如果这些字符没有定义,它将使用子画面第一帧的高度。
* @defaultValue 0
*/
lineHeight: number;
/**
* 如果子画面中未定义空格字符,则将插入等于spaceWidth的空像素。
* 如果为0,则它将使用通过检查“1”、“l”、“E”或“a”字符的宽度(按此顺序)计算的值。
* 如果这些字符没有定义,它将使用子画面第一帧的宽度。
* @defaultValue 0
*/
spaceWidth: number;
/**
* 定义此位图文本的字形的SpriteSheet实例。
* 每个字形/字符都应该在精灵表中定义一个与相应字符同名的单帧动画。
* 例如,以下动画定义:
* ```js
* "A": {frames: [0]}
* ```
* 将指示应为“A”字符绘制子画面索引0处的帧。简短的形式也是可以接受的:
* ```js
* "A": 0
* ```
* 请注意,如果在精灵表中找不到文本中的字符,它也会尝试使用其他大小写(大写或小写)。
*
* 有关定义精灵表数据的详细信息,请参见{@link SpriteSheet}。
* @defaultValue null
*/
spriteSheet: SpriteSheet;
/**
* 要显示的文本。
* @defaultValue ""
*/
text: string;
}
/**
* 将方框模糊应用于context 2D中的DisplayObjects,并将高斯模糊应用于webgl中。请注意,此滤镜相当密集,尤其是当质量设置为高于1时。
*
* 案例:
*
* 此示例创建一个红色圆圈,然后对其应用5像素的模糊。
* 它使用getBounds方法来解释模糊引起的扩散。
* ```js
* var shape = new createjs.Shape().set({x:100,y:100});
* shape.graphics.beginFill("#ff0000").drawCircle(0,0,50);
*
* var blurFilter = new createjs.BlurFilter(5, 5, 1);
* shape.filters = [blurFilter];
* var bounds = blurFilter.getBounds();
*
* shape.cache(-50+bounds.x, -50+bounds.y, 100+bounds.width, 100+bounds.height);
* ```
* 有关应用滤镜的详细信息,请参阅{@link Filter}。
*/
class BlurFilter extends Filter {
/**
*
* @param blurX 水平模糊半径(像素)。
* @param blurY 垂直模糊半径(像素)。
* @param quality 模糊迭代次数。
*/
constructor(blurX?: number, blurY?: number, quality?: number)
// properties
/** 以像素为单位的水平模糊半径。 */
blurX: number
/** 以像素为单位的垂直模糊半径。 */
blurY: number
/**
* 模糊迭代次数。例如,值为1将产生粗糙模糊。
* 值为2将产生更平滑的模糊,但运行时间是原来的两倍。
* @defaultValue 1
*/
quality: number
// methods
clone(): BlurFilter
}
/**
* ButtonHelper是一个帮助类,用于从 MovieClip 或 Sprite 实例创建交互式按钮。
* 该类将截获对象的鼠标事件,并自动调用 gotoAndStop 或 gotoAndPlay 到相应的动画标签,添加指针光标,并允许用户定义命中状态帧。
*
* ButtonHelper实例不需要加入stage,但应保留引用以防止垃圾收集。
*
* 注意:只有启用了{@link enableMouseOver},按钮的over状态才会触发。
*
* 案例:
* ```js
* var helper = new createjs.ButtonHelper(myInstance, "out", "over", "down", false, myInstance, "hit");
* myInstance.addEventListener("click", handleClick);
* function handleClick(event) {
* // Click Happened.
* }
* ```
*/
class ButtonHelper {
/**
*
* @param target 要管理的实例。
* @param outLabel 当鼠标指针移出按钮时要跳转到的标签或动画。
* @param overLabel 当鼠标指针悬浮在按钮时要跳转到的标签或动画。
* @param downLabel 当鼠标指针在按钮上按下时要跳转到的标签或动画。
* @param play 当按钮状态改变时,是调用"gotoAndPlay"还是"gotoAndStop"?
* @param hitArea 一个可选项目,用作按钮的点击区域。如果未对此进行定义,则将使用按钮的可见区域。请注意,hitState可以使用与“target”参数相同的实例。
* @param hitLabel hitArea实例上定义hitArea边界的标签或动画。如果这是null,那么将使用hitArea的默认状态。*
*/
constructor(target: Sprite|MovieClip, outLabel?: string, overLabel?: string, downLabel?: string, play?: boolean, hitArea?: DisplayObject, hitLabel?: string);
//constructor(target: MovieClip, outLabel?: string, overLabel?: string, downLabel?: string, play?: boolean, hitArea?: DisplayObject, hitLabel?: string);
// properties
/** 当用户按下目标时显示的标签名称或帧号。默认为“down”。 */
downLabel: string | number;
/** 当用户将鼠标悬停在目标上时显示的标签名称或帧号。默认为“out”。 */
outLabel: string | number;
/** 当用户将鼠标移出目标时显示的标签名称或帧号。默认为“over”。 */
overLabel: string | number;
/** 如果为true,则ButtonHelper将调用gotoAndPlay,如果为false,则将使用gotoAndStop。默认值为false。 */
play: boolean;
/** 此按钮助手的目标。 */
target: MovieClip | Sprite;
/** 启用或禁用目标上的按钮功能。 */
enabled: boolean;
// methods
/**
* @deprecated - 使用{@link enabled}属性代替
*/
setEnabled(value: boolean): void;
/**
* @deprecated - 使用{@link enabled}属性代替
*/
getEnabled(): boolean;
/**
* 返回此对象的字符串表示形式。
* @returns 字符串表示形式。
*/
toString(): string;
}
/**
* 将颜色变换应用于DisplayObjects。
*
* 案例:
*
* 本例绘制一个红色圆圈,然后将其转换为蓝色。这是通过将所有通道相乘为0(透明度通道除外,透明度通道设置为1),然后将255添加到蓝色通道来实现的。
* ```js
* var shape = new createjs.Shape().set({x:100,y:100});
* shape.graphics.beginFill("#ff0000").drawCircle(0,0,50);
*
* shape.filters = [
* new createjs.ColorFilter(0,0,0,1, 0,0,255,0)
* ];
* shape.cache(-50, -50, 100, 100);
* ```
* 有关应用滤镜的详细信息,请参见{@link Filter}。
*/
class ColorFilter extends Filter {
/**
*
* @param redMultiplier 与红色通道相乘的量。这是一个介于0和1之间的范围。
* @param greenMultiplier 与绿色通道相乘的量。这是一个介于0和1之间的范围。
* @param blueMultiplier 与蓝色通道相乘的量。这是一个介于0和1之间的范围。
* @param alphaMultiplier 与alpha通道相乘的量。这是一个介于0和1之间的范围。
* @param redOffset 相乘后要添加到红色通道的数量。这是一个介于-255和255之间的范围。
* @param greenOffset 相乘后要添加到绿色通道的数量。这是一个介于-255和255之间的范围。
* @param blueOffset 相乘后要添加到蓝色通道的数量。这是一个介于-255和255之间的范围。
* @param alphaOffset 相乘后要添加到alpha通道的数量。这是一个介于-255和255之间的范围。
*/
constructor(redMultiplier?: number, greenMultiplier?: number, blueMultiplier?: number, alphaMultiplier?: number, redOffset?: number, greenOffset?: number, blueOffset?: number, alphaOffset?: number);
// properties
/** 与红色通道相乘的量。这是一个介于0和1之间的范围。 */
alphaMultiplier: number;
/** 相乘后要添加到alpha通道的数量。这是一个介于-255和255之间的范围。 */
alphaOffset: number;
/** 与蓝色通道相乘的量。这是一个介于0和1之间的范围。 */
blueMultiplier: number;
/** 相乘后要添加到蓝色通道的数量。这是一个介于-255和255之间的范围。 */
blueOffset: number;
/** 与绿色通道相乘的量。这是一个介于0和1之间的范围。 */
greenMultiplier: number;
/** 相乘后要添加到绿色通道的数量。这是一个介于-255和255之间的范围。 */
greenOffset: number;
/** 与红色通道相乘的量。这是一个介于0和1之间的范围。 */
redMultiplier: number;
/** 相乘后要添加到红色通道的数量。这是一个介于-255和255之间的范围。 */
redOffset: number;
// methods
clone(): ColorFilter;
}
/**
* 提供用于组合矩阵以与ColorMatrixFilter一起使用的辅助函数。大多数方法都返回实例以方便链式调用。
*
* 案例:
* ```js
* myColorMatrix.adjustHue(20).adjustBrightness(50);
* ```
* 有关如何应用滤镜的示例,请参见{@link Filter},或有关如何使用ColorMatrix更改DisplayObject颜色的示例,参见{@link ColorMatrixFilter}。
*/
class ColorMatrix {
constructor(brightness?: number, contrast?: number, saturation?: number, hue?: number);
// methods
/**
* 通过将指定值添加到红色、绿色和蓝色通道来调整像素颜色的亮度。正值会使图像更亮,负值会使其更暗。
* @param value 介于-255和255之间的值,该值将添加到RGB通道中。
* @returns 返回该方法的ColorMatrix实例(适用于链式调用)
*/
adjustBrightness(value: number): ColorMatrix;
/**
* 调整亮度、对比度、饱和度和色相的快捷方式。
* 相当于按顺序调用adjustHue(色相)、adjustContrast(对比度)、adjustBrightness(亮度)、adjutoSaturation(饱和度)。
* @param brightness
* @param contrast
* @param saturation
* @param hue
* @returns 返回该方法的ColorMatrix实例(适用于链式调用)
*/
adjustColor(brightness: number, contrast: number, saturation: number, hue: number): ColorMatrix;
/**
* 调整像素颜色的对比度。正值将增加对比度,负值将降低对比度。
* @param value 介于-100和100之间的值。
* @returns 返回该方法的ColorMatrix实例(适用于链式调用)
*/
adjustContrast(value: number): ColorMatrix;
/**
* 调整像素颜色的色调。
* @param value 介于-180和180之间的值。
* @returns 返回该方法的ColorMatrix实例(适用于链式调用)
*/
adjustHue(value: number): ColorMatrix;
/**
* 调整像素的颜色饱和度。正值将增加饱和度,负值将降低饱和度(趋向灰度)。
* @param value 介于-100和100之间的值。
* @returns 返回该方法的ColorMatrix实例(适用于链式调用)
*/
adjustSaturation(value: number): ColorMatrix;
/**
* 返回此ColorMatrix实例的克隆。
*/
clone(): ColorMatrix;
/**
* danzen新增的声明,目前还不支持,请勿使用
* @param ...matrix
*/
concat(...matrix: number[]): ColorMatrix;
/**
* 将指定的矩阵与此矩阵连接(相乘)。
* @param matrix
*/
concat(matrix: ColorMatrix): ColorMatrix;
/**
* danzen新增的声明,目前还不支持,请勿使用
* @param ...matrix
*/
copy(...matrix: number[]): ColorMatrix;
/**
* 将指定矩阵的值复制到此矩阵。
* @param matrix
*/
copy(matrix: ColorMatrix): ColorMatrix;
/**
* 将矩阵重置为单位值。
*/
reset(): ColorMatrix;
/**
* 使用指定的值重置实例。
* @param brightness
* @param contrast
* @param saturation
* @param hue
*/
setColor( brightness: number, contrast: number, saturation: number, hue: number ): ColorMatrix;
toArray(): number[];
toString(): string;
}
/**
* 允许您执行复杂的颜色操作,如修改饱和度、亮度或反转。
* 有关更改颜色的详细信息,请参见{@link ColorMatrix}。
* 为了更容易地进行颜色变换,请考虑{@link ColorFilter}。
*
* 案例:
*
* 此示例创建一个红色圆圈,反转其色调,然后使其饱和以使其变亮。
* ```js
* var shape = new createjs.Shape().set({x:100,y:100});
* shape.graphics.beginFill("#ff0000").drawCircle(0,0,50);
*
* var matrix = new createjs.ColorMatrix().adjustHue(180).adjustSaturation(100);
* shape.filters = [
* new createjs.ColorMatrixFilter(matrix)
* ];
*
* shape.cache(-50, -50, 100, 100);
* ```
* 有关应用滤镜的详细信息,请参{@link Filter}。
*/
class ColorMatrixFilter extends Filter {
constructor(matrix: number[] | ColorMatrix);
// properties
/** 描述要执行的颜色操作的4x5矩阵。另请参阅ColorMatrix类。 */
matrix: number[] | ColorMatrix;
// methods
clone(): ColorMatrixFilter;
}
/**
* Container是一个可嵌套的显示列表,允许您使用复合显示元素。
* 例如,可以将手臂、腿、躯干和头部位图实例组合到一个“人物容器”中,并将它们变换为一个组,同时仍然可以相对移动各个部分。
* 容器的子级具有与其父级Container连接的transform和alpha属性。
* 例如,放置在x=50且阿尔法=0.7的Container中的x=100且阿尔法=0.5的Shape将在x=150且阿尔法=0.35处渲染到画布上。
* 容器有一些开销,所以通常不应该创建一个容器来容纳一个子容器。
*
* 案例:
* ```js
* var container = new createjs.Container();
* container.addChild(bitmapInstance, shapeInstance);
* container.x = 100;
* ```
*/
class Container extends DisplayObject {
constructor();
// properties
/** 显示列表中的子项数组。您通常应该使用子管理方法,如addChild、removeChild、swapChildren等,而不是直接访问它,但它是为高级用途而包含的。 */
children: DisplayObject[];
/** 指示是否独立启用此容器的子级以进行鼠标/指针交互。如果为false,子级将聚合在容器下——例如,单击子级形状将触发容器上的单击事件。说白了就是容器内子级是否可以接收鼠标/指针交互。 */
mouseChildren: boolean;
/** 返回容器中的子级数。 */
numChildren: number;
/** 如果为false,则tick将不会传播到此容器的子级。
* 这可以提供一些性能优势。除了阻止“tick”事件被调度外,它还将阻止某些显示对象上与tick相关的更新(例如Sprite&MovieClip帧前进、DOMElement可见性处理)。
* @default true
*/
tickChildren: boolean;
// methods
addChild<T extends DisplayObject>(child: T): T;
addChild<T extends DisplayObject>(child0: DisplayObject, lastChild: T): T;
addChild<T extends DisplayObject>(child0: DisplayObject, child1: DisplayObject, lastChild: T): T;
addChild<T extends DisplayObject>(child0: DisplayObject, child1: DisplayObject, child2: DisplayObject, lastChild: T): T;
addChild(...children: DisplayObject[]): DisplayObject;
addChildAt<T extends DisplayObject>(child: T, index: number): T;
addChildAt<T extends DisplayObject>(child0: DisplayObject, lastChild: T, index: number): T;
addChildAt<T extends DisplayObject>(child0: DisplayObject, child1: DisplayObject, lastChild: T, index: number): T;
addChildAt(...childOrIndex: (DisplayObject|number)[]): DisplayObject; // actually (...child: DisplayObject[], index: number)
clone(recursive?: boolean): Container;
/**
* 如果指定的显示对象是此容器或是此容器的后代(子、孙等),则返回true。
* @param child 要检查的显示对象。
* @returns 如果指定的显示对象是此容器或其子级之一,则返回true。
*/
contains(child: DisplayObject): boolean;
/**
* 返回指定索引处的子显示对象。如果索引超出范围,则返回null。
*
* 案例:
* ```js
* container.getChildAt(2);
* ```
* @param index 要返回的子显示对象的索引。
* @returns 指定索引处的子显示对象。如果索引超出范围,则返回null。
*/
getChildAt(index: number): DisplayObject;
/**
* 返回具有指定名称的首个子显示对象。
* @param name 要查找的显示对象的名称。
* @returns 具有指定名称的首个子显示对象。
*/
getChildByName(name: string): DisplayObject;
/**
* 返回显示列表中指定子显示对象的索引,如果不在显示列表中,则返回-1。
*
* 案例:
* ```js
* var index = container.getChildIndex(child);
* ```
* @param child 要检查的显示对象。
* @returns 显示列表中指定子显示对象的索引,如果不在显示列表中,则返回-1。
*/
getChildIndex(child: DisplayObject): number;
/**
* @deprecated - 使用{@link numChildren}属性代替。
*/
getNumChildren(): number;
/**