| 패키지 | flash.events |
| 클래스 | public class SampleDataEvent |
| 상속 | SampleDataEvent Event Object |
| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
동적으로 생성되는 오디오를 관리하려는 경우 이 이벤트를 사용합니다. 이 환경에서 Sound 객체에는 실제로 사운드 데이터가 들어 있지 않습니다. 대신 이 객체는 이 이벤트에 할당하는 함수를 통해 스트리밍되어 들어오는 사운드 데이터에 대한 소켓 역할을 합니다.
함수에서는 ByteArray.writeFloat() 메서드를 사용하여 재생할 샘플링 데이터가 들어 있는 ByteArray 객체(event.data)에 씁니다.
Sound.play()를 호출하면 플레이어에서 이벤트 핸들러를 호출하여 사운드 샘플이 들어 있는 데이터 청크를 요청하기 시작합니다. 플레이어는 사용자가 데이터 제공을 중단하거나 SoundChannel.stop()이 호출될 때까지 이벤트를 계속 전송하고 사운드를 재생합니다.
이벤트의 지연 시간은 플랫폼마다 다르며 Flash Player의 이후 버전에서 변경될 수 있습니다. 따라서 특정 지연 시간을 사용하는 대신 직접 계산해야 합니다. ActionScript에서 지연 시간을 계산하려면 ((SampleDataEvent.position/44.1) - SoundChannelObject.position) 공식을 사용합니다.
2048에서 8192 사이의 샘플을 SampleDataEvent 객체에 제공합니다. 최상의 성능을 위해 샘플을 최대한 많이 제공하는 것이 좋습니다. 제공하는 샘플이 적을수록 재생 중 잡음이 발생하거나 고르지 않게 재생될 가능성이 높습니다. 이러한 동작은 플랫폼마다 다를 수 있으며 여러 가지 상황(예: 브라우저 크기 조절 시)에서 발생할 수 있습니다. 한 플랫폼에서는 2048 샘플만 제공하는 코드가 문제없이 작동하지만 같은 코드가 다른 플랫폼에서는 잘 작동하지 않을 수 있습니다. 지연 시간을 최대한 낮추려면 사용자가 데이터 양을 선택할 수 있게 하는 것이 좋습니다.
2048보다 적은 샘플을 제공하면 Flash Player에서 나머지 샘플을 재생한 다음 사운드 파일의 끝에 도달한 경우와 같이 사운드를 중지하여 SoundComplete 이벤트를 발생시킵니다.
Sound.extract() 메서드를 사용하여 Sound 객체에서 데이터를 추출한 다음 동적 스트림에 기록하여 재생할 수도 있습니다.
이 이벤트를 Sound 객체와 함께 사용할 때 활성화되는 다른 Sound 메서드는 Sound.extract() 및 Sound.play()뿐입니다. 다른 메서드나 속성을 호출하면 "invalid call" 예외가 발생합니다. SoundChannel 객체의 모든 메서드와 속성은 계속 사용할 수 있습니다.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
![]() | bubbles : Boolean [읽기 전용] 이벤트가 버블링 이벤트인지 여부를 나타냅니다. | Event | |
![]() | cancelable : Boolean [읽기 전용] 해당 이벤트와 연관된 비헤이비어를 차단할 수 있는지 여부를 나타냅니다. | Event | |
![]() | constructor : Object 지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | |
![]() | currentTarget : Object [읽기 전용] 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. | Event | |
| data : ByteArray 오디오 스트림의 데이터입니다. | SampleDataEvent | ||
![]() | eventPhase : uint [읽기 전용] 이벤트 흐름에서 현재 단계입니다. | Event | |
| position : Number 오디오 스트림에서 데이터의 위치입니다. | SampleDataEvent | ||
![]() | prototype : Object [정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다. | Object | |
![]() | target : Object [읽기 전용] 이벤트 대상입니다. | Event | |
![]() | type : String [읽기 전용] 이벤트 유형입니다. | Event | |
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null) 오디오 데이터 이벤트에 대한 정보가 포함된 이벤트 객체를 만듭니다. | SampleDataEvent | ||
SampleDataEvent 객체의 복사본을 만들고 각 속성의 값을 원본과 동일하게 설정합니다. | SampleDataEvent | ||
![]() | 사용자 정의 ActionScript 3.0 Event 클래스에서 toString() 메서드를 구현하기 위한 유틸리티 함수입니다. | Event | |
![]() | 지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | |
![]() | 이벤트에서 preventDefault() 메서드가 호출되었는지 여부를 확인합니다. | Event | |
![]() | Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | |
![]() | 이벤트의 기본 비헤이비어를 취소할 수 있는 경우, 그 비헤이비어를 취소합니다. | Event | |
![]() | 지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | |
![]() | 루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | |
![]() | 이벤트 흐름에서 현재 노드 및 그 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | |
![]() | 이벤트 흐름에서 현재 노드의 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다. | Event | |
SampleDataEvent 객체의 모든 속성이 들어 있는 문자열을 반환합니다. | SampleDataEvent | ||
![]() | 지정된 객체의 프리미티브 값을 반환합니다. | Object | |
| 상수 | 다음에 의해 정의됨 | ||
|---|---|---|---|
![]() | ACTIVATE : String = "activate" [정적] ACTIVATE 상수는 activate 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | ADDED : String = "added" [정적] Event.ADDED 상수는 added 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | ADDED_TO_STAGE : String = "addedToStage" [정적] Event.ADDED_TO_STAGE 상수는 addedToStage 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CANCEL : String = "cancel" [정적] Event.CANCEL 상수는 cancel 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CHANGE : String = "change" [정적] Event.CHANGE 상수는 change 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CLEAR : String = "clear" [정적] Event.CLEAR 상수는 clear 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CLOSE : String = "close" [정적] Event.CLOSE 상수는 close 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.CLOSING 상수는 closing 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | COMPLETE : String = "complete" [정적] Event.COMPLETE 상수는 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CONNECT : String = "connect" [정적] Event.CONNECT 상수는 connect 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | COPY : String = "copy" [정적] copy 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | CUT : String = "cut" [정적] cut 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | DEACTIVATE : String = "deactivate" [정적] Event.DEACTIVATE 상수는 deactivate 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | DISPLAYING : String = "displaying" [정적] Event.DISPLAYING 상수는 displaying 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | ENTER_FRAME : String = "enterFrame" [정적] Event.ENTER_FRAME 상수는 enterFrame 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | EXIT_FRAME : String = "exitFrame" [정적] Event.EXIT_FRAME 상수는 exitFrame 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.EXITING 상수는 exiting 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | FRAME_CONSTRUCTED : String = "frameConstructed" [정적] Event.FRAME_CONSTRUCTED 상수는 frameConstructed 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | FULLSCREEN : String = "fullScreen" [정적] Event.FULL_SCREEN 상수는 fullScreen 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.HTML_BOUNDS_CHANGE 상수는 htmlBoundsChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.HTML_DOM_INITIALIZE 상수는 htmlDOMInitialize 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.HTML_RENDER 상수는 htmlRender 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | ID3 : String = "id3" [정적] Event.ID3 상수는 id3 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | INIT : String = "init" [정적] Event.INIT 상수는 init 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.LOCATION_CHANGE 상수는 locationChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | MOUSE_LEAVE : String = "mouseLeave" [정적] Event.MOUSE_LEAVE 상수는 mouseLeave 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.NETWORK_CHANGE 상수는 networkChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | OPEN : String = "open" [정적] Event.OPEN 상수는 open 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | PASTE : String = "paste" [정적] Event.PASTE 상수는 paste 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | REMOVED : String = "removed" [정적] Event.REMOVED 상수는 removed 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | REMOVED_FROM_STAGE : String = "removedFromStage" [정적] Event.REMOVED_FROM_STAGE 상수는 removedFromStage 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | RENDER : String = "render" [정적] Event.RENDER 상수는 render 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | RESIZE : String = "resize" [정적] Event.RESIZE 상수는 resize 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
| SAMPLE_DATA : String = "sampleData" [정적] SampleDataEvent 이벤트 객체의 type 속성 값을 정의합니다. | SampleDataEvent | ||
![]() | SCROLL : String = "scroll" [정적] Event.SCROLL 상수는 scroll 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | SELECT : String = "select" [정적] Event.SELECT 상수는 select 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | SELECT_ALL : String = "selectAll" [정적] Event.SELECT_ALL 상수는 selectAll 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | SOUND_COMPLETE : String = "soundComplete" [정적] Event.SOUND_COMPLETE 상수는 soundComplete 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | TAB_CHILDREN_CHANGE : String = "tabChildrenChange" [정적] Event.TAB_CHILDREN_CHANGE 상수는 tabChildrenChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | TAB_ENABLED_CHANGE : String = "tabEnabledChange" [정적] Event.TAB_ENABLED_CHANGE 상수는 tabEnabledChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | TAB_INDEX_CHANGE : String = "tabIndexChange" [정적] Event.TAB_INDEX_CHANGE 상수는 tabIndexChange 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | UNLOAD : String = "unload" [정적] Event.UNLOAD 상수는 unload 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.USER_IDLE 상수는 userIdle 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
![]() | [정적] Event.USER_PRESENT 상수는 userPresent 이벤트 객체의 type 속성 값을 정의합니다. | Event | |
| data | 속성 |
data:ByteArray [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
오디오 스트림의 데이터입니다.
public function get data():ByteArray public function set data(value:ByteArray):void| position | 속성 |
position:Number [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
오디오 스트림에서 데이터의 위치입니다.
public function get position():Number public function set position(value:Number):void| SampleDataEvent | () | 생성자 |
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
오디오 데이터 이벤트에 대한 정보가 포함된 이벤트 객체를 만듭니다. Event 객체는 매개 변수로 이벤트 리스너에 전달됩니다.
매개 변수type:String —
이벤트 유형입니다. 이 값은 Event.SAMPLE_DATA입니다.
| |
bubbles:Boolean (default = false) — Event 객체가 이벤트 흐름의 버블링 단계에 참여하는지 여부를 결정합니다. | |
cancelable:Boolean (default = false) — Event 객체를 취소할 수 있는지 여부를 결정합니다. | |
theposition:Number (default = 0) — 오디오 스트림에서 데이터의 위치입니다. | |
thedata:ByteArray (default = null) — 데이터 바이트 배열입니다. |
| clone | () | 메서드 |
override public function clone():Event| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
SampleDataEvent 객체의 복사본을 만들고 각 속성의 값을 원본과 동일하게 설정합니다.
반환값Event — 원본과 동일한 속성 값을 갖는 새 SampleDataEvent 객체입니다. |
| toString | () | 메서드 |
override public function toString():String| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
SampleDataEvent 객체의 모든 속성이 들어 있는 문자열을 반환합니다. 문자열의 형식은 다음과 같습니다.
[SampleDataEvent type=value bubbles=value cancelable=value theposition=value thedata=value ]
String —
SampleDataEvent 객체의 모든 속성이 들어 있는 문자열입니다.
|
| SAMPLE_DATA | 상수 |
public static const SAMPLE_DATA:String = "sampleData"| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
type 속성(SampleDataEvent 이벤트 객체)의 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
position
| 오디오 데이터를 제공할 위치입니다. |
참고 사항
var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
for ( var c:int=0; c<8192; c++ ) {
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
}
}
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();