在ECMAScript 6 typeof中,根据规范,类是'function'.
但是,根据规范,您不能将通过类语法创建的对象称为普通函数调用.换句话说,您必须使用new关键字否则会引发TypeError.
TypeError: Classes can’t be function-called
因此,如果不使用try catch,这将非常丑陋并破坏性能,您如何检查函数是来自class语法还是function语法?
Firefox和Chrome中存在的问题是我有一个带有纯色背景的画布,以及一个带有纯色背景颜色/图像的div.div被限制在画布顶部.div不会显示在画布上.一个有趣的注意事项是,如果div中有文本,它将正确显示.这意味着它是两个浏览器中的浏览器错误.以下是一些想要尝试的人的代码.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
#d{background-color:#111;margin-top:-150px;z-index:999999;}
</style>
<script type="text/javascript">
function load() {
var c = document.getElementById("c").getContext("2d");
c.fillStyle = "rgba(255, 200, 200, 1)";
c.fillRect(0, 0, c.canvas.width, c.canvas.height);
}
</script>
</head>
<body onload="load()">
<canvas id="c" width="500" height="300"></canvas>
<div id="d" style="width:500px;height:300px"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
那么,有人有任何变通方法吗?或者我在HTML5规范中遗漏了哪些内容,说这是正确的?
请注意,请不要问我为什么要使用边距而不是固定/绝对/等等替代品.我需要利润.
我正试图找到一种方法来检查当前的EGLContext是否存在并准备好在Android上使用.根据规范,我尝试过使用
((EGL10)EGLContext.getEGL()).eglGetCurrentContext()
然后将它与EGL10.EGL_NO_CONTEXT(尝试.equals()和!=)进行比较.然而,即使通过调试它"似乎"它返回'EGL_NO_CONTEXT'的实例(似乎意味着所有内部值都未初始化)但是无论我做什么比较我都无法让它工作.
有人知道另一种/适当的方法来完成这项工作吗?我不想通过抛出一个随机的GL调用并捕获EGLError来做到这一点......
使用opengl-es for Android中的模板缓冲区,我只是试图屏蔽绘制部分屏幕.我认为我设置正确,但它没有掩盖非模板部分.下面是我正在做的代码的提取.
gl.glEnable(GL10.GL_STENCIL_TEST);
gl.glClearStencil(0);
gl.glClear(GL10.GL_STENCIL_BUFFER_BIT);
gl.glColorMask(false, false, false, false);
gl.glDepthMask(false);
gl.glStencilFunc(GL10.GL_ALWAYS, 1, 1);
gl.glStencilOp(GL10.GL_REPLACE, GL10.GL_REPLACE, GL10.GL_REPLACE);
drawMask(); //I have confirmed this draws to the correct location by allowing colour to show. Trust that this draws the mask to the correct location.
gl.glColorMask(true, true, true, true);
gl.glDepthMask(true);
gl.glStencilFunc(GL10.GL_EQUAL, 1, 1);
gl.glStencilOp(GL10.GL_KEEP, GL10.GL_KEEP, GL10.GL_KEEP);
drawItems(); //Draw everything. Only items inside the masked area should be drawn. But everything is drawn with this code...
gl.glDisable(GL10.GL_STENCIL_TEST);
Run Code Online (Sandbox Code Playgroud)
有人发现这有什么不对吗?它的作用基本上是绘制一个框,比如屏幕的一半(如果我启用了颜色,这可以工作),它将模板缓冲区设置为该区域的1.最后我画到了整个屏幕.我希望它只画到上半部分,但它会吸引一切.
提前致谢.
android ×2
javascript ×2
opengl-es ×2
browser ×1
canvas ×1
css ×1
ecmascript-6 ×1
es6-class ×1
html5 ×1
java ×1