Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用动画将元素添加到转发器_Javascript_Qt_Qml_Qt Quick_Qtquick2 - Fatal编程技术网

Javascript 使用动画将元素添加到转发器

Javascript 使用动画将元素添加到转发器,javascript,qt,qml,qt-quick,qtquick2,Javascript,Qt,Qml,Qt Quick,Qtquick2,我有一个中继器,当元素被创建时,它们会被设置动画 Repeater { model : 0 Image { ... Animation { ... } } } 如果在上一个元素的动画完成后向模型中添加一个元素,则一切正常。但是如果我之前加了一个元素就不行了。 例如,如果我有一把能射出子弹的枪,如果我等到子弹的动画结束,一切都会正常。但是如果我想在第一个结束前再射一颗子弹,第一颗子弹就会消失,我只看到第二

我有一个中继器,当元素被创建时,它们会被设置动画

Repeater {
    model : 0

    Image {
       ...

       Animation {
           ...
       }
    }
}
如果在上一个元素的动画完成后向模型中添加一个元素,则一切正常。但是如果我之前加了一个元素就不行了。 例如,如果我有一把能射出子弹的枪,如果我等到子弹的动画结束,一切都会正常。但是如果我想在第一个结束前再射一颗子弹,第一颗子弹就会消失,我只看到第二颗的动画


我应该怎么做才能看到所有的动画

可能您的模型或代理或布局(项目重叠…)有问题,因为在这里,这可以正常工作:

import QtQuick 2.0;

Rectangle {
    width: 400;
    height: 300;

    Timer {
        running: true;
        repeat: true;
        interval: 1000;
        onTriggered: { modelTest.append ({ "bg" : Qt.hsla (Math.random (), 0.85, 0.45, 1.0).toString () }); }
    }
    Flow {
        anchors.fill: parent;

        Repeater {
            model: ListModel {
                id: modelTest;
            }
            delegate: Rectangle {
                id: rect;
                color: model.bg;
                width: 50;
                height: width;
                scale: 0.0;

                PropertyAnimation {
                    target: rect;
                    property: "scale";
                    from: 0.0;
                    to: 1.0;
                    duration: 450;
                    running: true;
                    loops: 1;
                }
            }
        }
    }
}
请记住,只有ListModel和QAbstractListModel能够在不重置整个委托的情况下动态添加新项,另一个(变量列表、JS数组、数字)将导致在每次修改模型时重新实例化所有委托