説明変更されたときに更新されません:
を2変数があります。dat.GUIが、私は問題のオブジェクト
controller1 = {i: 100};
controller2 = {i: 300};
とcontrol
変数
control = controller1;
私はDATを添付.GUIからcontrol.i
へ。
gui = new dat.GUI();
controller = gui.add(control, "i");
controller.listen();
だから、controller1.i
の値を表示し、私はdat.GUIで値を変更すると、それはcontroller1.i
の値を変更します。私はdat.GUI
の値を変更すると
control = controller2;
が、私はそれがcontroller2.i
を変更したいのですが、今ではcontroller1.i
を変更します。
はその後、私が実行されます。ここで
はペンです:http://codepen.io/kranzy/pen/QKzYAW
またはスタックスニペット:
controller1 = {i: 100};
controller2 = {i: 300};
control = controller1;
click.addEventListener("click", function() {
control = control == controller1 ? controller2:controller1;
});
gui = new dat.GUI();
controller = gui.add(control, "i");
controller.listen();
setInterval(function(){
current.textContent = JSON.stringify(control);
x.textContent = JSON.stringify(controller1);
y.textContent = JSON.stringify(controller2);
},1000/24)
<script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.1/dat.gui.min.js"></script>
<h1>Controller 1: <code id="x"></code></h1>
<h1>Controller 2: <code id="y"></code></h1>
<button id="click"><h1>Change controller</h1></button>
<h1>Value of current controller: <code id="current"></code></h1>
私が見ることができる唯一の方法は、コントローラを削除して、もう一度それを初期化されるたび私は変数
control
を変更しますが、私は別の方法を知りたいと思います。
その方法はここに示唆されています:Refreshing dat.gui variable(本当に私の質問と同じではありませんが、関連しています)。
dat.GUI
についての情報が不明な場合は、hereのツアーに参加してください。
なぜ恩恵を受けたのですか?それを取り戻すことはできますか?私の答えはあなたの問題を解決しません。 –
@SanDroidは私のコメントを読んでいます。もし私があなたに恩恵を与えないなら、賞金はゴミに行きます。 –