Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    mio componente scrollbar

    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:
    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();
    potete vedere l'esempio qui:
    link

  2. #2
    noniuno mi aiuta? come mai il removeListener non funzia?!?!
    help!!!

  3. #3
    ho risolto! bastava definire l'oggetto listener al di fuori della funzione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.