|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑 4 x; L2 |; e& {! Y0 y) u" p6 N
' h6 o5 Q9 Q* C; T5 d% [7 F1 ^$ J如何获取Activity的统计信息?
& K; i. V2 Q; Y3D实体的属性面板中可以查看统计信息。
8 @5 Y8 v2 }8 l _' S8 `/ ~9 z9 ]8 p0 z" T* w. T: M: p
同时可以通过Object.stats属性来获取相关信息。
- u3 O R% s0 | _9 E* t" k/ `7 r6 H, G8 a" j
Activity也有属性面板5 v4 P+ L9 a# I+ C
0 t& I' {# ?2 X: q8 H0 e: f但是Activity却没有stats属性,无法通过属性获取统计信息。
; j% X$ Z$ D* l. Q+ q& j) p" ?3 j' f
原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。8 G4 T3 |0 ^& d) W; n4 O. a' G
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。
1 I4 T1 K2 J+ X/ P% S$ f7 r g8 A: D+ y4 [3 q N) A. A
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:9 `: O$ [6 N! [6 _0 t4 T
% s$ W9 P) P# [& G其中就有stats属性,可以获取统计信息。
% q u' {) [2 W/ @2 g; n
" z+ X& x- {; l, D0 A* x9 v3 H那如何使用代码获取Activity的统计信息呢?
. p) k' Y7 o% j% {% |# o: i第1种方法,使用getstat命令。6 i/ r; a: Y8 {( i
getstat (node object, str name, int flag [, var p1, var p2, var p3])
8 ^, O$ M" `3 S, ]Returns the statistic value for the given objectDescription5 A# f% T7 H, P/ z7 \" V, q5 v
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.2 p' I3 h; D+ _0 S& s
Example:) {* x/ @" M+ ?' d% i! L, U/ Y4 T2 U+ f
- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(( v$ t6 r( I9 n3 I' J2 M; Z
- // getstat requires between 4 and 6 parameters:
' [2 ]/ w9 E/ f - activity, // 1. the object (shared asset or activity) that has the statistic% X9 K# b" l) U
- "Content", // 2. the name of the statistic
0 @& y; w) z( \2 s- |- | - STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)3 D" J n1 r3 y! O$ T( z2 |' r
- // 4. an optional parameter the instance object (usually current)% ~' y! R6 \- B: T. P& ` g% H, H
- // 5. an additional parameter to help resolve which data to get* t4 p- h( Y0 u" S& L
- // 6. an additional parameter to help resolve which data to get
# j6 |/ P) |3 ]" c' _# m2 | - );
复制代码
5 a! C/ P8 o3 j% t第2种方法,转换activity的类型。! d Z9 n3 T0 U" i6 [# N$ Q% a
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?
/ F9 R! K/ a4 X8 l转换的方式有2种:
: h- V. |2 I# m( l3 ^" l* U方法1,使用as关键字:
6 _8 U/ J" z' W4 E- activity.as(Object).stats.input.value;
8 T0 |1 h" ^. o
复制代码 ; Z9 u1 L, V3 G* G
方法2,将activity声明为Object类型的变量:+ \9 h( g& C) t$ M$ l% E7 u. i2 m2 l. j$ q
- Object Obj_activity=activity;/ q5 D# f+ M/ c' c, \! q" w
- return Obj_activity.stats.input.value;
复制代码 0 U2 u0 v& k5 O
+ } F# c+ {! L0 M
& a& ?/ K& o5 w, h5 A$ ^! }
6 C3 r: L; }$ d& M" y" V5 |
1 G. a6 X# W4 X/ k. c
' X9 }' \0 a. \ A
5 Q4 P6 P7 c+ p) F
& ]* s9 i6 V3 f( y7 X |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|