@@ -695,14 +695,14 @@ scaleHeight | Number/None | 高度放缩系数
695
695
696
696
事件名 | 参数 | 介绍
697
697
-|-|-
698
- onEnded | - | 当动画结束后。
698
+ onEnded | - | 当动画结束后
699
699
700
- ##### 演示
700
+ ##### 案例
701
701
702
702
使用动画实现贴图按钮“点击继续”的「呼吸态」是最常见的实用应用,本演示将提供呼吸态按钮的实现:
703
703
704
704
``` js
705
- // 一个位于底部的 点击继续按钮
705
+ // 一个位于底部居中的 点击继续 按钮
706
706
const button = operaData .createFrame (FrameType .createImage , {
707
707
bottom: 20 ,
708
708
left: ' 50%' ,
@@ -750,12 +750,122 @@ storyLineX.add(button, goonButtonAnimationFadeOut);
750
750
751
751
### 全局变量
752
752
753
+ 全局变量是外界脚本(C#、JavaScript)与剧情内部“沟通”的桥梁,外界可以修改全局变量使得剧情内部完成基于[ 条件判断] ( #条件判断 ) 实现的不同逻辑分支,外界也可以通过监听某个全局变量值来实时监控剧情内部通过[ 属性修改] ( #frametypesetparam ) 产生的一些消息反馈。
754
+
755
+ 有关外界对全局变量的赋值与监听请阅读[ API使用文档] ( ./LaunchOpera.md ) ,本节仅介绍全局变量在剧情编辑时的创建及属性介绍。
756
+
757
+ #### FrameType.var
758
+
759
+ 全局变量目前以字符串类型进行内容存储,为方便使用一般在剧情最早的时候进行创建并挂载到主故事线中。
760
+
761
+ ##### 属性
762
+
763
+ 属性名 | 类型 | 介绍
764
+ -|-|-
765
+ value | String | 变量值
766
+ globalName | String/None | 全局变量名,设置后可供外界访问。缺省则为剧情内部全局变量,外界无法访问。
767
+
768
+ ##### 案例
769
+
770
+ ``` js
771
+ const var_Level0 = operaData .createFrame (FrameType .var , {
772
+ value: ' 1' ,
773
+ globalName: ' level0' , // 外界可根据此名称读取/监听该全局变量
774
+ });
775
+
776
+ storyLine .add (var_Level0); // 及时挂载到主故事线使其生效
777
+ ```
778
+
753
779
### 条件判断
754
780
755
- 条件判断
781
+ #### FrameType.if
782
+
783
+ 可以对某(两)个全局变量进行判断的关键动作帧。
784
+
785
+ ##### 属性
786
+
787
+ 属性名 | 类型 | 介绍
788
+ -|-|-
789
+ valueA | String/Frame.var | 需要对比的变量值或全局变量句柄
790
+ valueB | String/Frame.var | 需要对比的变量值或全局变量句柄
791
+
792
+ ##### 事件
793
+
794
+ 事件名 | 参数 | 介绍
795
+ -|-|-
796
+ isTrue | - | 当 valueA == valueB 时
797
+ isFalse | - | 当 valueA != valueB 时
798
+
799
+ ##### 案例
800
+
801
+ ``` js
802
+ // 创建变量
803
+ const var_Level0 = operaData .createFrame (FrameType .var , {
804
+ value: ' 1' ,
805
+ globalName: ' level0' , // 外界可根据此名称读取/监听该全局变量
806
+ });
807
+
808
+ storyLine .add (var_Level0); // 及时挂载到主故事线使其生效
809
+
810
+ const if_go_on = operaData .createFrame (FrameType .if , {
811
+ valueA: var_Level0,
812
+ valueB: ' 1' , // 判断 var_Level0 是否 == '1'
813
+ }, [
814
+ {
815
+ event : ' isTrue' ,
816
+ bind: [ ... ], // 成立时执行的故事线
817
+ },
818
+ {
819
+ event : ' isFalse' ,
820
+ bind: [ ... ], // 不成立时执行的故事线
821
+ }
822
+ ]);
823
+ ```
756
824
757
825
### 上报
758
826
827
+ 上报模块有助于帮助开发者量化启动剧情不同阶段的用户曝光情况分析用户体验,因此建议游戏开发者合理接入该能力。
828
+
829
+ #### FrameType.Report
830
+
831
+ 该上报本质使用的是 [ 启动场景上报分析] ( https://developers.weixin.qq.com/minigame/dev/guide/performance/perf-action-start-reportScene.html ) 能力,因此使用前应阅读该能力文档。
832
+
833
+ 注意:启动上报每个sceneId在一次启动过程中最多只能上报1次,因此在接入故事线打点时请务必确保路径只会执行1次同sceneId的上报。
834
+
835
+ ##### 属性
836
+
837
+ 属性名 | 类型 | 介绍
838
+ -|-|-
839
+ sceneId | String/Frame.var | 自定义上报场景ID
840
+ dimension | String/Frame.var/None | 自定义上报维度JSON字符串,请阅读上报说明填写
841
+ metric | String/Frame.var/None | 自定义上报指标JSON字符串,请阅读上报说明填写
842
+
843
+ ##### 案例
844
+
845
+ ``` js
846
+ // 创建好多个 report
847
+ const report_1001 = operaData .createFrame (FrameType .report , {
848
+ sceneId: ' 1001' ,
849
+ });
850
+ const report_1002 = operaData .createFrame (FrameType .report , {
851
+ sceneId: ' 1002' ,
852
+ });
853
+
854
+ // 合理的位置进行上报
855
+ video0 .setEvent ({
856
+ event : ' onEnded' ,
857
+ bind: [ report_1001 ],
858
+ });
859
+
860
+ ...
861
+
862
+ // 合理的位置进行上报
863
+ video1 .setEvent ({
864
+ event : ' onEnded' ,
865
+ bind: [ report_1002 ],
866
+ });
867
+ ```
868
+
759
869
## 6.常见Q&A
760
870
761
871
#### 6.1 图片资源可以使用网络图片吗?
0 commit comments