이 페이지에서

AnimatedSprite QML Type

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

Import Statement: import QtQuick
Inherits:

Item

속성

신호

방법

상세 설명

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

다음 스프라이트 시트를 살펴보겠습니다:

점차적으로 나타나는 파란색 점들이 담긴 4개의 프레임이 포함된 스프라이트 시트

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

테두리가 보이는 4개의 프레임으로 나뉜 스프라이트 시트

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

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

기본적으로 프레임은 애니메이션이 더 부드럽게 보이도록 보간(혼합) 처리됩니다. 이 기능을 비활성화하려면 ` interpolate `을 ` false`로 설정하세요:

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

프레임 보간 없이 재생되는 로딩 애니메이션

AnimatedSprite가 크기 조정에 어떻게 반응할지 제어하려면 smooth 속성을 사용하십시오.

SpriteSequence 와 달리, AnimatedSprite 유형은 Sprite 를 사용하여 여러 애니메이션을 정의하지 않고, 대신 단일 애니메이션을 자체적으로 캡슐화합니다.

‘스프라이트 애니메이션’항목도 참조하십시오 .

속성 설명서

currentFrame : int

일시 정지 상태일 때, 이 속성을 설정하거나 ` advance()`를 호출하여 현재 프레임을 수동으로 다음 프레임으로 넘길 수 있습니다.

finishBehavior : enumeration

애니메이션이 저절로 끝날 때의 동작.

상수설명
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인 경우, 애니메이션이 더 부드럽게 보이도록 스프라이트 프레임 간에 보간 처리가 이루어집니다.

기본값은 true입니다.

loops : int

애니메이션을 이 횟수만큼 재생한 후에는 애니메이션이 자동으로 중지됩니다. 음수 값은 유효하지 않습니다.

이 값을 ` AnimatedSprite.Infinite `로 설정하면 애니메이션이 저절로 재생되지 않습니다.

기본값은 AnimatedSprite.Infinite

paused : bool

일시 정지 상태에서는 현재 프레임을 수동으로 다음 프레임으로 넘길 수 있습니다.

기본값은 false 입니다.

reverse : bool

true 인 경우, 애니메이션이 역방향으로 재생됩니다.

기본값은 false 입니다.

running : bool

스프라이트가 애니메이션 중인지 여부.

기본값은 true입니다.

source : url

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

frameHeight 과 frameWidth 가 지정되지 않은 경우, 정사각형 프레임으로 구성된 하나의 긴 행으로 간주됩니다. 그렇지 않은 경우, 여러 개의 연속된 행이나 직사각형 프레임일 수 있으며, 한 행이 끝날 때 다음 행이 사용됩니다.

frameX 및 frameY 가 지정된 경우, 해당 x/y 좌표를 왼쪽 상단 모서리로 하여 프레임 행이 추출됩니다.

Signal 문서

finished()

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

' false'로 설정된 경우나, ' loops ' 속성이 ' AnimatedSprite.Infinite'로 설정된 스프라이트의 경우에는 이 신호가 발생하지 않습니다.

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

메서드 설명서

void advance(int frames = 1)

스프라이트 애니메이션을 지정된 수의 ` frames`만큼 진행합니다.

void pause()

스프라이트 애니메이션을 일시 정지합니다. ` paused `가 ` true`인 경우 이 명령은 아무런 동작도 수행하지 않습니다.

resume()도 참조하십시오 .

void restart()

스프라이트 애니메이션을 일시 중지했다가 다시 시작합니다.

void resume()

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

pause()도 참조하십시오 .

void start()

스프라이트 애니메이션을 시작합니다. 애니메이션이 이미 실행 중이라면 이 메서드를 호출해도 아무런 효과가 없습니다.

stop()도 참조하십시오 .

void stop()

스프라이트 애니메이션을 중지합니다. 애니메이션이 실행 중이 아닌 경우, 이 메서드를 호출해도 아무런 효과가 없습니다.

start()도 참조하십시오 .

© 2026 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.