autojs 实现在画布上用画笔绘制图形,总是报 "canvas" is not defined

请教一下autojs方面的问题, 实现在画布上用画笔绘制图形,总是报 "canvas" is not defined
以下是我的代码。

"ui";
//ui布局为一块画布
ui.layout(
    <vertical>
        <canvas id="canvas"
        h = "{{device.height}}"
         w = "{{device.width}}"/>
    </vertical>
);
var paint = new Paint();
//设置画笔为描边,则绘制出来的图形都是轮廓
paint.setStyle(Paint.Style.STROKE);
//设置画笔颜色为红色
paint.setColor(colors.RED);
//绘制一个从坐标(0, 0)到坐标(100, 100)的正方形
canvas.drawRect(0, 0, 100, 100, paint);

 

autojs的官方文档写的不太好,给的例子是错误的,运行不出来。正确的写法是这个https://segmentfault.com/a/1190000039749495