热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Haxe中为HTML元素转换元素访问

如何解决《在Haxe中为HTML元素转换元素访问》经验,为你挑选了1个好方法。

如果我们想在画布上绘制一些东西,我们需要获得它的2D上下文.我在项目的index.html中有一个canvas元素:

 
    
 

所以现在我需要访问该元素,好吧,让我们编写代码:

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(特别是编程),我很高兴,我可以做可行的事情,但我想知道,为什么它在工作时起作用,为什么不起作用.



1> Gama11..:

js.html.Element应该是js.html.CanvasElement

这只意味着编译器期望类型CanvasElement(因为这是cans变量的类型提示告诉它),但遇到其他东西(Element在这种情况下).您正在尝试分配getElementById()to 返回的值cans,但getElementById()返回一个Element.

既然Element那么具体CanvasElement(CanvasElement扩展Element),你不能只分配Element给一个CanvasElement-谁又能说这不是一个DivElement,或任何其他的选择吗?这只能在代码执行/编译器无法知道时才能确定,因此错误(运行时与编译时).

因为你知道,与ID的元素这个工作在这种情况下,罚款"canv" 实际上是一个CanvasElement,这样你就可以告诉它你知道你有做沉默的编译器cast.当返回的值实际上具有另一种类型时,它将出错.


推荐阅读
  • JavaScript - let和var区别
    前提ES5只有函数作用域和全局作用域,var属于ES5。let属于ES6,新增块级作用域。目的是可以写更安全的代码。Theletstatementdeclaresablocks ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
  • Itwasworkingcorrectly,butyesterdayitstartedgiving401.IhavetriedwithGooglecontactsAPI ... [详细]
  • 但有时候,需要当某事件触发时,我们先做一些操作,然后再跳转,这时,就要用JAVASCRIPT来实现这一跳转功能。下面是具体的做法:一:跳转到新页面,并且是在新窗口中打开时:复制代码代码如下:fu ... [详细]
  • JavaScript在常人看来都是门出不了厅堂的小语言,仅管它没有明星语言的闪耀,但至少网页的闪耀还是需要它的,同时它是一门很实用的语言,本人平时就喜欢拿它来写点实用工具或应用,本文演示用JavaSc ... [详细]
author-avatar
大姑娘不再回_402
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有