1# Class (DynamicSyncScene) 2 3提供组件自定义场景下相关帧率的配置。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8> 9> - 本Class首批接口从API version 12开始支持。 10> 11> - 以下接口需先使用UIContext中的requireDynamicSyncScene()方法获取DynamicSyncScene对象,再通过此实例调用对应方法。 12 13## setFrameRateRange<sup>12+</sup> 14 15setFrameRateRange(range: ExpectedFrameRateRange): void 16 17设置期望帧率范围。 18 19最终结果不一定是设置的帧率,会由系统能力做综合决策,尽量满足开发者的设置帧率。 20 21**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 22 23**系统能力:** SystemCapability.ArkUI.ArkUI.Full 24 25**参数:** 26 27| 参数名 | 类型 | 必填 | 说明 | 28| -------- | ---------- | ---- | ---- | 29| range | [ExpectedFrameRateRange](../apis-arkui/arkui-ts/ts-explicit-animation.md#expectedframeraterange11)| 是 | 设置期望的帧率范围。<br />默认值:{min:0, max:120, expected: 120} | 30 31**示例:** 32 33```ts 34import { SwiperDynamicSyncSceneType, SwiperDynamicSyncScene } from '@kit.ArkUI'; 35 36@Entry 37@Component 38struct Frame { 39 @State ANIMATION: ExpectedFrameRateRange = { min: 0, max: 120, expected: 90 }; 40 @State GESTURE: ExpectedFrameRateRange = { min: 0, max: 120, expected: 30}; 41 private scenes: SwiperDynamicSyncScene[] = []; 42 43 build() { 44 Column() { 45 Text("动画"+ JSON.stringify(this.ANIMATION)) 46 Text("跟手"+ JSON.stringify(this.GESTURE)) 47 Row(){ 48 Swiper() { 49 Text("one") 50 Text("two") 51 Text("three") 52 } 53 .width('100%') 54 .height('300vp') 55 .id("dynamicSwiper") 56 .backgroundColor(Color.Blue) 57 .autoPlay(true) 58 .onAppear(()=>{ 59 this.scenes = this.getUIContext().requireDynamicSyncScene("dynamicSwiper") as SwiperDynamicSyncScene[]; 60 }) 61 } 62 63 Button("set frame") 64 .onClick(() => { 65 this.scenes.forEach((scenes: SwiperDynamicSyncScene) => { 66 67 if (scenes.type == SwiperDynamicSyncSceneType.ANIMATION) { 68 scenes.setFrameRateRange(this.ANIMATION); 69 } 70 71 if (scenes.type == SwiperDynamicSyncSceneType.GESTURE) { 72 scenes.setFrameRateRange(this.GESTURE); 73 } 74 }); 75 }) 76 } 77 } 78} 79``` 80 81## getFrameRateRange<sup>12+</sup> 82 83getFrameRateRange(): ExpectedFrameRateRange 84 85获取期望帧率范围。 86 87**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 88 89**系统能力:** SystemCapability.ArkUI.ArkUI.Full 90 91**返回值:** 92 93| 类型 | 说明 | 94| ------------------- | ------- | 95| [ExpectedFrameRateRange](../apis-arkui/arkui-ts/ts-explicit-animation.md#expectedframeraterange11) | 期望帧率范围。| 96 97**示例:** 98 99```ts 100import { SwiperDynamicSyncSceneType, SwiperDynamicSyncScene } from '@kit.ArkUI'; 101 102@Entry 103@Component 104struct Frame { 105 @State ANIMATION: ExpectedFrameRateRange = { min: 0, max: 120, expected: 90 }; 106 @State GESTURE: ExpectedFrameRateRange = { min: 0, max: 120, expected: 30 }; 107 private scenes: SwiperDynamicSyncScene[] = []; 108 109 build() { 110 Column() { 111 Text("动画"+ JSON.stringify(this.ANIMATION)) 112 Text("跟手"+ JSON.stringify(this.GESTURE)) 113 Row(){ 114 Swiper() { 115 Text("one") 116 Text("two") 117 Text("three") 118 } 119 .width('100%') 120 .height('300vp') 121 .id("dynamicSwiper") 122 .backgroundColor(Color.Blue) 123 .autoPlay(true) 124 .onAppear(() => { 125 this.scenes = this.getUIContext().requireDynamicSyncScene("dynamicSwiper") as SwiperDynamicSyncScene[]; 126 }) 127 } 128 129 Button("set frame") 130 .onClick(() => { 131 this.scenes.forEach((scenes: SwiperDynamicSyncScene) => { 132 133 if (scenes.type == SwiperDynamicSyncSceneType.ANIMATION) { 134 scenes.setFrameRateRange(this.ANIMATION); 135 scenes.getFrameRateRange(); 136 } 137 138 if (scenes.type == SwiperDynamicSyncSceneType.GESTURE) { 139 scenes.setFrameRateRange(this.GESTURE); 140 scenes.getFrameRateRange(); 141 } 142 }); 143 }) 144 } 145 } 146} 147``` 148