代码拉取完成,页面将自动刷新
【任务描述】
使用Canvas组件,在onReady的回调里边,我想使用setInterval方法定时绘制,但是实际测试不起作用呀,测试代码如下:
@Entry
@Component
struct Index {
private settings: RenderingContextSettings = new RenderingContextSettings(true)
private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Canvas(this.context)
.width('100%')
.height('100%')
.backgroundColor('#ffff00')
.onReady(() =>{
this.context.fillStyle = '#0000ff'
this.context.fillRect(20, 160, 150, 100)
var progress = 10;
this.context.lineWidth = 4;
var id = setInterval(() => {
// 绘制进度
this.context.arc(130, 330, 45, 0, progress / 100 * Math.PI * 2);
this.context.stroke()
progress += 10;
if(progress > 100) {
clearInterval(id)
}
},1000);
})
}
.width('100%')
.height('100%')
}
}
运行结果如下:
请问:是我使用的方式不对吗?还是说目前Canvas不可以这样使用喃?希望专家们指点一下,多谢啦
我用的环境如下:
IDE: DevEco Studio 3.0 Beta3 for OpenHarmony(Build Version: 3.0.0.900, built on March 30, 2022)
SDK: API 8 (3.1.5.5)
【解决方案】
【任务来源】
开发者好,该问题我们会尽快确认,还请谅解。
目前Canvas组件支持的通用事件不存在定时器的绘制调用,若您想进一步探究代码的写法,还请在功能仓arkui_ace_engine提问:https://gitee.com/openharmony/arkui_ace_engine
已在ace仓提问了哈:#I57VSJ:Canvas组件,在setInterval内绘制不起作用
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论