Salve raga, sto realizzando una scrollbar che carico con un loadMovie e alla quale
passo il nome del movie che deve scrollare.
Fin qui tutto bene funzia a meraviglia.
Il mio problema è con lo scroll legato alla rotellina del mouse, riesco ad aggiungere il listener
quando uno clicca sul pulsante della barra, ma vorrei che se ci fosse un evento onReleaseOutside
venisse tolto il listener, ma questo na va via!![]()
posto il codice commentato:
potete vedere l'esempio qui:codice://premessa scrollbar è l'intera barra di scorrimento compreso lo sfondo //mybar è il pulsante che viene trascinato e che è composto da + parti //per quando viene ridimensionato //barScroll è una variabile che creo all'inizio e mi serve ad avere un valore della //y di una determinata barra qualora ci siano + barre if(barScroll == undefined) barScroll= 0; //mymovie è il movie di riferimento //setto i valori per lo scrolling inviando l'altezza che deve avere l'intera barra di scorrimento function setScrollBar(scrollbar_h, movie){ movie_h = movie._height; movie_y = movie._y; mybar_minw = 40; //setto l'altezza minima che può avere la barra (ancora non usato) //tutti i valori sono basati sull'altezza da scrollare, se la scrollbar è alta 10 e il movie 17 la differenza (7) mi fornirà //i valori sui quali basarmi movie_diff = movie_h - scrollbar_h; if(movie_diff>0){ //se la differenza è maggiore di zero deve funzionare la scrollbar myscrollbar.back._height = scrollbar_h; //setto l'altezza allo sfondo //l'altezza della barra è inversamente proporzionale all'altezza del movie se il movie è 2 volte l'altezza della scrollbar //la barra è la metà, altezzabarra = altezzascrollbar/altezzamovie resizeval = Math.floor(scrollbar_h*(scrollbar_h/movie_h)); //ridimensiono e posiziono le parti che compongono il pulsante mybar che viene draggato myscrollbar.mybar.barsides._height = resizeval-3; myscrollbar.mybar.bar._height = resizeval-1; myscrollbar.mybar.barbottom._y = resizeval-3; myscrollbar.mybar.barlines._y = (resizeval-9)/2; //il rapporto fra pixel di scorrimento della bar e pixel di scorrimento del movie è dato dal rapporto //fra l'eccesso di altezza del movie (movie_diff) e lo spazio rimasto (altezzascrollbar-altezzabarra) rapp = movie_diff/(scrollbar_h - myscrollbar.mybar._height); //dragging con valore myscrollbar.mybar.onPress = function(){ this.startDrag(false, 0, 0, 0, (scrollbar_h - myscrollbar.mybar._height)); barScroll = myscrollbar.mybar._y; var barListener:Object = new Object(); barListener.onMouseWheel = function(delta:Number) { barScroll -= delta; if(barScroll<0) barScroll = 0; myscrollbar.mybar._y = barScroll; } Mouse.addListener(barListener); } myscrollbar.mybar.onRelease = myscrollbar.mybar.onReleaseOutside = function(){ this.stopDrag(); barScroll = this._y; } myscrollbar.mybar.onReleaseOutside = function(){ this.stopDrag(); barScroll = this._y; Mouse.removeListener(barListener); } myscrollbar.mybar.onEnterFrame = function(){//se si sposta la barra si sposta il movie movie._y = movie_y - this._y*rapp; } } else { //se la differenza è minore di zero la scrollbar non serve myscrollbar._visible = false; } } setScrollBar(200, quad); stop();
link

Rispondi quotando