Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303

    _xscale di un mc: problema

    ho bisogno di creare l'effetto di un ingrandimento e riduzione di un clip in modo infinito.
    Al posto di usare una interpolazione, vorrei farlo con actionscript.

    Per il momento ho provato a variare soltanto la _xscale:

    codice:
    onClipEvent (enterFrame) {
    	if (this._xscale<200) {
    		this._xscale += (this._xscale+100)/50;
    	}
    }
    e il mio clip si ingrandisce... ma come posso fare a ottenere l'effetto inverso e che sia continuo? (ingrandimento-riduzione-ingrandimento...)

    thanxxx

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    abbastanza infame come situazione.. ho provato ma non ci sto riuscendo...
    ti faccio sapere...

  3. #3
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    ok. attendo con fiducia

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ragionando un minuto...

    forse non si può fare nel modo in cui l'hai messa perchè quando torni indietro avrai _xscale compresa tra 100 e 200.
    Penso che bisogna ragionare in un altro modo, con le variabili...
    che ne so...
    if ingrandisci == 1 allora _xscale +=
    if _xscale == 200 allora ingrandisci = 0
    if ingrandisci == 0 allora _xscale -=

    ora non ho flash davanti ma il ragionamento credo sia questo... tra un po' lo provo...

  5. #5
    codice:
    onClipEvent (enterFrame) {
    	if (this.__toScale == 'BIG' && this._xscale<200) {
    		newscale = (this._xscale+100)/50;
    		this._xscale += newscale;
    		if( this._xscale + newscale >= 200 ) {
    			this.__toScale == 'SMALL';
    		}
    	}
    	else if (this.__toScale == 'SMALL' && this._xscale>20) {
    		newscale = (this._xscale-100)/50;
    		this._xscale += newscale;
    		if( this._xscale + newscale <= 20 ) {
    			this.__toScale == 'BIG';
    		}
    	}
    	else {
    		this.__toScale == 'BIG'; // scegli come partire
    	}
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    grazie a tutti raga!

    ho provato anche il tuo suggerimento Talegio...

    più o meno ho scritto questo...

    codice:
    onClipEvent (load) {
    	ingrandisci = 1;
    }
    onClipEvent (enterFrame) {
    	if (ingrandisci == 1) {
    		this._xscale += (this._xscale+100)/50;
    		this._yscale += (this._yscale+100)/50;
    	}
    	if (_xscale>190) {
    		ingrandisci = 0;
    	}
    	if (ingrandisci == 0) {
    		this._xscale -= (this._xscale+100)/50;
    		this._yscale -= (this._yscale+100)/50;
    	}
    	if (_xscale<10) {
    		ingrandisci = 1;
    	}
    }
    sembra funziare

    Grazie anche a te andr3a

    Adesso analizzerò il tuo script...

    Thanxxx

  7. #7
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    volevo racchiudere questo script dentro una function

    codice:
    function pulse(mc, min, max, time) {
    	eval(mc).onEnterFrame = function() {
    		ingrandisci = 1;
    		if (ingrandisci == 1) {
    			eval(mc)._xscale += (eval(mc)._xscale+100)/time;
    			eval(mc)._yscale += (eval(mc)._yscale+100)/time;
    			if (eval(mc)._xscale>max) {
    				ingrandisci = 0;
    			}
    		}
    		if (ingrandisci == 0) {
    			eval(mc)._xscale -= (eval(mc)._xscale+100)/time;
    			eval(mc)._yscale -= (eval(mc)._yscale+100)/time;
    			if (eval(mc)._xscale<min) {
    				ingrandisci = 1;
    			}
    		}
    	};
    }
    che richiamo poi con:

    codice:
    onClipEvent (load) {					
    	_root.pulse(this, 100, 190, 100);
    }
    solo che funzia solo l'ingrandimento... Dove sbaglio?

  8. #8
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    falso allarme
    ho risolto così:

    codice:
    function pulse(mc, min, max, time) {
    	eval(mc).onLoad = function() {
    		ingrandisci = 1;
    	};
    	eval(mc).onEnterFrame = function() {
    		if (ingrandisci == 1) {
    			eval(mc)._xscale += (eval(mc)._xscale+100)/time;
    			eval(mc)._yscale += (eval(mc)._yscale+100)/time;
    			if (eval(mc)._xscale>max) {
    				ingrandisci = 0;
    			}
    		}
    		if (ingrandisci == 0) {
    			eval(mc)._xscale -= (eval(mc)._xscale+100)/time;
    			eval(mc)._yscale -= (eval(mc)._yscale+100)/time;
    			if (eval(mc)._xscale<min) {
    				ingrandisci = 1;
    			}
    		}
    	};
    }
    
    ciauzz  :ciauz:

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.