LSound(LWebAudio) Class
此类创建和播放音频的 LSound 对象。
当浏览器支持Web Audio Api并且设置LGlobal.webAudio = true(默认值是true)的时候,LSound会自动继承LWebAudio对象。
当LSound继承LWebAudio的时候,IOS浏览器下可以预先加载音频文件,但是播放音频必须在点击事件中进行。
当LSound继承LWebAudio的时候,IOS浏览器下可以同时播放多个音频文件,但是有上线,IOS浏览器的播放上限大约为4个。
Constructor
LSound(LWebAudio)
()
public
Example:
var backLayer;
var sound;
function main () {
backLayer = new LSprite();
addChild(backLayer);
sound = new LSound();
......
var url = "./sample.";
sound.load(url+"mp3,"+url+"ogg,"+url+"wav");
sound.addEventListener(LEvent.COMPLETE,loadOver);
}
function onup (e) {
......
sound.play();
}
function loadOver (e) {
backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);
}
Item Index
Methods
Properties
Methods
addEventListener
-
type
-
listener
使用 LEventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。
Parameters:
-
type
String事件的类型。
-
listener
Function处理事件的侦听器函数。
callParent
-
functionName
-
arguments
调用父类的函数。
Parameters:
-
functionName
String函数名
-
arguments
Array固定值arguments
Example:
function funA(){
LExtends(this,LObject,[]);
}
funA.prototype.myName = function(){
return "AAA";
}
function funB(){
LExtends(this,funA,[]);
}
funB.prototype.myName = function(){
return "BBB";
}
function funC(){
LExtends(this,funA,[]);
}
funC.prototype.myName = function(){
return this.callParent("myName",arguments);
}
LInit(1000/50,"legend",800,150,main);
function main(){
LGlobal.setDebug(true);
var objB = new funB();
trace(objB.myName());//BBB
var objC = new funC();
trace(objC.myName());//AAA
}
close
()
public
关闭当前播放的音频。
dispatchEvent
-
event
将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 LEventDispatcher 对象。
Parameters:
-
event
LEvent | String调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
Returns:
如果成功调度了事件,则值为 true。
Example:
function MyEventObject(){
var self = this;
LExtends(self,LSprite,[]);
self.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
self.graphics.drawRect(1,"#FF0000",[100,0,100,100],true,"#FF0000");
self.addEventListener(LMouseEvent.MOUSE_UP,self.onclick);
self.addEventListener(MyEventObject.CLICK_LEFT,function(event){
trace("dispatchEvent");
});
self.addEventListener(MyEventObject.CLICK_RIGHT,function(event){
trace("dispatchEvent event.name = " + event.name);
});
}
MyEventObject.CLICK_LEFT = "click_left";
MyEventObject.CLICK_RIGHT = "click_right";
MyEventObject.prototype.onclick = function(event){
var self = event.clickTarget;
if(event.selfX < 100){
self.dispatchEvent(MyEventObject.CLICK_LEFT);
}else{
var event = new LEvent(MyEventObject.CLICK_RIGHT);
event.name = "LEvent Test";
self.dispatchEvent(event);
}
}
getCurrentTime
()
Int
public
获取已经播放的时间。
Returns:
已经播放的时间。
getVolume
()
Float
public
获取音量。
Returns:
音量。
hasEventListener
-
type
检查 LEventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样,您就可以确定 LEventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。
Parameters:
-
type
String事件的类型。
Returns:
如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
load
-
url
启动从指定 URL 加载外部 音频 文件的过程。
为了支持不同浏览器,可以像下面这样,同时传入多个多媒体类型文件。
medio.load("medias/a.mp3,medias/a.wav,medias/a.ogg");
Parameters:
-
url
String指向外部 音频 文件的 URL。(也可以直接使用AudioBuffer或者ArrayBuffer类型的数据)
play
-
startTime
-
loops
播放该音频对象。
Parameters:
-
startTime
Float应开始播放的初始位置(以秒为单位)。
-
loops
Int定义在声道停止播放之前,声音循环回 startTime 值的次数。
playSegment
-
startTime
-
segment
-
loops
播放指定长度的其中的一段音频。
Parameters:
-
startTime
Float应开始播放的初始位置(以秒为单位)。
-
segment
Float指定长度(以秒为单位)。
-
loops
Int定义在声道停止播放之前,声音循环回 startTime 值的次数。
playTo
-
startTime
-
endTime
-
loops
播放指定区间内的一段音频。
Parameters:
-
startTime
Float应开始播放的初始位置(以秒为单位)。
-
endTime
Float停止播放的位置(以秒为单位)。
-
loops
Int定义在声道停止播放之前,声音循环回 startTime 值的次数。
removeAllEventListener
()
public
从 LEventDispatcher 对象中删除所有侦听器。
removeEventListener
-
type
-
listener
从 LEventDispatcher 对象中删除侦听器。如果没有向 LEventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。
Parameters:
-
type
String事件的类型。
-
listener
Function要删除的侦听器对象。
setVolume
-
value
设定音量。
Parameters:
-
value
Float音量。
stop
()
public
暂停当前播放的音频。
Properties
length
Int
public
LSound对象的长度
LSound.webAudioEnabled
Boolean
public
static
当前浏览器是否支持Web Audio。
objectIndex
Int
public
对象的ID
playing
Boolean
public
LSound对象是否正在播放
Events
LEvent.COMPLETE
多媒体文件加载完成事件。
LEvent.ERROR
多媒体文件加载异常事件。
LEvent.PROGRESS
多媒体文件加载进度事件。
LEvent.SOUND_COMPLETE
public
播放结束事件,一个音频文件播放完之后调度,如果是使用playSegment函数播放音频的一段,则播放完一段音频之后调度。