【发布时间】:2017-08-23 16:40:57
【问题描述】:
如果我们想在画布上绘制一些东西,我们需要获取它的 2D 上下文。 我在项目的 index.html 中有一个画布元素:
<body>
<canvas id="canv" width="200" height="200"></canvas>
</body>
所以现在我需要获取该元素的访问权限,好吧,让我们编写代码:
var cans:CanvasElement = Browser.document.getElementById("canv");
在编译阶段出现错误:
src/Main.hx:32: 字符 2-78 : js.html.Element 应该是 js.html.CanvasElement
但是如果我们使用不安全的强制转换,已经可以了:
var cans:CanvasElement = cast Browser.document.getElementById("canv");
一切正常,我可以访问并可以获取 2D 上下文或进行一些设置,例如:
cans.width = cans.height = 800;
cans.style.backgroundColor = 'rgba(158, 167, 184, 0.4)';
是的,我知道,“如果它有效 - 不要修复”,我大致了解一切正常,原则上我得到我需要的东西,当被施放时,但有人可以为我解释这个过程吗? 这是什么意思 - js.html.Element 应该是 js.html.CanvasElement?我才刚刚开始学习 Haxe(尤其是编程),我很高兴我可以做一些可行的事情,但我想知道,为什么它在工作时能工作,为什么在不能工作时不能工作。
【问题讨论】:
标签: javascript haxe