2014-01-31 3 views
0

я просто пытаюсь построить диаграмму с помощью threejs, так что я просто подготовить data.json вКакой формат поддерживает json threejs.

{ 
    "chart": [ 
     { 
      "Year": "2005", 
      "Money": "550", 
      "Number": "35" 
     }, 
     { 
      "Year": "2006", 
      "Money": "600", 
      "Number": "40" 
     } 
    ] } 

Initilize JSONLoader & вызова

var loader = new THREE.JSONLoader(); 
loader.load("data.json",function(a){ 
    //console.log(a); 
}); 

и получаю ошибку говоря «Не удается прочитать свойство" длина «неопределенного»

Я не уверен, что здесь не так. Но, как я предполагаю, я думаю, что три человека не могут читать такие нормальные данные. я видел все другие примеры, получающие модель или геометрию, которые другие извлекают из json. Есть ли какой-то специальный формат для хранения данных json? или нам нужно использовать jquery с тремя js?

ответ

0

Класс THREE.JSONLoader предназначен для загрузки ячеек в формате . Вы можете использовать его для загрузки объектов, созданных в Blender, например. Вы не можете просто загрузить любой json таким образом.

Вы должны использовать стандарт способ извлечения JSON (jQuery или родного класса HttpRequest), а затем создавать сетки в вашей сцене с помощью собственного кода.

+1

Было бы хорошо, если бы вы могли предоставить некоторую информацию, такую ​​как _examples_ или _documentation_, в отношении того, что именно этот _специальный формат. И вы _seem_, чтобы сказать, что использование AJAX здесь очень важно - действительно ли это так? Не можете ли вы просто загрузить _the_ json синхронно в качестве переменной? – foobarbecue

1

JSON - это общий формат обмена данными (например, XML), и, как говорит @lot, вам необходимо создать JSON в формате three.js. К сожалению, этот формат выглядит not documented anywhere. Его можно создать с помощью этого blender exporter, но я хотел бы закодировать его вручную без использования Blender. Для этого я использовал доступные примеры here, которые загружают these json files.

Похоже, что был создан decision, чтобы начать вызов трех файлов json .3geo, .3obj и .3mat. Однако, похоже, что это never happened.

EDIT: Ага, я нашел documentation в конце концов!

+0

Во-первых, я никоим образом не связан с разработчиками THREE.JS, поэтому я не виноват, что вы не смогли найти документацию для формата json. Также я думаю, что вы не понимаете цели этого json-формата - он используется более трёхмерными более или менее «внутренне». По крайней мере, по моему мнению, это не предназначалось для того, чтобы служить любой цели, которую могли бы придумать люди. Если вы хотите что-то загружать в свое приложение, то кодируйте и расшифровывайте его самостоятельно, что бы это ни было. – lot

+0

Mm, no. Если вы прочитаете материал, с которым я связался, вы увидите, что намерение явно предназначено для использования json-формата для обмена с другими программами (Blender, изначально) и как канонический способ хранения сцены three.js в файле , Извините, я посмеялся над вашим курсивом, это было грубо. Я думаю, что меня раздражало, потому что вы, казалось, разговаривали с (явно неопытным) OP и забывали, что люди с большим опытом будут также читать ваши ответы. – foobarbecue

+1

Вы абсолютно правы в цели этого формата three.js json. Поэтому я надеюсь, что ясно, что это не предназначено для цели, заявленной в оригинальном вопросе. Этот метод предназначен для загрузки сеток и материалов, а не карт приложения Sumant. То, что он должен сделать, - загрузить json, содержащий данные его диаграммы, и построить сетки и материалы из этих данных с помощью собственного кода. Он не должен сидеть с документацией и писать файл js-объекта three.js в своем любимом текстовом редакторе :-) – lot

Смежные вопросы