Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137

    onMouseOver : azione continuata mentre il mouse sta sopra un bottone

    Buongiorno a tutti,
    è da ieri che cerco tra forum e articoli per risolvere questa che credo sia una fesseria:
    la mia esigenza è che uno sfondo (messo in un mc chiamato oggetto) si muova lentamente scrollando orizzontale.
    ho quindi creato dei bottoni a dx e sx (rettangoli semplicissimi) e poi sulle aree ho messo questo codice:

    Codice PHP:
    on (rollOver) {
        while (
    _xmouse>&& _xmouse<40) {
            
    trace ("xmouse:"+_xmouse);
            var 
    m_x:Number 1;
            
    trace ("X:"+this.oggetto._x);
            if (
    this.oggetto._x>=_root.limite_dx) {
                
    //limite di scroll
                
    this.oggetto._x _root.limite_dx;
            } else {
                
    this.oggetto._x += m_x;
            }
        }


    che però fa un gran casino...mi va in loop lo script e insomma non va bene..
    c'è qualcosa che mi sfugge.
    L'unica cosa che ho capito che rollOver vuol dire che l'azione parte la prima volta e poi per
    continuare lo scrooll dovrei riuscire dall'area e rientrare.
    Per questo ho messo
    while (_xmouse>0 && _xmouse<40) {
    AIUTO qualcuno mi illumini
    Avevo anche provato a utilizzare un mc invece del bottone e utilizzare una procedura onenterframe
    ma forse non mi è chiara la filosofia ..fatto sta che ho creato uno script che mi looppa lo stesso.
    vi prego...(tono tipo la loren nella pubblicità) AIUTATEEME
    AIUTO!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    adesso ho modificato il bottone che è diventato un mc che contiene solo un rettangolo
    e sopra il mc ho messo questo per uno dei due (quello a destra )
    Codice PHP:
    onClipEvent (enterFrame) {
        
    trace ("xmouse:"+_xmouse);
        var 
    m_x:Number 1;
        
    trace ("X:"+this._parent.oggetto._x);
        if (
    this._parent.oggetto._x<=_root.limite_sx) {
            
    //fermo il movimento imponendo la posizione
            
    this._parent.oggetto._x _root.limite_sx;
        }
        
    this._parent.oggetto._x -= m_x;
        
    delete this.onEnterFrame;

    a sinistra c'è lo stesso con il codice leggermete modificato ovviamnete ...ma non funziona nulla.. non mi da errore ma neanche si muove!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    nessuno ha il tempo di rispondermi??


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    va beh che devo di'...
    sto folgorata...ho messo sta roba e ora funzia:
    Codice PHP:
    onClipEvent (enterFrame) {
        var 
    m_x:Number 1;
        var 
    min:Number 0;
        var 
    max:Number 40;
        
    //trace ("xmouse:"+this._xmouse);
        
    if (this._xmouse>=min && this._xmouse<=max) {
            
    //trace ("X:"+this._parent.oggetto._x);
            //fermo il movimento al limite
            
    if (this._parent.oggetto._x<=_root.limite_sx) {
                
    this._parent.oggetto._x _root.limite_sx;
            }
            
    this._parent.oggetto._x -= m_x;
        }
        
    //delete this.onEnterFrame; 

    ho cambiato solo cambiando if (this._xmouse>= min && this._xmouse<=max) {


    boh grazie comunque...se qualcuno sapesse se dovrei mettere il delete o no!!
    sarei ancora più felice...
    ma comunque me la canto e me la suono

  5. #5
    ma si muove solo a sx? non c'è la possibilità di farlo andare a dx e a sx?
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    ma certo ho messo dall'altro lato una stessa area che però ha questo codice:
    Codice PHP:
    onClipEvent (enterFrame) {
        var 
    m_x:Number 1;
        var 
    min:Number 0;
        var 
    max:Number 40;
        
    //trace ("xmouse:"+this._xmouse);
        
    if (this._xmouse>=min && this._xmouse<=max) {
            
    //trace ("X:"+this._parent.oggetto._x);
            //fermo il movimento imponendo la posizione
            
    if (this._parent.oggetto._x>=_root.limite_dx) {
                
    this._parent.oggetto._x _root.limite_dx;
            }
            
    this._parent.oggetto._x += m_x;
        }
        
    //delete this.onEnterFrame; 

    e funziona bene|!! ripeto..non so se il
    delete this.onEnterFrame;
    fa messo o no per ora l'ho lasciato commentato...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    arieccomi...seguendo alcune indicazioni di rempox ho modificato un po' e

    nell'area a dx che sposta il fondo a sinistra ho messo

    Codice PHP:
    onClipEvent (enterFrame) {
        var 
    new_x:Number _root.limite_sx-this._parent.oggetto._x;
        var 
    min:Number 0;
        var 
    max:Number 40;
        
    //trace ("xmouse:"+this._xmouse);
        
    if (this._xmouse>=min && this._xmouse<=max) {
            
    trace ("X:"+this._parent.oggetto._x+"newx:"+new_x);
            
    //fermo il movimento imponendo la posizione
            
    if (this._parent.oggetto._x<=_root.limite_sx) {
                
    this._parent.oggetto._x _root.limite_sx;
                
    delete this.onEnterFrame;
            } else {
                
    this._parent.oggetto._x -= new_x/50;
            }
        }

    e nell'area a sx che sposta il Fondo (mc=oggetto ) a dx :
    Codice PHP:
    onClipEvent (enterFrame) {
        var 
    new2_x:Number _root.limite_dx-this._parent.oggetto._x;
        var 
    min:Number 0;
        var 
    max:Number 40;
        
    //trace ("xmouse:"+this._xmouse);
        
    if (this._xmouse>=min && this._xmouse<=max) {
            
    trace ("X:"+this._parent.oggetto._x+"newx:"+new2_x);
            
    //fermo il movimento imponendo la posizione
            
    if (this._parent.oggetto._x>=_root.limite_dx) {
                
    this._parent.oggetto._x _root.limite_dx;
            } else {
                
    this._parent.oggetto._x += new2_x/50;
            }
            
    delete this.onEnterFrame;
        }

    intanto come al solito... (non avendolo capito bene ) non so dove mettere il delete enterframe e poi

    quello nell'area a dx funziona nel movimento ma non si ferma al limite
    e invece il sx non funziona proprio...
    lo so ho fatto cose più complicate ma...purtroppo sono rimasta alla versione 5 di flash..
    nel senso che ora lavoro con la 8prof ma ho sorvolato completamente nello studio una serie di approndimenti... e ora ho proprio delle lacune che colmo mano a mano che nel lavoro mi ritrovo a sbatterci il grugno....
    le classi per esempio le uso ma veramnete improvvisando e loggendo qui e lì...
    va beh se qualcuno riesci a darmi una mano in questo...gliene sare veramente grata

  8. #8
    beh volendo posso darti il cod che fa spostare un clip (che chiamo slide) con delle aree sensibili ....magari prendi questo cod e ci implementi l'area sensibile come hai già fatto ...

    cioè ho sul frame
    Codice PHP:
    spostamento=10;
    limitdx=163;
    limitsx=-1996;
    function 
    spostam(dove){
        
    trace(slide._x)
        
    slide.onEnterFrame = function() {
            if(
    dove=="dx"){
                if(
    slide._x<=limitdx){
                      
    slide._x+=spostamento;
                    
                }
            }
            if(
    dove=="sx"){
                if(
    slide._x>=limitsx){
                    
    slide._x-=spostamento;
                    
                }
            }
            
        }
    }
    function 
    ferma(){
        
    trace("ferma")
        
    trace(slide._x)
        
    delete slide.onEnterFrame
        

    mentre sulle aree sensibili ripsettivamente a dx e a sx
    a dx
    on (rollOver) {
    spostam("sx")
    }
    on (rollOut) {
    ferma()
    }

    a sx
    on (rollOver) {
    spostam("dx")
    }
    on (rollOut) {
    ferma()
    }

    vedi un pò se può servirti
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    137
    il problema è che (ma non è propriio un problema ) che non sono bottoni ma mc e comunque quello che mi hai dato lo fa una sola volta invece deve continuare a muoversi quando è sopra , ora provo ad armeggiare con quello che ho
    ... grazie anyway

  10. #10
    Originariamente inviato da TOPUS
    il problema è che (ma non è propriio un problema ) che non sono bottoni ma mc e comunque quello che mi hai dato lo fa una sola volta invece deve continuare a muoversi quando è sopra , ora provo ad armeggiare con quello che ho
    ... grazie anyway
    ma guarda che con quel codice si muove sempre se stai sull'area sensibile

    adesso nel tuo caso basta che invece dell'area sensibile definisci l'area su cui deve agire il mouse con _xmouse ed _ymouse.....il principio è lo stesso..
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

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.