|
本帖最后由 zorsite 于 2022-11-29 15:42 编辑
% P) k# t5 o5 n# q6 d) k) l! H$ I
如何获取Activity的统计信息?
/ e. J) m5 k* d' F" E$ {2 o3D实体的属性面板中可以查看统计信息。9 } B& e* x' M5 N6 I: U
2 l& E6 M; |0 C2 [, a
同时可以通过Object.stats属性来获取相关信息。: `) R" I" {; K6 Q
: ~/ K* [3 t) a! ~" `/ |
Activity也有属性面板
2 \7 Z2 I! d" a$ b4 n. J
7 L- q! K8 k" i7 C" x G9 h但是Activity却没有stats属性,无法通过属性获取统计信息。) l8 `' t4 Y4 o) |0 ]# x8 C" m
/ p8 q4 @/ B+ h' }原因在于当我们使用current关键字的时候,current被声明为Object对象,而activity被声明为treenode对象。0 k( L) v7 f5 m# j
treenode作为Object的父类,其属性和方法不如其子类Object那样丰富。1 }0 e( P: b+ V6 N. A5 Y9 n
: O% }' a7 @; W+ _
作为treenode的子类,Object对象除了有treenode的属性外,还具有以下属性:/ N, I. w& ~5 o; A
$ |( f* }5 Q/ [( R7 |. I" a
其中就有stats属性,可以获取统计信息。& ^3 t% n+ P; x+ `/ j0 s) N
3 f' @3 f% g5 f" l, }; p3 w
那如何使用代码获取Activity的统计信息呢?
; w" V* R1 H2 e3 l3 `第1种方法,使用getstat命令。4 Z5 V4 I. y) A% K% v7 A* I
getstat (node object, str name, int flag [, var p1, var p2, var p3])* Z" A y8 `9 }" o3 D
Returns the statistic value for the given objectDescription P' J# O! _2 o% U
It is preferred to use Object.stats instead. Gets the specified statistic from the given object.
. U/ P/ K) G$ n( i: n! F. o' _Example:4 y* ~9 v) W: [& X0 m
- getstat(activity, "Content", STAT_CURRENT)
复制代码- getstat(activity, "Input", STAT_CURRENT)
复制代码- getstat(activity, "Staytime", STAT_AVERAGE)
复制代码- double avgContent = getstat(0 y3 o, y2 N* r S% K4 ~3 u: J4 I! k
- // getstat requires between 4 and 6 parameters:
# \& l' i" [5 s; i4 \: g B - activity, // 1. the object (shared asset or activity) that has the statistic C4 a/ d: Z r: v z1 @
- "Content", // 2. the name of the statistic' h) V% a, [. I
- STAT_AVERAGE, // 3. the desired value from the statistic (could also be STAT_CURRENT, STAT_MIN, or STAT_MAX)
, X6 N* u# g4 T- v - // 4. an optional parameter the instance object (usually current)6 e" Z0 s) v9 M0 w
- // 5. an additional parameter to help resolve which data to get
+ W3 P/ a3 v y+ {) u% q4 c! t - // 6. an additional parameter to help resolve which data to get
% R# O2 s& @& l% V, U - );
复制代码
4 V$ _ p" R! y* W: y) U第2种方法,转换activity的类型。, h- I A8 A- M S
既然Object对象有stats属性,那把activity从treenode类型转换为Object类型不就可以了?. x9 I) }3 N8 _7 Y* h% f
转换的方式有2种:) L' u0 E, h, }6 P# |
方法1,使用as关键字:# ?0 ~; M4 W5 g: F$ R6 s
- activity.as(Object).stats.input.value;4 D, T# K2 F; ~2 N) S
复制代码 0 Y1 l- z8 s& p$ S5 ?5 ?
方法2,将activity声明为Object类型的变量:' ~9 H) i4 [* a* P) a
- Object Obj_activity=activity;( F+ O; S& b: ]2 }1 w; X# Z2 N& `$ [
- return Obj_activity.stats.input.value;
复制代码
$ u( g( L9 P4 | ~+ h4 B
/ e" q S( h# I& Y7 U* o8 ?% v
0 `* F; w+ D& j" K" {. {8 j( z/ c4 \( N5 e& b' \5 M- G
) i+ Y$ W6 L& r( `+ ]7 S0 `5 b
2 }4 |. ^! i$ G" [3 s/ }) x f a
1 U8 r) e9 n. P; ~ c4 V
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|