import declarations may only appear at top level of a module
只能在模块顶部导入声明。
错误情况: 当我在index.js里导入initShaders.js代码时,出现此错误。
initShaders.js
export default function initShaders(){......}
index.js
import initShaders from "./02.initShaders"
解决办法:
在html文件里加入:
这时候报错:
解决方法:
将js文件后缀名修改为mjs,以区分ES6模块和传统的JS模块,浏览器会自动识别后缀名,将es6语法的js文件转换成支持的文件。
!!!通过open with live server,我的默认浏览器火狐可以成功运行这个程序,但是通过open with other browser 在edge和chrome上还不能成功运行,后来我将默认浏览器设置为chrome,用open with live server打开chrome浏览器就可以成功运行了,并且用open with other browser打开火狐也可以运行,至于edge是不是也要设置为默认浏览器我没有尝试过。
webgl贴图错误
贴图失败,显示黑色
原因:图片的长和宽不是2的幂(1、2、4、8....256、512),比如100*501
解决办法:
gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE)//
gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE)//
或者是把图片换成大小为2的次幂大小的。