|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
' |; Y8 H) c$ H. Y8 R6 x; t+ ^" r
' q n8 P$ V v j9 f6 D! `0 b \. `! f如何获取Activity的统计信息?
7 k- p: j& Y: a$ R8 c! \3 \3D实体的属性面板中可以查看统计信息。; K% m) H8 H9 a1 Y# J
% d `4 B% J8 s n( y d8 \. `同时可以通过Object.stats属性来获取相关信息。3 X; ?: Q3 b$ n
9 q0 `, s; N1 Z% k }Activity也有属性面板
! N: g' w, N( e& O# |4 r4 r8 E. t/ k$ J) X6 i- b8 b& }6 C7 j
但是Activity却没有stats属性,无法通过属性获取统计信息。
" v& m6 G/ P$ m' q. S/ l7 {7 E8 \' [- a+ S2 o& s1 \ Z+ K" \0 H
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。
X" m, G" ?! E3 \treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。$ k6 y. J, ^9 T. J
# l7 X }( Q* n1 i" C8 Z- i0 Q2 E1 i作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:
$ R1 I! A6 e' ^
- P/ T6 w+ {* e+ c: s, s其中就有stats属性,可以获取统计信息。
4 ~& m7 i0 V' ?6 E. x% b' P( }
; v2 z2 [5 d" W那如何使用代码获取Activity的统计信息呢?
9 e5 C* i4 F+ d' ?# o第1种方法,使用getstat命令。
$ K+ D- `3 {/ J; ? [' Q% {getstat (node object, str name, int flag [, var p1, var p2, var p3])- X J. m. x6 t
Returns the statistic value for the given objectDescription
, Q. g0 t5 G& qIt is preferred to use Object.stats instead. Gets the specified statistic from the given object.
( O0 j# I" h8 k: _ U' AExample:
: }/ `, Z1 e# z, l; s- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(
3 \: F( P2 n" x( r. n, P d - // getstat requires between 4 and 6 parameters:; O# o" N7 Z9 \
- activity, // 1. the object (shared asset or activity) that has the statistic: Q, U |) ?: v9 `$ j7 [/ s
- "Content", // 2. the name of the statistic( D- o$ e- `7 |0 D1 Q
- STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)- K" g0 }% [. i! c
- // 4. an optional parameter the instance object (usually current). J( U4 m4 O1 k2 `" _: T" i* Y
- // 5. an additional parameter to help resolve which data to get2 _% g9 L+ x$ r0 f! k6 I
- // 6. an additional parameter to help resolve which data to get6 n" ?$ ?8 a4 j. ]
- );
复制代码
, i w" D# ?% J7 o, ?第2种方法,转换activity的类型。
6 O) {' e1 o' b0 `# p/ h$ g6 N既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
2 u: z" Y. ]( y9 x/ L! y转换的方式有2种:; L; ?6 O4 i9 [+ _5 x0 y: [
方法1,使用as关键字:
& J/ [, {7 Z( e, [2 U: q ]6 i. \- activity.as(Object).stats.input.value;# {! r1 [. `/ R
复制代码
# T5 _7 z& ]9 e9 U0 f5 C9 p8 s: L( A5 O方法2,将activity声明为Object类型的变量:1 \- P2 z7 m3 V5 A- m
- Object Obj_activity=activity;
' M9 X- Q# H, h; i& F4 \ - return Obj_activity.stats.input.value;
复制代码 , Y0 q3 i7 u, F, d9 s* c2 k$ a; {) ]& F2 B
. d& { D% K4 I' Q( U+ \
; @' h Y' r8 A9 ?4 e( _1 Q# ?7 \
7 h, t9 R9 ~4 C, S' x# \! e+ w) u7 X1 a
$ M% w6 }% f' P$ T% P8 O
/ }) s8 F; s ~. V1 K- y
8 P, S# C) o4 M* \) L2 k. k |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|