在javascript中,我可以声明对象的属性是常量吗?
这是一个示例对象:
var XU = {
Cc: Components.classes
};
Run Code Online (Sandbox Code Playgroud)
要么
function aXU()
{
this.Cc = Components.classes;
}
var XU = new aXU();
Run Code Online (Sandbox Code Playgroud)
只是把"const"放在它前面,不起作用.
我知道,我可以声明具有相同名称(这也将是样的常数)的函数,但是我正在寻找一个更简单,更可读的方式.
浏览器兼容性并不重要.它只需要在Mozilla平台上工作,就像Xulrunner项目一样.
非常感谢!
干杯.
渲染具有Alpha通道的纹理时,非透明部分周围会出现白色边框(边框似乎是alpha> 0且<1的像素):

原始纹理在Illustrator中创建并导出为png.这里是:

(好吧,似乎stackoverflow改变了图像,调整了不完全不透明/透明的像素,所以这里是一个链接)
它可能是混合,虽然我不知道设置有什么问题:
gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)
[更新]
这是一个渲染版本,其中我在纹理的左侧部分添加了一个alpha渐变(因此它从0不透明度变为1直到一半)

此纹理是此位置渲染的唯一纹理.它似乎在a = 0.5附近最白.真的很奇怪.背景只是一个清除的颜色:
gl.clearColor(0.603, 0.76, 0.804, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
// render objects here
Run Code Online (Sandbox Code Playgroud)
深度函数看起来像:
gl.enable(gl.DEPTH_TEST);
gl.depthFunc(gl.LEQUAL);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?非常感谢.
[更新2]
回答我自己的问题:当画布的背景颜色或html页面的主体为白色时,会产生效果.不过,我没有解释.
在我的应用程序中,我使用Box2D和Spidermonkey。这两个库都定义了 uint32 类型,这显然在同一编译单元中使用这两个库时给我带来了编译器错误。
b2settings.h (Box2D): typedef unsigned int uint32;
jsotypes.h (Spidermonkey): typedef unsigned long uint32;
有什么方法可以解决此冲突而不需要更改第 3 方库的标头吗?
我很感谢每一个提示!
我的应用程序崩溃了,因为我调用的库函数更改了ESP,尽管它被声明为cdecl.
库(libclang.dll)是使用MinGW编译的,我在VC++项目中使用它.函数导出为C函数,Dependency Walker告诉我他们有正确的cdecl调用约定.使用dllimport将函数导入到我的项目中,包括Clang的"index.h"文件.似乎并非所有功能都在破坏ESP,因此某些功能会成功,其他功能会导致崩溃.
这是一个工作函数的汇编:
// call to clang_getNumDiagnostics(TU); - works!
5AF3EFAB mov esi,esp
5AF3EFAD mov eax,dword ptr [ebp-30h]
5AF3EFB0 push eax
5AF3EFB1 call dword ptr [__imp__clang_getNumDiagnostics (5AF977E0h)]
5AF3EFB7 add esp,4
5AF3EFBA cmp esi,esp
5AF3EFBC call @ILT+7135(__RTC_CheckEsp) (5AF16BE4h)
Run Code Online (Sandbox Code Playgroud)
以下函数调用将更改esp(添加4),从而导致由于__RTC_CheckEsp中的运行时检查而导致崩溃.
// call to clang_getTranslationUnitCursor(TU); - fails!
5AF3EFC1 mov esi,esp
5AF3EFC3 mov eax,dword ptr [ebp-30h]
5AF3EFC6 push eax
5AF3EFC7 lea ecx,[ebp-234h]
5AF3EFCD push ecx
5AF3EFCE call dword ptr [__imp__clang_getTranslationUnitCursor (5AF9780Ch)]
5AF3EFD4 add esp,8
5AF3EFD7 cmp esi,esp
5AF3EFD9 call @ILT+7135(__RTC_CheckEsp) (5AF16BE4h)
Run Code Online (Sandbox Code Playgroud)
我已经发布了一个问题,对于这个问题,但认为我特地问了一下调用约定CDECL检索有关的ESP …
c++ ×3
assembly ×1
blending ×1
box2d ×1
constants ×1
graphics ×1
javascript ×1
mingw ×1
object ×1
opengl-es ×1
return-value ×1
spidermonkey ×1
std-pair ×1
tuples ×1
typedef ×1
visual-c++ ×1
webgl ×1