Как отложить действие JavaScript в QML?

Я создаю приложение C++ на основе QML .

Чтобы было проще:

В моем основном файле 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;
    } 
}

Как видите, в этой функции я вызываю n(= 3 здесь )умножает другую функцию JS для динамического создания нескольких объектов QML для добавления на сцену:

function createObject(xPosition, yPosition)
{
    component = Qt.createComponent("Symbol.qml");
    component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}

Это работает нормально. Но созданный объект (Символ )появляется в окне приложения с анимацией перевода (около 1 секунды. ), и я хотел бы дождаться завершения анимации первого объекта, прежде чем создавать второй...

Поскольку мы не можем использовать setTimeOut()Функция JavaScript в QML, интересно, как я мог этого добиться. Я не понимаю, как я мог бы использовать объект QML Timer или даже PauseAnimation...

Кто-нибудь знает, как добавить задержку между двумя операциями QML JavaScript?

8
задан Benoit 11 July 2012 в 13:06
поделиться