패키지flash.events
클래스public class SampleDataEvent
상속SampleDataEvent Inheritance Event Inheritance 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 객체의 모든 메서드와 속성은 계속 사용할 수 있습니다.

예제 보기

참고 사항

flash.media.Sound


Public 속성
 속성다음에 의해 정의됨
 Inheritedbubbles : Boolean
[읽기 전용] 이벤트가 버블링 이벤트인지 여부를 나타냅니다.
Event
 Inheritedcancelable : Boolean
[읽기 전용] 해당 이벤트와 연관된 비헤이비어를 차단할 수 있는지 여부를 나타냅니다.
Event
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
 InheritedcurrentTarget : Object
[읽기 전용] 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
Event
  data : ByteArray
오디오 스트림의 데이터입니다.
SampleDataEvent
 InheritedeventPhase : uint
[읽기 전용] 이벤트 흐름에서 현재 단계입니다.
Event
  position : Number
오디오 스트림에서 데이터의 위치입니다.
SampleDataEvent
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
 Inheritedtarget : Object
[읽기 전용] 이벤트 대상입니다.
Event
 Inheritedtype : String
[읽기 전용] 이벤트 유형입니다.
Event
Public 메서드
 메서드다음에 의해 정의됨
  
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
오디오 데이터 이벤트에 대한 정보가 포함된 이벤트 객체를 만듭니다.
SampleDataEvent
  
SampleDataEvent 객체의 복사본을 만들고 각 속성의 값을 원본과 동일하게 설정합니다.
SampleDataEvent
 Inherited
formatToString(className:String, ... arguments):String
사용자 정의 ActionScript 3.0 Event 클래스에서 toString() 메서드를 구현하기 위한 유틸리티 함수입니다.
Event
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
이벤트에서 preventDefault() 메서드가 호출되었는지 여부를 확인합니다.
Event
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
이벤트의 기본 비헤이비어를 취소할 수 있는 경우, 그 비헤이비어를 취소합니다.
Event
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
이벤트 흐름에서 현재 노드 및 그 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다.
Event
 Inherited
이벤트 흐름에서 현재 노드의 후속 노드에 있는 모든 이벤트 리스너가 처리되지 않도록 합니다.
Event
  
SampleDataEvent 객체의 모든 속성이 들어 있는 문자열을 반환합니다.
SampleDataEvent
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
Public 상수
 상수다음에 의해 정의됨
 InheritedACTIVATE : String = "activate"
[정적] ACTIVATE 상수는 activate 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedADDED : String = "added"
[정적] Event.ADDED 상수는 added 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[정적] Event.ADDED_TO_STAGE 상수는 addedToStage 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCANCEL : String = "cancel"
[정적] Event.CANCEL 상수는 cancel 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCHANGE : String = "change"
[정적] Event.CHANGE 상수는 change 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCLEAR : String = "clear"
[정적] Event.CLEAR 상수는 clear 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCLOSE : String = "close"
[정적] Event.CLOSE 상수는 close 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only CLOSING : String = "closing"
[정적] Event.CLOSING 상수는 closing 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCOMPLETE : String = "complete"
[정적] Event.COMPLETE 상수는 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCONNECT : String = "connect"
[정적] Event.CONNECT 상수는 connect 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCOPY : String = "copy"
[정적] copy 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedCUT : String = "cut"
[정적] cut 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedDEACTIVATE : String = "deactivate"
[정적] Event.DEACTIVATE 상수는 deactivate 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedDISPLAYING : String = "displaying"
[정적] Event.DISPLAYING 상수는 displaying 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedENTER_FRAME : String = "enterFrame"
[정적] Event.ENTER_FRAME 상수는 enterFrame 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedEXIT_FRAME : String = "exitFrame"
[정적] Event.EXIT_FRAME 상수는 exitFrame 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only EXITING : String = "exiting"
[정적] Event.EXITING 상수는 exiting 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[정적] Event.FRAME_CONSTRUCTED 상수는 frameConstructed 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedFULLSCREEN : String = "fullScreen"
[정적] Event.FULL_SCREEN 상수는 fullScreen 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[정적] Event.HTML_BOUNDS_CHANGE 상수는 htmlBoundsChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[정적] Event.HTML_DOM_INITIALIZE 상수는 htmlDOMInitialize 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[정적] Event.HTML_RENDER 상수는 htmlRender 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedID3 : String = "id3"
[정적] Event.ID3 상수는 id3 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedINIT : String = "init"
[정적] Event.INIT 상수는 init 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[정적] Event.LOCATION_CHANGE 상수는 locationChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[정적] Event.MOUSE_LEAVE 상수는 mouseLeave 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[정적] Event.NETWORK_CHANGE 상수는 networkChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedOPEN : String = "open"
[정적] Event.OPEN 상수는 open 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedPASTE : String = "paste"
[정적] Event.PASTE 상수는 paste 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedREMOVED : String = "removed"
[정적] Event.REMOVED 상수는 removed 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[정적] Event.REMOVED_FROM_STAGE 상수는 removedFromStage 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedRENDER : String = "render"
[정적] Event.RENDER 상수는 render 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedRESIZE : String = "resize"
[정적] Event.RESIZE 상수는 resize 이벤트 객체의 type 속성 값을 정의합니다.
Event
  SAMPLE_DATA : String = "sampleData"
[정적] SampleDataEvent 이벤트 객체의 type 속성 값을 정의합니다.
SampleDataEvent
 InheritedSCROLL : String = "scroll"
[정적] Event.SCROLL 상수는 scroll 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSELECT : String = "select"
[정적] Event.SELECT 상수는 select 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSELECT_ALL : String = "selectAll"
[정적] Event.SELECT_ALL 상수는 selectAll 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[정적] Event.SOUND_COMPLETE 상수는 soundComplete 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[정적] Event.TAB_CHILDREN_CHANGE 상수는 tabChildrenChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[정적] Event.TAB_ENABLED_CHANGE 상수는 tabEnabledChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[정적] Event.TAB_INDEX_CHANGE 상수는 tabIndexChange 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedUNLOAD : String = "unload"
[정적] Event.UNLOAD 상수는 unload 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[정적] Event.USER_IDLE 상수는 userIdle 이벤트 객체의 type 속성 값을 정의합니다.
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[정적] 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 ]

반환값
StringSampleDataEvent 객체의 모든 속성이 들어 있는 문자열입니다.
상수 정보
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 오디오 데이터를 제공할 위치입니다.

참고 사항

예제 예제 사용 방법
Sound_sampleDataExample.as

다음 예제에서는 단순한 사인파를 재생합니다.
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();