QMLからjavascript変数を読み込めません。別のJavascriptスクリプト(Canvas3D)からQMLプロパティを更新する
私はたくさんの3D球を生成するためにcanvas3Dを使用していますが、instinstiationが本当に長いので、私は進行状況バーを表示したいと思います。私はinitializeGLでtest6.jsスクリプトから
を変更しようとしている私のcanvas3dでプロパティ名の進捗状況を持っている
import "test6.js" as GLCode
Item {
id: mainview
width: 1280
height: 768
visible: true
// THE PROGRESS BAR
ProgressBar {
id : progressBar
anchors.centerIn: parent
value: canvas3d.progress
z:1
}
//THE CANVAS3D (WebGL)
Canvas3D {
id: canvas3d
anchors.fill: parent
focus: true
property double progress:0 //MY VARIABLE I WANT TO UPDATE FROM test6.js
property var list : []
// Emitted when one time initializations should happen
onInitializeGL: {
GLCode.initializeGL(canvas3d);
}
:
これを行うには、私はこれをやりました私は進歩の価値を毎回更新しています(canvas3d)関数は、私は球を追加します。
for (i = 0; i < spheresNum; i ++) {
var x = list[i][0];
var y = list[i][1];
var z = list[i][2];
drawSphere(x,y,z,i);
canvas3d.progress = i/spheresNum*100;
}
さて、問題はinitializeGL()が終了した場合にのみ、私は進歩の更新値を得ることです。今のように:
Progress Bar to 0%
(Waiting for all the sphere to be instanciated)
(initializeGL() ends)
Progress Bar to 100%
これは役に立ちません。私は、球が作られるたびにバーを動かすことを好むでしょう。
どうすればいいですか?
ありがとう:) – ElevenJune