X3DomでX3Dを操作するとき、オブジェクトを動的に追加したいことがあります。 random_line
はランダムなラインを定義する文字列を生成する関数で、このコードでX3DomでIndexedLineSetを追加する
function add_line(lineString) {
var lineString = lineString || random_line();
var orbit = $("<shape></shape>");
scene.append(orbit);
var indexedLineSet = $("<IndexedLineSet></IndexedLineSet>");
orbit.append(indexedLineSet).attr('coordIndex', '0 1');
var coordinate = $("<coordinate></coordinate>");
coordinate.attr('point', lineString);
indexedLineSet.append(coordinate)
}
、scene
既存のX3Dシーンがある、と私:一例として、私は行を追加するには、次のような機能を持っているかもしれませんJQueryでシーンを操作しています。ページが読み込まれるときに関数を呼び出すと、正常に動作します。ただし、ボタンプッシュに応答して関数を呼び出すと、シーンに追加されても線は表示されません。
注:
- 問題は、私が追加しようとオブジェクトの種類に依存するように表示されます。球は問題なく追加できます。
- Firefoxの検査官によると、
IndexedLineScene
が正しくシーンに追加されているようです。画像には表示されません。
はい、それはそうです - ありがとう!元のバージョンがロード時に機能した理由は何ですか?ボタンプッシュに応答しない理由は何ですか? –
バックグラウンドを反映するために私の答えを編集しました。これがより良い理解に役立つことを願っています。 – mistapink
重要な問題は、 'scene.append(orbit)'行を 'add_line'関数の最後に移動することです。または、あなたが言うように、 "3Dオブジェクトを完全に構築する"。私はすでに 'add_sphere'関数でそれをやっていました。不思議なことに、 'add_sphere'コマンドは、ほとんどどこでも' scene.append(line) 'を動かすことができるという点でより頑強に見えます。しかし、3Dオブジェクトを完全に構築するという基本的な考え方は、大変意味があります。再度、感謝します! –