Class (DynamicSyncScene)
提供组件自定义场景下相关帧率的配置。
说明:
本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本Class首批接口从API version 12开始支持。
本模块接口仅可在Stage模型下使用。
以下接口需先使用UIContext中的requireDynamicSyncScene方法获取DynamicSyncScene对象,再通过此实例调用对应方法。
setFrameRateRange12+
setFrameRateRange(range: ExpectedFrameRateRange): void
设置期望帧率范围。
最终结果不一定是设置的帧率,会由系统能力做综合决策,尽量满足开发者的设置帧率。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| range | ExpectedFrameRateRange | 是 | 设置期望的帧率范围。 默认值:{min:0, max:120, expected: 120} |
示例:
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 | 期望帧率范围。 |
示例:
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();
}
});
})
}
}
}