# Class (DynamicSyncScene)
提供组件自定义场景下相关帧率的配置。
> **说明:**
>
> - 本模块首批接口从API version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
>
> - 本Class首批接口从API version 12开始支持。
>
> - 以下接口需先使用UIContext中的requireDynamicSyncScene()方法获取DynamicSyncScene对象,再通过此实例调用对应方法。
## setFrameRateRange12+
setFrameRateRange(range: ExpectedFrameRateRange): void
设置期望帧率范围。
最终结果不一定是设置的帧率,会由系统能力做综合决策,尽量满足开发者的设置帧率。
**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------- | ---- | ---- |
| range | [ExpectedFrameRateRange](../apis-arkui/arkui-ts/ts-explicit-animation.md#expectedframeraterange11)| 是 | 设置期望的帧率范围。
默认值:{min:0, max:120, expected: 120} |
**示例:**
```ts
import { SwiperDynamicSyncSceneType, SwiperDynamicSyncScene } from '@kit.ArkUI';
@Entry
@Component
struct Frame {
@State ANIMATION: ExpectedFrameRateRange = { min: 0, max: 120, expected: 90 };
@State GESTURE: ExpectedFrameRateRange = { min: 0, max: 120, expected: 30};
private scenes: SwiperDynamicSyncScene[] = [];
build() {
Column() {
Text("动画"+ JSON.stringify(this.ANIMATION))
Text("跟手"+ JSON.stringify(this.GESTURE))
Row(){
Swiper() {
Text("one")
Text("two")
Text("three")
}
.width('100%')
.height('300vp')
.id("dynamicSwiper")
.backgroundColor(Color.Blue)
.autoPlay(true)
.onAppear(()=>{
this.scenes = this.getUIContext().requireDynamicSyncScene("dynamicSwiper") as SwiperDynamicSyncScene[];
})
}
Button("set frame")
.onClick(() => {
this.scenes.forEach((scenes: SwiperDynamicSyncScene) => {
if (scenes.type == SwiperDynamicSyncSceneType.ANIMATION) {
scenes.setFrameRateRange(this.ANIMATION);
}
if (scenes.type == SwiperDynamicSyncSceneType.GESTURE) {
scenes.setFrameRateRange(this.GESTURE);
}
});
})
}
}
}
```
## getFrameRateRange12+
getFrameRateRange(): ExpectedFrameRateRange
获取期望帧率范围。
**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**返回值:**
| 类型 | 说明 |
| ------------------- | ------- |
| [ExpectedFrameRateRange](../apis-arkui/arkui-ts/ts-explicit-animation.md#expectedframeraterange11) | 期望帧率范围。|
**示例:**
```ts
import { SwiperDynamicSyncSceneType, SwiperDynamicSyncScene } from '@kit.ArkUI';
@Entry
@Component
struct Frame {
@State ANIMATION: ExpectedFrameRateRange = { min: 0, max: 120, expected: 90 };
@State GESTURE: ExpectedFrameRateRange = { min: 0, max: 120, expected: 30 };
private scenes: SwiperDynamicSyncScene[] = [];
build() {
Column() {
Text("动画"+ JSON.stringify(this.ANIMATION))
Text("跟手"+ JSON.stringify(this.GESTURE))
Row(){
Swiper() {
Text("one")
Text("two")
Text("three")
}
.width('100%')
.height('300vp')
.id("dynamicSwiper")
.backgroundColor(Color.Blue)
.autoPlay(true)
.onAppear(() => {
this.scenes = this.getUIContext().requireDynamicSyncScene("dynamicSwiper") as SwiperDynamicSyncScene[];
})
}
Button("set frame")
.onClick(() => {
this.scenes.forEach((scenes: SwiperDynamicSyncScene) => {
if (scenes.type == SwiperDynamicSyncSceneType.ANIMATION) {
scenes.setFrameRateRange(this.ANIMATION);
scenes.getFrameRateRange();
}
if (scenes.type == SwiperDynamicSyncSceneType.GESTURE) {
scenes.setFrameRateRange(this.GESTURE);
scenes.getFrameRateRange();
}
});
})
}
}
}
```