AnimatedSprite QML Type

스프라이트 애니메이션을 그립니다. 더 보기...

Import Statement: import QtQuick
Inherits:

Item

속성

신호

방법

상세 설명

AnimatedSprite는 동일한 이미지 파일에서 여러 프레임으로 제공되는 애니메이션을 렌더링하고 제어할 수 있는 기능을 제공합니다. 디스플레이의 프레임 속도에 맞춰 고정된 속도로 재생하거나 수동으로 진행 상황을 제어할 수 있습니다.

다음 스프라이트 시트를 생각해 보세요:

이 시트는 4개의 프레임으로 나눌 수 있습니다:

이러한 각 프레임을 프레임당 500밀리초의 속도로 재생하려면 다음 코드를 사용할 수 있습니다:

코드결과
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
}

기본적으로 애니메이션이 더 부드럽게 보이도록 프레임이 보간(블렌딩)됩니다. 이를 비활성화하려면 interpolatefalse 으로 설정합니다:

CodeResult
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
    interpolate: false
}

AnimatedSprite가 크기 조정에 반응하는 방식을 제어하려면 smooth 속성을 사용합니다.

SpriteSequence 과 달리 AnimatedSprite 유형은 Sprite 을 사용하여 여러 애니메이션을 정의하는 것이 아니라 단일 애니메이션 자체를 캡슐화합니다.

스프라이트 애니메이션도참조하세요 .

속성 문서

currentFrame : int

일시 중지된 경우 이 속성을 설정하거나 advance()를 호출하여 현재 프레임을 수동으로 진행할 수 있습니다.


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로 설정하면 frameRateframeDuration 를 모두 재정의합니다.

기본값은 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

애니메이션의 이미지 소스입니다.

frameHeightframeWidth 이 지정되지 않으면 하나의 긴 정사각형 프레임으로 간주됩니다. 그렇지 않으면 연속된 여러 행 또는 직사각형 프레임이 될 수 있으며, 한 행이 모두 소진되면 다음 행이 사용됩니다.

frameXframeY 을 지정하면 해당 x/y 좌표를 왼쪽 상단 모서리로 삼아 프레임 행을 가져옵니다.


신호 문서

finished()

이 신호는 스프라이트의 애니메이션이 완료될 때 발생합니다.

실행이 false 로 설정된 경우나 loops 속성이 AnimatedSprite.Infinite 로 설정된 스프라이트의 경우 발생하지 않습니다.

참고: 해당 핸들러는 onFinished 입니다.


메서드 문서

int advance()

스프라이트 애니메이션을 한 프레임 진행합니다.


int pause()

스프라이트 애니메이션을 일시 정지합니다. pausedtrue 인 경우 아무 작업도 수행하지 않습니다.

resume()도 참조하세요 .


int restart()

스프라이트 애니메이션을 중지한 후 시작합니다.


int resume()

pausedtrue 인 경우 스프라이트 애니메이션을 재개하고, 그렇지 않으면 아무 작업도 수행하지 않습니다.

pause()도 참조하십시오 .


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.