本人在使用FontLoader导入字体时,出现了json解析错误的错误提示。对比了网页版的three.js和qt版的three.js源代码,发现json解析的语句不一样。
qt版的是:
onLoad( new THREE.Font( JSON.parse( text.substring( 65, text.length - 2 ) ) ) );
虽然网页版的也有类似这句话,但是这句话放在了异常的catch语句中的,整个catch语句是这样的:
console.warn( 'THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.' ); json = JSON.parse( text.substring( 65, text.length - 2 ) );
而try里面的语句是:
json = JSON.parse( text );
很明显,qt版本的那句代码已经过时了,想要导入新版本的字体就要用到新的语句。所以需要把qt的那句话改成:
onLoad( new THREE.Font( JSON.parse( text ) ) );