我想知道如何使用bs-webapi和Canvas2d接口在ReasonML中创建和设置填充样式。
我想我可能需要的定义是这
let fillStyle = (ctx: t) =>
ctx |> fillStyle |> reifyStyle;但我很难理解。
我以前使用过这个项目作为示例的来源,但我认为自该项目编写以来,bs-webapi已经发生了变化。至少下面的行是按照示例建模的:
Canvas2d.fillStyle(ctx, "rgba(0,255,255,255)");给我这个错误:
Error: This function has type
Webapi.Canvas.Canvas2d.t => (Webapi.Canvas.Canvas2d.style('a), 'a)
It is applied to too many arguments; maybe you forgot a `;'.发布于 2019-10-29 09:38:12
您想要的函数是setFillStyle
Canvas2d.setFillStyle(ctx, String, "rgba(0,255,255,255)");这很久以前就被从fillStyle重命名了,因为那时还没有getter,约定是命名getter fillStyle和setter setFillStyle。同时,它被用来支持渐变和模式。
setFillStyle现在的工作方式是,第二个参数决定第三个参数的类型。如果将String作为第二个参数传递,则第三个参数必须是string。如果您通过了Gradient,它需要是一个gradient,您可以从createLinearGradient或createRadialGradient获得它。最后,您可以传递Pattern,这需要第三个参数是从createPattern获得的pattern。
通常,您应该参考Canvas2d测试文件来获取使用示例。
https://stackoverflow.com/questions/58603748
复制相似问题