javascript - 如果在 qml 中的其他地方定义了数字动画属性,则对象不会动画

标签 javascript jquery animation qml

我不知道我尝试做的事情是否可能,尽管在我看来应该是......我尝试使用顺序或并行动画为对象设置动画。如果数字动画属性在其内部正常设置(如文档所示),则效果很好,但我不想将数字动画对象硬编码为单个设置/对象,我更希望顺序动画处于顶层,从而访问来自其他地方的数字动画对象(在顺序动画内)...有趣的是,当我进行所需的设置时,数字动画对象上的控制台输出显示一切都已设置,但仍然没有动画。这是我到目前为止得到的:

   Component.onCompleted: {
    anim.accessToNum.target = rect
    anim.accessToNum.property = "x"
    anim.accessToNum.to = 100
    anim.accessToNum.duration = 1000
}

Rectangle {
    id: rect
    width: 50; height: 50
    color: "red"
}
SequentialAnimation {
    id: anim
    running: true
    property var accessToNum: num
    NumberAnimation { id: num}
}

谢谢。

最佳答案

你有

    running: true

设置动画,因此它会立即开始动画,无需目标属性等。

这样做:

import QtQuick 2.0
import QtQuick.Window 2.0

Window {
    width: 600
    height: 400
    visible: true

    Component.onCompleted: {
        anim.accessToNum.target = rect
        anim.accessToNum.property = "x"
        anim.accessToNum.to = 100
        anim.accessToNum.duration = 1000
        anim.start() // or: anim.running = true
    }

    Rectangle {
        id: rect
        width: 50
        height: 50
        color: "red"
    }
    SequentialAnimation {
        id: anim
        property var accessToNum: num
        NumberAnimation {
            id: num
        }
    }
}

不相关的提示:尽可能使用alias而不是var;稍微便宜一点:

property alias accessToNum: num

关于javascript - 如果在 qml 中的其他地方定义了数字动画属性,则对象不会动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193661/

相关文章:

jquery - Bootstrap 工具提示中的图像

java - 我如何模仿 Lollipop ( Material 设计)按钮动画?

javascript - Ease Out Cubic - 函数参数说明

javascript - 更改悬停时的图像

javascript - AngularJS 嵌套 ng-repeat

javascript - 使单选按钮的整个背景可点击

javascript - 循环遍历每个 JSON 响应返回 "[Object Object]"

Android viewpager 动画

javascript - 如何移动 SVG 在 D3 中的位置?

javascript - 在 NextJs 中,如何删除特定组件中 _app 中声明的全局样式?