AnimatedSprite QML Type
스프라이트 애니메이션을 그립니다. 더 보기...
Import Statement: | import QtQuick |
Inherits: |
속성
- currentFrame : int
- finishBehavior : enumeration
- frameCount : int
- frameDuration : int
- frameHeight : int
- frameRate : real
- frameSync : bool
- frameWidth : int
- frameX : int
- frameY : int
- interpolate : bool
- loops : int
- paused : bool
- reverse : bool
- running : bool
- source : url
신호
- finished()
방법
상세 설명
AnimatedSprite는 동일한 이미지 파일에서 여러 프레임으로 제공되는 애니메이션을 렌더링하고 제어할 수 있는 기능을 제공합니다. 디스플레이의 프레임 속도에 맞춰 고정된 속도로 재생하거나 수동으로 진행 상황을 제어할 수 있습니다.
다음 스프라이트 시트를 생각해 보세요:
이 시트는 4개의 프레임으로 나눌 수 있습니다:
이러한 각 프레임을 프레임당 500밀리초의 속도로 재생하려면 다음 코드를 사용할 수 있습니다:
코드 | 결과 |
---|---|
AnimatedSprite { source: "loading.png" frameWidth: 64 frameHeight: 64 frameCount: 4 frameDuration: 500 } |
기본적으로 애니메이션이 더 부드럽게 보이도록 프레임이 보간(블렌딩)됩니다. 이를 비활성화하려면 interpolate 을 false
으로 설정합니다:
Code | Result |
---|---|
AnimatedSprite { source: "loading.png" frameWidth: 64 frameHeight: 64 frameCount: 4 frameDuration: 500 interpolate: false } |
AnimatedSprite가 크기 조정에 반응하는 방식을 제어하려면 smooth 속성을 사용합니다.
SpriteSequence 과 달리 AnimatedSprite 유형은 Sprite 을 사용하여 여러 애니메이션을 정의하는 것이 아니라 단일 애니메이션 자체를 캡슐화합니다.
스프라이트 애니메이션도참조하세요 .
속성 문서
finishBehavior : enumeration |
애니메이션이 자체적으로 완료될 때의 동작입니다.
Constant | 설명 |
---|---|
FinishAtInitialFrame | 애니메이션이 완료되면 초기 프레임으로 돌아갑니다. 이것이 기본 동작입니다. |
FinishAtFinalFrame | 애니메이션이 완료되면 최종 프레임에 유지됩니다. |
frameCount : int |
프레임 수 AnimatedSprite.
frameDuration : int |
애니메이션의 각 프레임의 지속 시간(밀리초)입니다. 0
보다 작거나 같은 값은 유효하지 않습니다.
frameRate 가 유효하면 프레임 지속 시간을 계산하는 데 사용됩니다. 그렇지 않고 frameDuration이 유효하면 frameDuration
이 사용됩니다.
이 매개변수를 변경하면 애니메이션이 다시 시작됩니다.
frameHeight : int |
단일 프레임의 높이 AnimatedSprite.
파일에서 유일한 스프라이트인 경우 생략할 수 있습니다.
frameRate : real |
애니메이션에 표시할 초당 프레임 수입니다. 0
보다 작거나 같은 값은 유효하지 않습니다.
frameRate
가 유효하면 프레임 지속 시간을 계산하는 데 사용됩니다. 그렇지 않고 frameDuration 가 유효하면 frameDuration
이 사용됩니다.
이 매개변수를 변경하면 애니메이션이 다시 시작됩니다.
frameSync : bool |
true
인 경우 애니메이션의 지속 시간이 없습니다. 대신 애니메이션은 한 프레임이 화면에 렌더링될 때마다 한 프레임씩 진행됩니다. 이렇게 하면 경과 시간이 아닌 페인팅 속도와 동기화됩니다.
frameSync를 true로 설정하면 frameRate 와 frameDuration 를 모두 재정의합니다.
기본값은 false
입니다.
이 매개변수를 변경하면 애니메이션이 다시 시작됩니다.
frameWidth : int |
단일 프레임의 너비 AnimatedSprite.
파일에서 유일한 스프라이트인 경우 생략할 수 있습니다.
frameX : int |
AnimatedSprite 의 첫 번째 프레임의 이미지 파일에 있는 X 좌표입니다.
첫 번째 프레임이 파일의 왼쪽 상단 모서리에서 시작되는 경우 생략할 수 있습니다.
frameY : int |
AnimatedSprite 의 첫 번째 프레임 이미지 파일에 있는 Y 좌표입니다.
첫 번째 프레임이 파일의 왼쪽 상단 모서리에서 시작하면 생략할 수 있습니다.
interpolate : bool |
true이면 스프라이트 프레임 사이에 보간이 수행되어 애니메이션이 더 부드럽게 나타납니다.
기본값은 참입니다.
loops : int |
애니메이션을 이 횟수만큼 재생하면 애니메이션이 자동으로 중지됩니다. 음수 값은 유효하지 않습니다.
AnimatedSprite.Infinite
로 설정하면 애니메이션이 자체적으로 재생을 중지하지 않습니다.
기본값은 다음과 같습니다. AnimatedSprite.Infinite
paused : bool |
일시 중지된 경우 현재 프레임을 수동으로 진행할 수 있습니다.
기본값은 false
입니다.
reverse : bool |
true
인 경우 애니메이션이 역방향으로 재생됩니다.
기본값은 false
입니다.
running : bool |
스프라이트가 애니메이션 중인지 여부입니다.
기본값은 참입니다.
source : url |
애니메이션의 이미지 소스입니다.
frameHeight 및 frameWidth 이 지정되지 않으면 하나의 긴 정사각형 프레임으로 간주됩니다. 그렇지 않으면 연속된 여러 행 또는 직사각형 프레임이 될 수 있으며, 한 행이 모두 소진되면 다음 행이 사용됩니다.
frameX 및 frameY 을 지정하면 해당 x/y 좌표를 왼쪽 상단 모서리로 삼아 프레임 행을 가져옵니다.
신호 문서
finished() |
이 신호는 스프라이트의 애니메이션이 완료될 때 발생합니다.
실행이 false
로 설정된 경우나 loops 속성이 AnimatedSprite.Infinite
로 설정된 스프라이트의 경우 발생하지 않습니다.
참고: 해당 핸들러는 onFinished
입니다.
메서드 문서
int advance() |
스프라이트 애니메이션을 한 프레임 진행합니다.
int restart() |
스프라이트 애니메이션을 중지한 후 시작합니다.
start() |
스프라이트 애니메이션을 시작합니다. 애니메이션이 이미 실행 중인 경우 이 메서드를 호출해도 아무런 효과가 없습니다.
stop()도 참조하세요 .
stop() |
스프라이트 애니메이션을 중지합니다. 애니메이션이 실행 중이 아닌 경우 이 메서드를 호출해도 아무런 효과가 없습니다.
start()도 참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.