SeekBar 및 VolumeBar 구성 요소는 유사해 보이지만 서로 다른 기능을 갖고 있습니다. 두 구성 요소 모두 핸들이 있으며 동일한 핸들 추적 메커니즘을 사용하고 진행률 및 채움률을 추적하는 중첩 클립을 지원합니다.
FLVPlayback 구성 요소의 ActionScript 코드에서는 SeekBar 또는 VolumeBar 구성 요소의 등록 포인트(
원점
이라고도 함)가 내용의 왼쪽 위 모서리에 있는 것으로 간주하는 경우가 많기 때문에 이 규칙을 따르는 것이 중요합니다. 그렇지 않으면 핸들, 진행률 및 채움률 동영상 클립을 사용하는 데 문제가 발생할 수 있습니다.
스킨 SWF 파일에 있는 검색 막대는 런타임에 크기 조절이 필요하기 때문에 9-슬라이스 크기 조절을 사용하지만 SeekBar FLV Custom UI 구성 요소는 중첩된 동영상 클립을 갖고 있기 때문에 9-슬라이스 크기 조절을 사용하지 않으며 사용할 수도
없습니다
. SeekBar를 더 넓게 또는 길게 만들려면 전체 크기를 조절하는 것이 아니라 내용을 변경해야 합니다.
핸들
핸들 동영상 클립의 인스턴스는 프레임 2에 배치됩니다. BackButton 및 ForwardButton 구성 요소와 마찬가지로 구성 요소가 프레임 2로 실제 이동하는 것은 아니며 이러한 동영상 클립은 편집을 보다 간편하게 하고 [심볼 속성] 대화 상자에서 [첫 프레임으로 내보내기] 체크 상자를 선택하지 않고도 SWF 파일에 강제로 로드되도록 하기 위해 프레임 2에 배치해 놓은 것입니다. 그러나 [ActionScript에 내보내기] 옵션은 여전히 선택해야 합니다.
핸들 동영상 클립의 배경에는 알파 값이 0으로 설정된 사각형이 있습니다. 이 사각형은 핸들의 히트 영역 크기를 늘려서 버튼의 히트 상태와 유사하게 모양을 변경하지 않고도 쉽게 핸들을 잡을 수 있도록 합니다. 핸들은 런타임에 동적으로 만들어지기 때문에 버튼이 아니라 동영상 클립이어야 합니다. 알파 값이 0으로 설정된 이 사각형은 다른 목적으로 사용되는 것이 아니며 핸들 내부를 사용자가 원하는 다른 이미지로 교체할 수 있습니다. 등록 포인트를 핸들 동영상 클립의 수평 중앙에 유지하는 것이 가장 좋습니다.
다음 ActionScript 코드는 SeekBar 구성 요소의 프레임 1에 삽입되어 핸들을 관리합니다.
stop();
handleLinkageID = "SeekBarHandle";
handleLeftMargin = 2;
handleRightMargin = 2;
handleY = 11;
프레임 2에 내용이 있으므로
stop()
함수 호출이 필요합니다.
두 번째 행은 핸들로 사용할 심볼을 지정합니다. 프레임 2에 있는 핸들 동영상 클립 인스턴스를 간단히 편집하여 사용할 경우 이 부분을 변경할 필요가 없습니다. 런타임에 FLVPlayback 구성 요소가 스테이지의 지정한 동영상 클립의 인스턴스를 Bar 구성 요소 인스턴스의 형제 인스턴스로 만듭니다. 즉, 동일한 부모 동영상 클립을 갖게 됩니다. 그러므로 막대가 루트 레벨에 있는 경우 핸들 또한 루트 레벨에 있어야 합니다.
handleLeftMargin
변수는 핸들의 최초 위치(0%)를 결정하고,
handleRightMargin
변수는 핸들의 마지막 위치(100%)를 결정합니다. 이 숫자를 통해 막대 컨트롤의 왼쪽 끝과 오른쪽 끝의 오프셋을 구하여 양수이면 막대 내부 구역을 표시하고 음수이면 막대 외부 구역을 표시합니다. 이 오프셋은 핸들의 등록 포인트를 기준으로 이동할 수 있는 방향을 지정합니다. 등록 포인트를 핸들의 중앙으로 지정한 경우 핸들의 왼쪽 끝과 오른쪽 끝이 막대의 영역을 지나치게 됩니다. 검색 막대 동영상 클립에서는 등록 포인트가 내용의 왼쪽 위 모서리에 있어야 정상적으로 작동됩니다.
handleY
변수는 핸들의
y
위치를 막대 인스턴스에 상대적인 위치로 결정합니다. 이 위치 값은 각 동영상 클립의 등록 포인트를 기준으로 합니다. 샘플 핸들에서 등록 포인트는 보이지 않는 히트 상태 사각형과는 관계없이 시각적으로 보이는 부분에 상대적인 위치에 배치할 수 있도록 삼각 모양의 끝 부분에 있습니다. 또한 막대 동영상 클립은 등록 포인트가 내용의 왼쪽 위 모서리에 있어야만 정상적으로 작동합니다.
예를 들어, 이러한 제한 조건에서 막대 컨트롤이 (100, 100)으로 설정되고 폭이 100픽셀일 경우 핸들의 가로 이동 범위는 102에서 198이며 세로로는 111에 위치합니다.
handleLeftMargin
및
handleRightMargin
을 -2로 변경하고
handleY
를 -11로 변경하면 핸들의 가로 이동 범위는 98에서 202로 변경되고 세로로는 89에 위치하게 됩니다.
진행률 및 채움률 동영상 클립
SeekBar 구성 요소에는
진행률
동영상 클립이 있으며 VolumeBar에는
채움률
동영상 클립이 있지만 실제 이 구성 요소를 사용할 때는 진행률 및 채움률 동영상 클립 중 하나를 사용하거나 전혀 사용하지 않거나 둘 모두 사용할 수 있습니다. 이 두 가지 동영상 클립은 구조적으로 동일하며 유사하게 동작하지만 서로 다른 값을 추적합니다. 진행률 동영상 클립은 FLV 파일 다운로드 시 채워지는 동영상 클립(FMS에서 스트리밍하는 경우에는 항상 채워져 있는 상태이므로 HTTP 다운로드에서만 유용한 요소)이고 채움률 동영상 클립은 핸들이 왼쪽에서 오른쪽으로 이동하면서 채워지는 동영상 클립입니다.
FLVPlayback 구성 요소에서는 특정 인스턴스 이름으로 이 동영상 클립 인스턴스를 찾기 때문에 진행률 동영상 클립 인스턴스가 막대 동영상 클립을 부모로 갖고 있어야 하며 인스턴스 이름이 progress_mc여야 합니다. 채움률 동영상 클립 인스턴스의 이름은 fullness_mc여야 합니다.
진행률 및 채움률 동영상 클립 내부에 fill_mc 동영상 클립 인스턴스를 중첩시키거나 중첩시키지 않을 수 있습니다. VolumeBar fullness_mc 동영상 클립은 fill_mc 동영상 클립을
사용하는
방법을 보여 주며, SeekBar progress_mc 동영상 클립은 fill_mc 동영상 클립을
사용하지 않는
방법을 보여 줍니다.
크기를 조절하면 모양이 왜곡되는 채움을 사용하려면 내부에 중첩된 fill_mc 동영상 클립을 사용하는 방법이 유용합니다.
VolumeBar fullness_mc 동영상 클립에서는 중첩된 fill_mc 동영상 클립 인스턴스가 마스크 처리됩니다. 동영상 클립을 만들 때 마스크를 적용할 수 있습니다. 그렇지 않으면 런타임에 마스크가 동적으로 만들어집니다. 동영상 클립에 마스크를 적용할 경우 해당 인스턴스 이름을
mask_mc
로 지정하고 100%에 도달했을 때 fill_mc에서 나타나도록 설정합니다. fill_mc에 마스크를 적용하지 않는 경우 동적으로 만들어진 마스크는 사각형 모양으로 100%에서 fill_mc와 동일한 크기로 만들어집니다.
fill_mc.slideReveal의 값이
true
인지
false
인지에 따라 마스크가 적용된 fill_mc 동영상 클립이 다음 두 가지 방법 중 하나로 표시됩니다.
fill_mc.slideReveal이
true
인 경우 fill_mc가 왼쪽에서 오른쪽으로 이동하면서 마스크를 통해 표시됩니다. 0%에서는 왼쪽 끝에 있으므로 아무것도 마스크를 통해 표시되지 않습니다. 백분율이 증가함에 따라 100%에 도달할 때까지 계속 오른쪽으로 이동하며, 스테이지에서 만들어진 위치로 되돌아갑니다.
fill_mc.slideReveal이
false
또는 undefined인 경우(기본 비헤이비어) 마스크가 왼쪽에서 오른쪽으로 크기 조절되면서 fill_mc가 차츰 표시됩니다. 0%에서는 마스크가 가로로 05만큼 크기 조절되며 백분율이 증가함에 따라
scaleX
가 증가하고 100%에 도달하면 fill_mc 전체가 표시됩니다. mask_mc가 만들어질 때 이미 크기가 조절되었을 수 있으므로 항상
scaleX
= 100을 의미하는 것은 아닙니다.
fill_mc를 사용하지 않는 방법이 fill_mc를 사용하는 방법보다 간편하지만 가로 채움 모양이 왜곡됩니다. 왜곡 현상을 원하지 않는다면 fill_mc를 사용해야 합니다. SeekBar progress_mc에서는 이 방법을 보여 줍니다.
진행률 또는 채움률 동영상 클립은 백분율에 따라 가로로 크기 조절됩니다. 0%에서는 인스턴스의
scaleX
가 0으로 설정되며 인스턴스가 화면에 보이지 않습니다. 백분율이 증가함에 따라
scaleX
가 조절되며 100%에 도달하면 동영상 클립이 처음 스테이지에 만들어졌을 때와 동일한 크기가 됩니다. 앞에서와 마찬가지로 동영상 클립 인스턴스가 만들어졌을 때 이미 크기가 조절되었을 수 있으므로 항상
scaleX
= 100을 의미하는 것은 아닙니다.