2010-11-08 8 views
0

Je suis en train de créer un lecteur audio personnalisé. Le tout entraîne un composant MediaPlayback. J'ai un scrubber mis en place qui se déplace avec la progression de la chanson. Je veux pouvoir cliquer et frotter avec. Actuellement, je l'ai défini pour définir le playheadTime égal à la distance en pourcentage du curseur est déplacé à fois le totalTime du composant de lecture. Après la sortie du curseur, je trace le playheadTime et ça semble aller, mais je n'arrive pas à le reprendre. Voici le code dans le contrôleur:Flash AS2: définition du composant playheadTime du composant MediaPlayback

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; 
    } 
} 

Répondre

0

wow, je suis stupide. Je viens de réaliser que je suis en train de régler la tête de lecture sur la position actuelle dans un onEnterFrame. Puis, dans onRelease, je ne supprime pas cette référence, donc je vais juste régler le temps de la tête de lecture au point où j'ai déplacé la position de l'épurateur.

besoin de supprimer this.onEnterFrame dans slider_mc.onRelease.

Questions connexes