我正在構建基於QML的C++應用程序。如何在QML中延遲JavaScript操作?
爲了使簡單:
在我的主QML文件,我有一個按鈕(矩形)調用JavaScript函數(在一個外部JS文件中定義),點擊時:
// My JS file linked to the main QML window
[...]
function actionOnButtonClicked()
{
var x = 0;
var y = 0;
for(var i = 0; i < 3; i++)
{
createObject(x, y);
x = x + 10;
y = y + 10;
}
}
正如你可以看到,在此功能,我稱之爲ñ(= 3這裏)時期的另外一個JS函數來動態地創建幾個 QML對象添加到場景:
function createObject(xPosition, yPosition)
{
component = Qt.createComponent("Symbol.qml");
component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}
這工作正常。 但是創建的對象(Symbol)以翻譯動畫(約1秒)出現在windowApp中,並且我想在創建第二個對象之前等待第一個對象的動畫完成...
因爲我們不能使用setTimeOut() QML中的JavaScript函數,我想知道如何實現這一點。我看不出我如何使用QML Timer對象,甚至是PauseAnimation ...
有人知道如何在2個QML JavaScript操作之間添加延遲嗎?
嗨,感謝您的幫助。事實上,我可以通過在最後插入一個[scriptAction](http://doc-snapshot.qt-project.org/4.8/qml-scriptaction.html)來等待動畫的完成。但是,在創建符號後我想要調用的函數在程序運行時可能會有所不同,這會破壞我的初始步驟(在_actionOnButtonClicked()_函數中執行)。 請注意,在我的代碼示例中,我故意使用_for_在該函數中創建多個對象以實現簡化目的,但此函數實際上在不同對象之間執行多個操作... – Benoit 2012-07-12 12:52:32