2011-04-29 2 views
5

나는 (지속 시간보다는) 속도를 지정하고 어떤 루프가 영원히 반복되는지 애니메이션으로 조합하려고합니다. 나는이 비 작동 예를 내놓았다 :QML 애니메이션 "속도"와 무한 "루프"모두

FirstTry.qml에게

import Qt 4.7 

Rectangle { 
    width: 100; height: 100 
    Text { 
    text: "hello" 
    NumberAnimation on x { 
     to: 50; 
     loops: Animation.Infinite; 
     duration: 50 * Math.abs(to - from) 
    } 
    } 
} 

hello가 (공평) 화면에 너트가는 동안 나는 다음과 같은 런타임 경고를을.

QDeclarativeExpression: Expression "(function() { return 50 * Math.abs(to - from) })" depends on non-NOTIFYable properties: 
    QDeclarativeNumberAnimation::to 
    QDeclarativeNumberAnimation::from 

SecondTry.qml

import Qt 4.7 

Rectangle { 
    width: 100; height: 100 
    Text { 
    text: "hello" 
    SmoothedAnimation on x { 
     to: 50; 
     loops: Animation.Infinite; 
     velocity: 50 
    } 
    } 
} 

이것은 신비의 더 - SmoothedAnimation 단순히 루프에 거부! 애니메이션이 한 번 실행되면 그게 전부입니다. 첫 번째 예에서 속도를 지정하는 법적 방법

있습니까 :

그래서 나는 다음과 같은 질문이? 나는 이 NumberAnimation에서 파생 된 것을 이해합니다. C++뿐만 아니라 QML에서도 가능합니다.

루프가 만들 수 있습니까? SmoothedAnimation 루프가 있습니까? 두 번째 예제가 버그를 작동시키지 않습니까? 아니면 뭔가 빠져 있습니까?

동시에이 두 가지 동작을 수행 할 수있는 다른 방법이 있습니까?

답변

1

이것은 임시 솔루션으로 수행 한 것으로, 적절한 지 확신 할 수 없지만 필요한 부분 만 수행하고있는 것처럼 보입니다.

SmoothedAnimation on x { 
    to: 50; 
    //loops: Animation.Infinite; 
    velocity: 50 
    onComplete: { restart(); } 
} 

저는 아직 질문에 대한 답변에 관심이 있습니다.

3

단지 명시 적으로 매개 변수 "에서"추가 : 루프 매개 변수를 허용하지 않습니다

import Qt 4.7 

Rectangle { 
    width: 100; height: 100 
    Text { 
    text: "hello" 
    NumberAnimation on x { 
     from: 0; 
     to: 50; 
     loops: Animation.Infinite; 
     duration: 50 * Math.abs(to - from) 
    } 
    } 
} 
0

에도 SmoothedAnimation, 당신은 SequentialAnimation 내부에 배치하고이 외부 커버에 루프를을 적용 할 수 있습니다 . 효과로 부드럽게 처리 된 애니메이션이 연속적으로 재생됩니다.