我正在构建一个自定义的音频播放器。整个过程驱动一个MediaPlayback组件。我有一个可以随着歌曲的进展而移动的洗涤器。我希望能够点击并使用它进行擦除。目前,我将其设置为将playheadTime设置为滑块被拖动到的百分比距离乘以播放组件的totalTime。在滑块释放后,我找到了playheadTime,它看起来很好,但我根本无法让它恢复播放。下面是控制器中的代码:
var totalDistance = bar_mc._width - slider_mc._width;
var wasPlaying = false;
this.onEnterFrame = function(){
var tTime = this._parent._parent._parent.music_mp3.totalTime;
var cTime = this._parent._parent._parent.music_mp3.playheadTime;
var percDone = cTime / tTime;
slider_mc._x = percDone * totalDistance;
}
slider_mc.onPress = function(){
wasPlaying = this._parent._parent._parent._parent.music_mp3.playing;
this._parent._parent._parent._parent.music_mp3.pause();
this.startDrag(false,0,0,totalDistance,0);
delete this._parent.onEnterFrame;
this.onEnterFrame = function(){
this._parent._parent._parent._parent.music_mp3.playheadTime = this._x / totalDistance * this._parent._parent._parent._parent.music_mp3.totalTime;
}
}
slider_mc.onRelease = slider_mc.onReleaseOutside = function(){
this.stopDrag();
if(wasPlaying){
this._parent._parent._parent._parent.music_mp3.play();
trace(this._parent._parent._parent._parent.music_mp3.playheadTime);
}
this._parent.onEnterFrame = function(){
var tTime = this._parent._parent._parent._parent.music_mp3.totalTime;
var cTime = this._parent._parent._parent._parent.music_mp3.playheadTime;
var percDone = cTime / tTime;
slider_mc._x = percDone * totalDistance;
}
}发布于 2010-11-08 12:22:24
哇,我太傻了。我刚刚意识到我正在将播放头时间设置为onEnterFrame中的当前位置。然后,在onRelease中,我不会删除该引用,因此它只会不断地将播放头时间设置为我拖动洗涤器位置的点。
需要在slider_mc.onRelease中删除this.onEnterFrame。
https://stackoverflow.com/questions/4121096
复制相似问题