Если строка JSON является статической, вы можете загрузить ее как ExternalMeshResource (см. http://code.google.com/p/gwt-g3d/source/browse/trunk/gwt-g3d-test/src/gwt/g3d/test/client/Lesson14Demo.java о том, как использовать этот ресурс).
Если нет, вы можете использовать JSONParser.parse(jsonString)
, чтобы получитьобъект значения JSON, затем выполните что-то вроде
Float32Array.create(jsonObj.get(fieldName).isArray().getJavaScriptObject().<JsArrayNumber>cast());
, чтобы получить TypeArray
, который вы можете передать StaticMesh
.fieldName
выше зависит от вашего строкового объекта json.Например, если ваш json выглядит примерно так:
{
"vertexPositions" : [0, 1, 2, ...]
"vertexNormals" : [0, 1, 0, ...]
"indices" : [0, 1, 2, ...]
}
, тогда ваши fieldName
могут быть «vertexPositions», «vertexNormals» и «indexes».(Обратите внимание, что массив индексов обычно имеет тип Uint16Array
вместо Float32Array
).См. реализацию AbstractMeshResource для получения дополнительной информации