我的画布有问题.我修改了Canvas.hs示例程序,用画面将图像绘制到画布上
canvas # drawImg
在画布设置代码之后;这里供参考:
canvas <- UI.canvas
# set UI.height canvasSize
# set UI.width canvasSize
# set style [("border", "solid black 1px"), ("background", "#eee")]
drawImg在哪里
drawImg :: UI.Canvas -> UI ()
drawImg canvas = do
url <- UI.loadFile "image/png" "resources/img.png"
img <- UI.img # set UI.src url
UI.drawImage img (0,0) canvas
这应该与用于在原始版本的代码中绘制图像的on click函数相同.
此代码的实际行为是空白画布,就像在单击绘制图像按钮之前的原始示例中一样.我认为它应该在加载时绘制图像.为什么是这样?我是否应该将此调用添加到设置画布的行?
最佳答案 画布是DOM的一部分吗?不要忘记使用via getBody#[…]或类似内容将其添加到文档正文中.
但是,可能存在另一个问题:浏览器通常异步加载图像URL.事实上,如果图像不是DOM的一部分,我不确定它们是否完全加载图像URL,如您的示例所示.在这两种情况下,如果您尝试在加载URL之前将图像绘制到画布,则不会绘制任何内容. (检查此问题是否与代码中的相关问题最简单的方法是绘制多边形而不是图像.)