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 のドキュメントを読み、サイトにイメージ ローテータをロードするいくつかの異なる方法を見つけました。私はそれぞれを調べ、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 ファイル パスです。そうは言っても、理想的には、変更時イベントは選択されたモデルを表示し、選択が再び変更された場合は、新しいモデルをレンダリングする必要があります (現在のようなものではなく)。何かが足りないか、ページを更新しないとモデルを更新できないかのいずれかです。助けていただければ幸いです。