小编Mon*_*der的帖子

你如何检查ECMAScript 6类和函数之间的区别?

在ECMAScript 6 typeof中,根据规范,类是'function'.

但是,根据规范,您不能将通过类语法创建的对象称为普通函数调用.换句话说,您必须使用new关键字否则会引发TypeError.

TypeError: Classes can’t be function-called

因此,如果不使用try catch,这将非常丑陋并破坏性能,您如何检查函数是来自class语法还是function语法?

javascript ecmascript-6 es6-class

33
推荐指数
4
解决办法
7924
查看次数

在<canvas>上显示<div>

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规范中遗漏了哪些内容,说这是正确的?

请注意,请不要问我为什么要使用边距而不是固定/绝对/等等替代品.我需要利润.

javascript css browser html5 canvas

10
推荐指数
1
解决办法
4万
查看次数

调用以检查Android中是否存在当前的EGLContext

我正试图找到一种方法来检查当前的EGLContext是否存在并准备好在Android上使用.根据规范,我尝试过使用

((EGL10)EGLContext.getEGL()).eglGetCurrentContext()

然后将它与EGL10.EGL_NO_CONTEXT(尝试.equals()和!=)进行比较.然而,即使通过调试它"似乎"它返回'EGL_NO_CONTEXT'的实例(似乎意味着所有内部值都未初始化)但是无论我做什么比较我都无法让它工作.

有人知道另一种/适当的方法来完成这项工作吗?我不想通过抛出一个随机的GL调用并捕获EGLError来做到这一点......

android opengl-es

7
推荐指数
1
解决办法
8230
查看次数

让OpenGL-ES模板缓冲区工作

使用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.最后我画到了整个屏幕.我希望它只画到上半部分,但它会吸引一切.

提前致谢.

java android opengl-es stencil-buffer

7
推荐指数
2
解决办法
6947
查看次数