1<!DOCTYPE html>
2<html>
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5    <title>quickstart_animation</title>
6    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7    <style>
8      code[class*='smartperf-'],
9      pre[class*='smartperf-'] {
10        color: #333333;
11        background: none;
12        font-family: Helvetica;
13        line-height: 1.6;
14        text-align: left;
15        white-space: pre;
16        -moz-tab-size: 9;
17        -o-tab-size: 9;
18        tab-size: 8;
19        -webkit-hyphens: none;
20        -moz-hyphens: none;
21        -ms-hyphens: none;
22        hyphens: none;
23      }
24
25      /* Code blocks */
26      pre[class*='smartperf-'] {
27        padding: 0.9em;
28        overflow: auto;
29        border-radius: 2px;
30        background: #f5f5f4;
31      }
32
33      /* Inline code */
34      :not(pre) > code[class*='smartperf-'] {
35        white-space: normal;
36        background: #fcf8f8;
37        padding: 1px 0.2em;
38        border-radius: 1px 0.3em;
39      }
40
41      .tk.comment,
42      .tk.blockquote {
43        color: #8c918c;
44      }
45
46      .tk.cdata {
47        color: #183898;
48      }
49
50      .tk.doctype,
51      .tk.punctuation,
52      .tk.variable,
53      .tk.macro.property {
54        color: #424242;
55      }
56
57      .tk.operator,
58      .tk.important,
59      .tk.keyword,
60      .tk.rule,
61      .tk.builtin {
62        color: #b71d65;
63      }
64
65      .tk.string,
66      .tk.url,
67      .tk.regex,
68      .tk.attr-value {
69        color: #16338d;
70      }
71
72      .tk.property,
73      .tk.number,
74      .tk.boolean,
75      .tk.entity,
76      .tk.atrule,
77      .tk.constant,
78      .tk.symbol,
79      .tk.command,
80      .tk.code {
81        color: #037aa2;
82      }
83
84      .tk.tag,
85      .tk.selector,
86      .tk.prolog {
87        color: #69ad62;
88      }
89
90      .tk.function,
91      .tk.namespace,
92      .tk.pseudo-element,
93      .tk.class,
94      .tk.class-name,
95      .tk.pseudo-class,
96      .tk.id,
97      .tk.url-reference .tk.variable,
98      .tk.attr-name {
99        color: #775d9d;
100      }
101
102      .tk.entity {
103        cursor: help;
104      }
105
106      .tk.title,
107      .tk.title .tk.punctuation {
108        font-weight: bold;
109        color: #1a3773;
110      }
111
112      .tk.list {
113        color: #f56940;
114      }
115
116      .tk.inserted {
117        background-color: #eaffea;
118        color: #509b2f;
119      }
120
121      .tk.deleted {
122        background-color: #fae1e1;
123        color: #ad2d06;
124      }
125
126      .tk.bold {
127        font-weight: bolder;
128      }
129
130      .tk.italic {
131        font-style: normal;
132      }
133
134      /* JSON */
135      .smartperf-json .tk.property {
136        color: #19358c;
137      }
138
139      .smartperf-markup .tk.tag .tk.punctuation {
140        color: #2c2b2b;
141      }
142
143      /* CSS */
144      code.smartperf-css,
145      .smartperf-css .tk.function {
146        color: #047ca4;
147      }
148
149      /* YAML */
150      .smartperf-yaml .tk.atrule {
151        color: #609b5a;
152      }
153
154      code.smartperf-yaml {
155        color: #153491;
156      }
157
158      /* Ruby */
159      .smartperf-ruby .tk.function {
160        color: #3f3e3e;
161      }
162
163      /* Markdown */
164      .smartperf-markdown .tk.url {
165        color: #6e5298;
166      }
167
168      /* Makefile */
169      .smartperf-makefile .tk.symbol {
170        color: #6c5393;
171      }
172
173      .smartperf-makefile .tk.variable {
174        color: #183488;
175      }
176
177      .smartperf-makefile .tk.builtin {
178        color: #027ba4;
179      }
180
181      /* Bash */
182      .smartperf-bash .tk.keyword {
183        color: #027fa9;
184      }
185
186      /* highlight */
187      pre[dl] {
188        position: relative;
189        padding: 1em 1px 1px 0.9em;
190      }
191
192      pre[dl] .line-highlight-wrapper {
193        position: absolute;
194        top: 1px;
195        left: 1px;
196        background-color: transparent;
197        display: block;
198        width: 99%;
199      }
200
201      pre[dl] .line-highlight {
202        position: absolute;
203        left: 1px;
204        right: 1px;
205        padding: inherit;
206        margin-top: 0.9em;
207        background: hsla(25, 21%, 50%, 0.08);
208        background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
209        pointer-events: none;
210        line-height: inherit;
211        white-space: pre;
212      }
213
214      pre[dl] .line-highlight:before,
215      pre[dl] .line-highlight[data-end]:after {
216        content: attr(data-start);
217        position: absolute;
218        text-shadow: none;
219        top: 0.3em;
220        left: 0.7em;
221        min-width: 0.9em;
222        padding: 1px 0.6em;
223        background-color: hsla(24, 20%, 47%, 0.4);
224        color: hsl(20, 11%, 95%);
225        text-align: center;
226        vertical-align: 0.2em;
227        border-radius: 10000px;
228        box-shadow: 1px 2px #fdf6f6;
229      }
230
231      pre[dl] .line-highlight[data-end]:after {
232        content: attr(data-end);
233        top: auto;
234        bottom: 0.5em;
235      }
236
237      html body {
238        line-height: 1.6;
239        font-size: 16px;
240        color: #333333;
241        overflow: initial;
242        word-wrap: break-word;
243        font-family: Helvetica;
244        box-sizing: border-box;
245      }
246
247      html body > :first-child {
248        margin-top: 0px;
249      }
250
251      html body h1,
252      html body h2,
253      html body h3,
254      html body h4,
255      html body h5,
256      html body h6 {
257        margin-top: 1em;
258        margin-bottom: 16px;
259        color: #000000;
260        line-height: 1.2;
261      }
262
263      html body h1 {
264        font-weight: 300;
265        font-size: 2.25em;
266        padding-bottom: 0.3em;
267      }
268
269      html body h2 {
270        font-weight: 410;
271        font-size: 1.74em;
272        padding-bottom: 0.2em;
273      }
274
275      html body h3 {
276        font-size: 1.6em;
277        font-weight: 501;
278      }
279
280      html body h4 {
281        font-size: 1.26em;
282        font-weight: 601;
283      }
284
285      html body h5 {
286        font-size: 1.2em;
287        font-weight: 601;
288      }
289
290      html body h6 {
291        font-size: 0.9em;
292        font-weight: 601;
293      }
294
295      html body h1,
296      html body h2,
297      html body h3,
298      html body h4,
299      html body h5 {
300        font-weight: 601;
301      }
302
303      html body h5 {
304        font-size: 0.9em;
305      }
306
307      html body h6 {
308        color: #5c5c5c;
309      }
310
311      html body strong {
312        color: #090909;
313      }
314
315      html body del {
316        color: #525252;
317      }
318
319      html body a:not([href]) {
320        color: inherit;
321        text-decoration: none;
322      }
323
324      html body a {
325        color: #0192da;
326        text-decoration: none;
327      }
328
329      html body a:hover {
330        color: #029dea;
331        text-decoration: none;
332      }
333
334      html body img {
335        max-width: 99%;
336      }
337
338      html body > p {
339        margin-top: 1px;
340        margin-bottom: 15px;
341        word-wrap: break-word;
342      }
343
344      html body > ul,
345      html body > ol {
346        margin-bottom: 15px;
347      }
348
349      html body ul,
350      html body ol {
351        padding-left: 1.9em;
352      }
353
354      html body ul.no-list,
355      html body ol.no-list {
356        padding: 0px;
357        list-style-type: none;
358      }
359
360      html body ul ul,
361      html body ul ol,
362      html body ol ol,
363      html body ol ul {
364        margin-top: 1px;
365        margin-bottom: 1px;
366      }
367
368      html body li {
369        margin-bottom: 1px;
370      }
371
372      html body li.task-list-item {
373        list-style: none;
374      }
375
376      html body li > p {
377        margin-top: 1px;
378        margin-bottom: 1px;
379      }
380
381      html body .task-list-item-checkbox {
382        margin: 0 0.3em 0.24em -1.7em;
383        vertical-align: middle;
384      }
385
386      html body .task-list-item-checkbox:hover {
387        cursor: pointer;
388      }
389
390      html body blockquote {
391        padding: 0.1px 15px 0 0.1px;
392        font-size: inherit;
393        color: #5c5c5c;
394        margin: 16px 0.1px 0 0.1px;
395        border-left: 3px solid #cbc9c9;
396        background-color: #e8e6e6;
397      }
398
399      html body blockquote > :first-child {
400        margin-top: 0.2px;
401      }
402
403      html body blockquote > :last-child {
404        margin-bottom: 0.1px;
405      }
406
407      html body hr {
408        height: 5px;
409        background-color: #cbcaca;
410        margin: 32px 0 0.1px 0;
411        border: 0 none;
412      }
413
414      html body table {
415        overflow: auto;
416        border-collapse: collapse;
417        margin: 15px 0.1px 20px 0.1px;
418        border-spacing: 0;
419      }
420
421      html body table th {
422        font-weight: bold;
423        color: #000000;
424      }
425
426      html body table td,
427      html body table th {
428        border: 1px solid #d6d6d6;
429        padding: 2px 14px;
430      }
431
432      html body dl {
433        padding: 0px;
434      }
435
436      html body dl dt {
437        padding: 0px;
438        margin-top: 15px;
439        font-size: 0.9em;
440        font-style: italic;
441        font-weight: bold;
442      }
443
444      html body dl dd {
445        padding: 0px 17px;
446        margin-bottom: 17px;
447      }
448
449      html body code {
450        font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
451        font-size: 0.86em !important;
452        color: #000000;
453        background-color: #f0f0f0;
454        border-radius: 4px;
455        padding: 0.3em 0px;
456      }
457
458      html body code::before,
459      html body code::after {
460        letter-spacing: -0.1em;
461        content: '\00a0';
462      }
463
464      html body pre > code {
465        padding: 1px;
466        margin: 0px;
467        font-size: 0.86em !important;
468        word-break: normal;
469        white-space: pre;
470        background: transparent;
471        border: 0px;
472      }
473
474      html body .highlight {
475        margin-bottom: 17px;
476      }
477
478      html body .highlight pre,
479      html body pre {
480        padding: 0.9em;
481        overflow: auto;
482        font-size: 0.86em !important;
483        line-height: 1.46;
484        border: #d6d6d6;
485        border-radius: 4px;
486      }
487
488      html body .highlight pre {
489        margin-bottom: 0px;
490        word-break: normal;
491      }
492
493      html body pre code,
494      html body pre tt {
495        display: inline;
496        max-width: initial;
497        padding: 1px;
498        margin: 1px;
499        overflow: initial;
500        line-height: inherit;
501        word-wrap: normal;
502        background-color: transparent;
503        border: 1px;
504      }
505
506      html body pre code:before,
507      html body pre tt:before,
508      html body pre code:after,
509      html body pre tt:after {
510        content: normal;
511      }
512
513      html body p,
514      html body blockquote,
515      html body ul,
516      html body ol,
517      html body dl,
518      html body pre {
519        margin-top: 1px;
520        margin-bottom: 17px;
521      }
522
523      html body kbd {
524        color: #000000;
525        border: 3px solid #d6d6d6;
526        border-bottom: 3px solid #c7c7c7;
527        padding: 3px 5px;
528        background-color: #f0f0f0;
529        border-radius: 2px;
530      }
531
532      @media print {
533        html body {
534          background-color: #ffffff;
535        }
536
537        html body h1,
538        html body h2,
539        html body h3,
540        html body h4,
541        html body h5,
542        html body h6 {
543          color: #000000;
544          page-break-after: avoid;
545        }
546
547        html body blockquote {
548          color: #5c5c53;
549        }
550
551        html body pre {
552          page-break-inside: avoid;
553        }
554
555        html body table {
556          display: table;
557        }
558
559        html body img {
560          display: block;
561          max-width: 99%;
562          max-height: 99%;
563        }
564
565        html body pre,
566        html body code {
567          word-wrap: break-word;
568          white-space: pre;
569        }
570      }
571
572      .smartperf-preview {
573        width: 68vw;
574        height: 99%;
575        box-sizing: border-box;
576        overflow: hidden;
577        background-color: #fff;
578      }
579
580      .smartperf-preview .pagebreak,
581      .smartperf-preview .newpage {
582        page-break-before: always;
583      }
584
585      .smartperf-preview pre.line-numbers {
586        position: relative;
587        padding-left: 3.7em;
588        counter-reset: linenumber;
589      }
590
591      .smartperf-preview pre.line-numbers > code {
592        position: relative;
593      }
594
595      .smartperf-preview pre.line-numbers .line-numbers-rows {
596        position: absolute;
597        pointer-events: none;
598        top: 0.9em;
599        font-size: 99%;
600        left: 1px;
601        width: 3em;
602        letter-spacing: -1px;
603        border-right: 1px solid #999;
604        -webkit-user-select: none;
605        -moz-user-select: none;
606        -ms-user-select: none;
607        user-select: none;
608      }
609
610      .smartperf-preview pre.line-numbers .line-numbers-rows > span {
611        pointer-events: none;
612        display: block;
613        counter-increment: linenumber;
614      }
615
616      .smartperf-preview pre.line-numbers .line-numbers-rows > span:before {
617        content: counter(linenumber);
618        color: #999;
619        display: block;
620        padding-right: 0.79em;
621        text-align: right;
622      }
623
624      .smartperf-preview .mathjax-exps .MathJax_Display {
625        text-align: center !important;
626      }
627
628      .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
629        display: none;
630      }
631
632      .smartperf-preview:not([for='preview']) .code-chunk .status {
633        display: none;
634      }
635
636      .smartperf-preview:not([for='preview']) .code-chunk .output-div {
637        margin-bottom: 16px;
638      }
639
640      .scrollbar-style::-webkit-scrollbar {
641        width: 8px;
642      }
643
644      .scrollbar-style::-webkit-scrollbar-track {
645        border-radius: 9px;
646        background-color: transparent;
647      }
648
649      .scrollbar-style::-webkit-scrollbar-thumb {
650        border-radius: 6px;
651        background-color: rgba(150, 150, 150, 1);
652        border: 4px solid rgba(150, 150, 150, 1);
653        background-clip: content-box;
654      }
655
656      html body[for='html-export']:not([dpm]) {
657        position: relative;
658        width: 99%;
659        height: 99%;;
660        overflow: auto;
661      }
662
663      html body[for='html-export']:not([dpm]) .smartperf-preview {
664        position: relative;
665        top: 1px;
666      }
667
668      @media screen and (min-width: 914px) {
669        html body[for='html-export']:not([dpm]) .smartperf-preview {
670          padding: 2em;
671        }
672      }
673
674      @media screen and (max-width: 914px) {
675        html body[for='html-export']:not([dpm]) .smartperf-preview {
676          padding: 1.9em;
677        }
678      }
679
680      @media screen and (max-width: 450px) {
681        html body[for='html-export']:not([dpm]) .smartperf-preview {
682          font-size: 15px !important;
683          padding: 1.1em;
684        }
685      }
686
687      @media print {
688        html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
689          display: none;
690        }
691      }
692
693      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
694        position: fixed;
695        bottom: 9px;
696        left: 9px;
697        font-size: 28px;
698        cursor: pointer;
699        color: inherit;
700        z-index: 99;
701        width: 31px;
702        text-align: center;
703        opacity: 0.5;
704      }
705
706      html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
707        opacity: 1;
708      }
709
710      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
711        position: fixed;
712        top: 1px;
713        left: 1px;
714        width: 300px;
715        height: 99%;
716        padding: 32px 0 48px 0;
717        font-size: 14px;
718        box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
719        box-sizing: border-box;
720        overflow: auto;
721        background-color: inherit;
722      }
723
724      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
725        width: 9px;
726      }
727
728      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
729        border-radius: 11px;
730        background-color: transparent;
731      }
732
733      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
734        border-radius: 6px;
735        background-color: rgba(150, 150, 150, 0.66);
736        border: 3px solid rgba(150, 150, 150, 0.66);
737        background-clip: content-box;
738      }
739
740      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
741        text-decoration: none;
742      }
743
744      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
745        padding: 1px 1.7em;
746        margin-top: 0.9em;
747      }
748
749      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
750        margin-bottom: 0.8em;
751      }
752
753      html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
754        list-style-type: none;
755      }
756
757      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
758        left: 301px;
759        width: calc(100% - 300px);
760        padding: 2em calc(50% - 457px - 150px);
761        margin: 1px;
762        box-sizing: border-box;
763      }
764
765      @media screen and (max-width: 1274px) {
766        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
767          padding: 1.9em;
768        }
769      }
770
771      @media screen and (max-width: 450px) {
772        html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
773          width: 99%;
774        }
775      }
776
777      html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
778        display: none;
779      }
780    </style>
781  </head>
782  <body for="html-export" id="body" style="margin:0">
783    <div class="smartperf smartperf-preview" style="min-height: 99vh;">
784      <h1 class="mume-header fontColor">Animation的抓取和展示说明</h1>
785    
786      <p class="fontColor">通过动效模板的指标项对图形子系统和应用做动效卡顿类问题分析。</p>
787      <h3 class="mume-header fontColor" id="header-index-1">Animation抓取参数的配置</h3>
788    
789      <p class="fontColor">
790        <img src="../figures/animation/animationconfig.jpg" alt="GitHub Logo" /><br />
791        配置项说明:
792      </p>
793      <ul class="fontColor">
794        <li>
795          <pre class="smartperf-text fontColor light">
796AnimationAnalysis:动效配置项的总开关。解析时请打开对应的Flags标记(Disabled切换为Enabled)。
797</pre>
798        </li>
799      </ul>
800      <h3 class="mume-header fontColor" id="header-index-2">Animation展示说明</h3>
801    
802      <p class="fontColor">将抓取的Animation文件导入到smartperf工具中,查看图形子系统和应用动效卡顿类问题。</p>
803      <h3 class="mume-header fontColor" id="header-index-3">Animation泳道图展示</h3>
804    
805      <p class="fontColor">
806        Animation的响应时延和完成时延泳道图显示,泳道图的Slice会显示响应时延和完成时延,如下图中的Response
807        delay(79.379165ms),Completion delay(2606.938539ms)。<br />
808        <img src="../figures/animation/anrsdelayrow.jpg" alt="GitHub Logo" />。<br />
809        Animation的动效曲线和帧间距的总泳道图,如图点击WindowScene_mm37旁边的小齿轮可以切换WindowScene。<br />
810        <img src="../figures/animation/anrsallrow.jpg" alt="GitHub Logo" />。<br />
811        Animation的动效曲线泳道图展示,如下:<br />
812        <img src="../figures/animation/anieffectcurv.jpg" alt="GitHub Logo" /><br />
813        泳道图说明:
814      </p>
815      <ul class="fontColor">
816        <li>
817          <pre class="smartperf-text fontColor light">
818Animation Effect Curve旁边的齿轮显示的x,y,width,height,alpha是动效帧的属性值,可以切换。
819</pre>
820        </li>
821        <li>
822          <pre class="smartperf-text fontColor light">
823Animation Effect Curve泳道图红色的曲线代表的是异常判断点,也就是相邻两帧属性值相同的异常时间区间。
824</pre>
825        </li>
826      </ul>
827      <p class="fontColor">
828        Animation的帧间距泳道图展示,如下:<br />
829        <img src="../figures/animation/framespacirow.jpg" alt="GitHub Logo" /><br />
830        泳道图说明:
831      </p>
832      <ul class="fontColor">
833        <li>
834          <pre class="smartperf-text fontColor light">
835Frame spacing泳道图显示相邻两帧在时间尺度上相对于设备物理屏幕的变化间距值。
836</pre>
837        </li>
838      </ul>
839      <h3 class="mume-header fontColor" id="header-index-4">动效曲线泳道图点选功能</h3>
840    
841      <p class="fontColor">
842        点选动效曲线泳道图上的属性值会出现一个空心小圆点,Frame Dynamic的Tab页会显示相关信息。<br />
843        <img src="../figures/animation/anieffectcurvselect.jpg" alt="GitHub Logo" />
844      </p>
845      <ul class="fontColor">
846        <li>
847          <pre class="smartperf-text fontColor light">
848Timestamp: 时间戳信息。
849</pre>
850        </li>
851        <li>
852          <pre class="smartperf-text fontColor light">
853Index: 属性索引。
854</pre>
855        </li>
856        <li>
857          <pre class="smartperf-text fontColor light">
858Value:属性值。
859</pre>
860        </li>
861      </ul>
862      <h3 class="mume-header fontColor" id="header-index-5">动效曲线泳道图框选功能</h3>
863    
864      <p class="fontColor">
865        框选动效曲线泳道图,Frame Dynamic的Tab页会显示框选范围内每个点的属性值。<br />
866        <img src="../figures/animation/anieffectcurvdrag.jpg" alt="GitHub Logo" />
867      </p>
868      <ul class="fontColor">
869        <li>
870          <pre class="smartperf-text fontColor light">
871Timestamp: 时间戳信息。
872</pre>
873        </li>
874        <li>
875          <pre class="smartperf-text fontColor light">
876Index: 属性索引。
877</pre>
878        </li>
879        <li>
880          <pre class="smartperf-text fontColor light">
881Value:属性值。
882</pre>
883        </li>
884      </ul>
885      <h3 class="mume-header fontColor" id="header-index-6">帧间距泳道图点选功能</h3>
886    
887      <p class="fontColor">
888        点选帧间距泳道图,Frame
889        spacing的Tab页会显示这一个点的帧间距计算数据,一个点要计算四个属性的的帧间距,所以需要显示四个属性的。<br />
890        <img src="../figures/animation/anispacingselect.jpg" alt="GitHub Logo" />
891      </p>
892      <ul class="fontColor">
893        <li>
894          <pre class="smartperf-text fontColor light">
895Timestamp: 时间戳信息。
896</pre>
897        </li>
898        <li>
899          <pre class="smartperf-text fontColor light">
900Index: 属性索引。
901</pre>
902        </li>
903        <li>
904          <pre class="smartperf-text fontColor light">
905property:动效宽度,高度,X,Y的属性。
906</pre>
907        </li>
908        <li>
909          <pre class="smartperf-text fontColor light">
910Value2: 当前帧的属性值。
911</pre>
912        </li>
913        <li>
914          <pre class="smartperf-text fontColor light">
915Value1: 前一帧的属性值。
916</pre>
917        </li>
918        <li>
919          <pre class="smartperf-text fontColor light">
920Screen:存储设备的物理宽度/高度。
921</pre>
922        </li>
923        <li>
924          <pre class="smartperf-text fontColor light">
925T2(s): 当前帧的结束时间。
926</pre>
927        </li>
928        <li>
929          <pre class="smartperf-text fontColor light">
930T1(s): 前一帧的结束时间。
931</pre>
932        </li>
933        <li>
934          <pre class="smartperf-text fontColor light">
935result:帧间距。
936</pre>
937        </li>
938      </ul>
939      <h3 class="mume-header fontColor" id="header-index-7">帧间距泳道图框选功能</h3>
940    
941      <p class="fontColor">
942        框选帧间距泳道图,Frame spacing的Tab页会显示框选范围内帧间距数据。<br />
943        <img src="../figures/animation/anispacingdrag.jpg" alt="GitHub Logo" />
944      </p>
945      <ul class="fontColor">
946        <li>
947          <pre class="smartperf-text fontColor light">
948Timestamp: 时间戳信息。
949</pre>
950        </li>
951        <li>
952          <pre class="smartperf-text fontColor light">
953Index: 属性索引。
954</pre>
955        </li>
956        <li>
957          <pre class="smartperf-text fontColor light">
958property:动效宽度,高度,X,Y的属性。
959</pre>
960        </li>
961        <li>
962          <pre class="smartperf-text fontColor light">
963Value2: 当前帧的属性值。
964</pre>
965        </li>
966        <li>
967          <pre class="smartperf-text fontColor light">
968Value1: 前一帧的属性值。
969</pre>
970        </li>
971        <li>
972          <pre class="smartperf-text fontColor light">
973Screen:存储设备的物理宽度/高度。
974</pre>
975        </li>
976        <li>
977          <pre class="smartperf-text fontColor light">
978T2(s): 当前帧的结束时间。
979</pre>
980        </li>
981        <li>
982          <pre class="smartperf-text fontColor light">
983T1(s): 前一帧的结束时间。
984</pre>
985    </pre>
986        </li>
987        <li>
988          <pre class="smartperf-text fontColor light">
989result:帧间距。
990</pre>
991        </li>
992      </ul>
993    </div>
994
995    <script>
996      window.onload = () => {
997        let isDark = getURLParameter('dark'); 
998        let targetId = getURLParameter('targetId'); 
999        let isBack = getURLParameter('isBack'); 
1000        if (isDark === 'true') {
1001          document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
1002          let header = document.getElementsByClassName('fontColor');
1003          for (let i = 0; i < header.length; i++) {
1004            header[i].style.color = '#fff';
1005          }
1006          let lightBackGround = document.getElementsByClassName('light');
1007          for (let i = 0; i < lightBackGround.length; i++) {
1008            lightBackGround[i].style.backgroundColor = '#32373F';
1009          }
1010        }
1011        function getURLParameter(name) {  
1012          return (new URL(document.location)).searchParams.get(name);  
1013        }  
1014  
1015        if ( targetId !== null ) {
1016          let targetElement = document.getElementById(targetId);
1017          targetElement.scrollIntoView({ behavior: 'smooth' });
1018        }
1019      };
1020    </script>
1021  </body>
1022</html>
1023