首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数中音频的AS3 SoundChannel位置

函数中音频的AS3 SoundChannel位置
EN

Stack Overflow用户
提问于 2013-02-13 19:14:34
回答 1查看 1.4K关注 0票数 0

我遇到了变量作用域的问题。我知道这一定很容易解决,但是我找不到。

我需要在函数中通过声道播放声音。然后我需要另一个函数来读取声道位置。但它看不到它,因为播放它的函数中有新的var。如果我在函数外部播放它,我可以从另一个函数获得位置,但如果我在函数中请求声音,则另一个函数无法读取通道位置。我该怎么解决这个问题。

《守则》

代码语言:javascript
复制
import flash.filesystem.File; 
import flash.filesystem.FileMode; 
import flash.filesystem.FileStream;

var lastPosition:Number = 0; var CrossAudio = new Sound();
CrossAudio.load(new URLRequest("Cross.mp3"));

function playCross() {

    PapaAudioChannel = CrossAudio.play();


}
bt_play.addEventListener(MouseEvent.CLICK, playA);

function playA(event:MouseEvent):void    {   
trace(PapaAudioChannel.position);  // Does not work
/// It can't doesn't recognize the PapaAudioChannel because 
 /// it began playing in another function. 

}

如何使用第二个函数来查看音频的位置。我需要用播放和暂停按钮启动音频,所以播放必须在一个函数中开始。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-13 21:30:20

AFAIK声音可能会有一点延迟,所以在play()语句之后跟踪声音位置不是一个好主意。

编辑

顺便问一下,PapaAudioChannel是在哪里定义的?(应该是,因为这是AS3)

如果你在一个函数中定义了一个变量,它就会随着这个函数一起死掉,在函数的末尾!

因此,您可能希望在全局范围内定义PapaAudioChannel

代码语言:javascript
复制
import flash.filesystem.File; 
import flash.filesystem.FileMode; 
import flash.filesystem.FileStream;

var PapaAudioChannel:SoundChannel; // defines variable

var lastPosition:Number = 0; var CrossAudio = new Sound();
CrossAudio.load(new URLRequest("Cross.mp3"));

function playCross() {

    PapaAudioChannel = CrossAudio.play();

}

bt_play.addEventListener(MouseEvent.CLICK, playA);

function playA(event:MouseEvent):void {   

    trace(PapaAudioChannel.position);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14852237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档