Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410

    onMouseWhell da limitare

    Ciao a tutti,
    ho un testo dentro una dentro mc, volevo farla scrollare tramite la rotellina del mouse. Ho messo:

    mouseListener = new Object ()
    mouseListener.onMouseWhell (delta) {
    text_mc._y += delta*5;
    }
    Mouse.AddListener (mouseLIstener);

    Insomma il codice della guida in linea. Ora però vorrei limitare lo scroll di modo che non vada più in su quando è all'inizio e allo stesso modo si fermi quando termina il testo.

    intanto grazie!

  2. #2

    Re: onMouseWhell da limitare

    Originariamente inviato da frifrini
    mouseListener = new Object ()
    mouseListener.onMouseWhell (delta) {
    text_mc._y += delta*5;
    }
    Mouse.AddListener (mouseLIstener);

    Insomma il codice della guida in linea...
    beh ... aggiornati la guida perche' onMouseWhell non esiste, casomai e' onMouseWheel e AddListener neanche, casomai e' addListener ( case sensitive ... )

    comunque prova cosi'

    codice:
    var mouseListener:Object = new Object();
    mouseListener.onMouseWheel = function(delta:Number) {
    	if(text_mc.maxScroll == undefined) {
    		text_mc.minScroll = text_mc.maxScroll = text_mc._y;
    		text_mc.maxScroll += text_mc._height; 
    	}
    	var newPosition:Number = new Number(delta * 5);
    	if(newPosition < 0 && (text_mc._y + newPosition) < -text_mc.maxScroll)
    		text_mc._y = -text_mc.maxScroll;
    	else if(newPosition > 0 && (text_mc._y + newPosition) > text_mc.minScroll)
    		text_mc._y = text_mc.minScroll;
    	else
    		text_mc._y += newPosition;
    
    };
    Mouse.addListener(mouseListener);
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410
    Intanto grazie mille!
    Non è la povera guida da aggiornare ma il cervello del sottoscritto che non ha ancora imparato a scrivere decentemente.

    Il codice che mi hai postato funge bene solo che continua a scrollare anche dopo la fine dell'mc... diciamo che è come se non leggesse il valore _height. Se sostituisco

    text_mc.maxScroll += text_mc._height;

    con ad esempio

    text_mc.maxScroll += 300;

    lo scroll si ferma al valore inserito.

    Sicuramente stò sbagliando io qualcosa come al solito!

  4. #4
    Originariamente inviato da frifrini
    Sicuramente stò sbagliando io qualcosa come al solito!
    i casi potrebbero essere 2:

    1 - text_mc viene popolato dopo o durante lo scrolling con la rotella , alche' maxScroll , che viene impostato una sola volta, non va per ovvie ragioni, non puo' sapere a priori quanto testo avra' text_mc


    2 - text_mc non ha embedFonts , e senza il Flash ha un po' di difficolta' a calcolare la grandezza del testo
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    dimenticavo ... prova con questo:
    codice:
    var mouseListener:Object = new Object();
    mouseListener.onMouseWheel = function(delta:Number) {
    	if(text_mc.maxScroll == undefined) {
    		text_mc.minScroll = text_mc.maxScroll = text_mc._y;
    		text_mc.maxScroll += text_mc._height;
    		text_mc.remHeight = text_mc._height;
    	}
    	else if(text_mc.remHeight != text_mc._height) {
    		text_mc.maxScroll = text_mc.minScroll + text_mc._height;
    		text_mc.remHeight = text_mc._height;
    	}
    	var newPosition:Number = new Number(delta * 5);
    	if(newPosition < 0 && (text_mc._y + newPosition) < -text_mc.maxScroll)
    		text_mc._y = -text_mc.maxScroll;
    	else if(newPosition > 0 && (text_mc._y + newPosition) > text_mc.minScroll)
    		text_mc._y = text_mc.minScroll;
    	else
    		text_mc._y += newPosition;
    
    };
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410
    Il secondo code si comporta come il primo.

    La text_mc effettivamente e molto "lunga" e finisce fuori dallo stage, pensi che per questo non ne legga la dimensione totale? Mi farebbe strano...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410
    aspetta forse ho risolto... faccio due prove poi ti dico

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410
    COME NON DETTO!
    speravo di aver scoperto l'arcano invece il problema persiste...

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    410
    OK!
    Questa volta forse ci sono sul serio. Il tuo codice era giusto ma probabilmente terminava si di scrollare la pagina a seconda della lunghezza della mc ma questo coincideva con il bordo superiore della pagina e quindi dava l'impressione di non fermarsi. Ho solo modificato così:

    text_mc.maxScroll += text_mc._height - 200;

    e il testo smette di di essere scrollabile a 200 pixel dal bordo.
    Funziona, secondo te ho fatto il ragionamento giusto?

    Grazie mille Andr3a, non ci sarei mai riuscito!


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.