包 | 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)
。
在 SampleDataEvent
对象中提供 2048 到 8192 个样本。为了获得最佳性能,请尽可能多地提供样本。提供的样本越少,在播放过程中就越有可能出现单击和弹出事件。此行为在不同的平台上会有所不同,并且会在各种情况下发生。例如,当调整浏览器的大小时。在仅提供 2048 个样本时,您可能会编写可在一个平台上运行的代码,但在不同的平台上运行时,同样的代码可能无法正常工作。若要尽可能缩短滞后时间,请考虑允许用户选择数据量。
如果提供的样本数少于 2048 个,则 Flash Player 将播放其余的样本,然后停止声音,就像到达了声音文件的末尾,并生成 SoundComplete 事件。
也可以使用 Sound.extract()
方法来提取 Sound 对象中的数据,然后便可将数据写入到动态流以进行播放。
将此事件与 Sound 对象一起使用时,启用的其他 Sound 方法仅包括 Sound.extract()
和 Sound.play()
。调用任何其他方法或属性将导致“调用无效”异常。仍启用 SoundChannel 对象的所有方法和属性。
另请参见
属性 | 定义方 | ||
---|---|---|---|
bubbles : Boolean [只读 (read-only)] 指示事件是否为冒泡事件。 | Event | ||
cancelable : Boolean [只读 (read-only)] 指示是否可以阻止与事件相关联的行为。 | Event | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentTarget : Object [只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。 | Event | ||
data : ByteArray 音频流中的数据。 | SampleDataEvent | ||
eventPhase : uint [只读 (read-only)] 事件流中的当前阶段。 | Event | ||
position : Number 数据在音频流中的位置。 | SampleDataEvent | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
target : Object [只读 (read-only)] 事件目标。 | Event | ||
type : String [只读 (read-only)] 事件的类型。 | 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 | ||
CLOSING : String = "closing" [静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。 | Event | ||
COMPLETE : String = "complete" [静态] Event.COMPLETE 常量定义 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 | ||
EXITING : String = "exiting" [静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。 | Event | ||
FRAME_CONSTRUCTED : String = "frameConstructed" [静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。 | Event | ||
FULLSCREEN : String = "fullScreen" [静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。 | Event | ||
HTML_BOUNDS_CHANGE : String = "htmlBoundsChange" [静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。 | Event | ||
HTML_DOM_INITIALIZE : String = "htmlDOMInitialize" [静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。 | Event | ||
HTML_RENDER : String = "htmlRender" [静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。 | Event | ||
ID3 : String = "id3" [静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。 | Event | ||
INIT : String = "init" [静态] Event.INIT 常量定义 init 事件对象的 type 属性值。 | Event | ||
LOCATION_CHANGE : String = "locationChange" [静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。 | Event | ||
MOUSE_LEAVE : String = "mouseLeave" [静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。 | Event | ||
NETWORK_CHANGE : String = "networkChange" [静态] 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 | ||
USER_IDLE : String = "userIdle" [静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。 | Event | ||
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 ]
String —
包含 SampleDataEvent 对象的所有属性的字符串。
|
SAMPLE_DATA | 常量 |
public static const SAMPLE_DATA:String = "sampleData"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
定义 SampleDataEvent
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
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();