0

image rotator .xml 構成ファイルを使用して、自分のサイトで 3D モデルをレンダリングしています。この機能は機能しますが、変更イベントの JS を介して、以前のファイルの代わりに完全に異なる .xml をレンダリングしようとしています。

この問題を解決するために、かなりの量を読みましたが、答えは見つかりませんでした。以下に示すように、JQueryスクリプトを関数にしようとしました。

function updateModel(xml_file_path) {
    console.log('updating room model...');
    console.log('xml_file_path: ' + xml_file_path);

    // clear past model
    $("#wr360PlayerId").empty();

    jQuery('#wr360PlayerId').rotator({
        licenseFileURL: 'license.lic',
        configFileURL: '/static/360_assets/' + xml_file_path,
        graphicsPath: '/static/img/basic',
        zIndexLayersOn: false,
        responsiveBaseWidth: 600,
        responsiveMinHeight: 0,
        googleEventTracking: false,
    });
    console.log('rendering: ' + xml_file_path);
}

// clears the old model then updates the configFileURL to the new model

これは以前のモデルをクリアすることに成功しましたが、新しいモデルを検査すると、イメージ ローテーターで使用されるイメージが読み込まれず、何も表示されません。

wr360 ドキュメント

また、上記の wr360 のドキュメントを読み、サイトにイメージ ローテータをロードするいくつかの異なる方法を見つけました。私はそれぞれを調べ、JQuery と同様の方法を使用して更新しようとしましたが、それぞれに克服するのが難しい独自の奇妙な点がありました。

ほとんどの場合、ページの読み込み時に動的に作成されるため、コーディングする必要はあまりありませんが、必要なすべてのコードを以下に示します。

js

function updateModel(xml_file_path) {
    console.log('updating room model...');
    console.log('xml_file_path: ' + xml_file_path);

    // clear past model
    $("#wr360PlayerId").empty();

    jQuery('#wr360PlayerId').rotator({
        licenseFileURL: 'license.lic',
        configFileURL: '/static/360_assets/' + xml_file_path,
        graphicsPath: '/static/img/basic',
        zIndexLayersOn: false,
        responsiveBaseWidth: 600,
        responsiveMinHeight: 0,
        googleEventTracking: false,
    });
    console.log('rendering: ' + xml_file_path);
}

$(document).ready(function(){
    $('#rooms').on('change', function() {
        updateModel(room.xml_path);
        console.log('model updated');
    });
});
// truncated for simplicity

html

<div id="wr360PlayerId" class="wr360_player" style="background-color:#FFFFFF;">
</div>

xml ファイル パスが正しく渡されます (によってチェックされますconsole.log('xml_file_path: ' + xml_file_path);)。2 番目のローテータがレンダリングされません。

$('#rooms')は選択フィールドで、room.xml_pathは選択された部屋の .xml ファイル パスです。そうは言っても、理想的には、変更時イベントは選択されたモデルを表示し、選択が再び変更された場合は、新しいモデルをレンダリングする必要があります (現在のようなものではなく)。何かが足りないか、ページを更新しないとモデルを更新できないかのいずれかです。助けていただければ幸いです。

4

1 に答える 1