|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
5 _7 J3 m0 I W, A2 ?+ X- G; k) z1 E# K, e6 P2 b) [" E
如何获取Activity的统计信息?7 _' t$ n' y1 {" o, P; @
3D实体的属性面板中可以查看统计信息。% h$ s. f( {9 z" E* _2 i! c
5 l; G* L! F; ]: S! _ o5 Y同时可以通过Object.stats属性来获取相关信息。& H" Y, `% d& f! ^; H+ j% k: \
# }. C) v, ^! ?4 X; ~Activity也有属性面板! v& y/ H" t% ?; K
( K( m+ u: E. R/ {# S% w( u' e但是Activity却没有stats属性,无法通过属性获取统计信息。1 L# I8 S6 X5 {0 Q* b) V W
" W: S- {) v) }5 Q- z$ C原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。1 u' }" f0 M+ r! r0 I( W
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。/ ]6 m# E$ Z! C1 t
9 G! b& C* u3 ^; {; ?
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:: l, T" {( f, ?% ?9 k
# D- n) G$ h+ K2 w" P
其中就有stats属性,可以获取统计信息。
$ Z! x, N7 I) l" _
2 I/ z4 { z& ~; f那如何使用代码获取Activity的统计信息呢?4 J9 y0 K! F8 i% s3 c1 X6 v6 n
第1种方法,使用getstat命令。$ A* z6 Z# n) _$ y& I* Z
getstat (node object, str name, int flag [, var p1, var p2, var p3])
5 q5 p8 x& Q9 r* ?: CReturns the statistic value for the given objectDescription
5 C, M8 }3 s6 e% ]: s, zIt is preferred to use Object.stats instead. Gets the specified statistic from the given object., `1 W; ~9 f( ~
Example:2 y# {8 E. ^) c9 _3 b
- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(" O4 ?8 Q b% }% Z- M
- // getstat requires between 4 and 6 parameters:
x( T7 U& Q( y6 i7 k9 p - activity, // 1. the object (shared asset or activity) that has the statistic
1 J5 D" T' W- t' l- ?+ r$ U @: A - "Content", // 2. the name of the statistic+ e6 i' E5 l" z/ a; m, e8 C W
- STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
+ h/ e+ X- N) F: U1 P - // 4. an optional parameter the instance object (usually current). `6 r8 @$ l0 {# ^
- // 5. an additional parameter to help resolve which data to get
* J* R6 O9 d% i - // 6. an additional parameter to help resolve which data to get
9 D& P/ U7 _. y0 Z% T! U3 V Y - );
复制代码 + `! H) _3 C- ^1 }# l) q) @
第2种方法,转换activity的类型。1 [& j+ j8 ]# \; E
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
1 d4 t) A" {4 p' ~转换的方式有2种:
- H0 u3 b0 n5 ^7 s, g, C方法1,使用as关键字:2 ~ C+ i4 S1 j4 l
- activity.as(Object).stats.input.value;/ y" L p( ?. }3 s
复制代码
! ?* E8 [. m1 N. H7 @9 F0 w) h- [方法2,将activity声明为Object类型的变量:9 y: l, \: i9 t O0 G3 Y9 ^
- Object Obj_activity=activity;
& k9 g1 t5 J! {$ H; c2 l - return Obj_activity.stats.input.value;
复制代码
! D0 H2 T* C5 y; G+ y4 g: X* a* T( q$ J3 {, i% R
- Y6 g# D9 g- {- z0 w% h* L
2 J, g# \) @3 E$ R/ L, }
7 L* y1 q; [" U4 n. ?/ t/ K. g; [* Z. h- x# q. i( O1 i. m
) _, |7 z8 T8 P+ R& E" Z( @
4 L9 R* s4 K7 c0 q, {. K' A
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|