• User Newbie

    Aiuto per animazione!

    Ciao a tutti e complimenti per il sito.... mi sono iscritto da poco e ho trovato interessanti molte delle vostre risposte...COMPLIMENTI DAVVERO!

    ma andiamo al mio problema:

    Vorrei capire come poter animare una linea a forma di "s" da 5 pulsanti.

    mi spiego meglio:

    ho un menu con 5 pulsanti
    al centro dello stage c'è una linea a forma di "s".
    mi piacerebbe assegnare ad ogni bottone una posizione della linea e farla raggiungere attraverso il movimento di rotazione/scala/posizione della stessa.

    come posso fare secondo voi!?

    grazie anticipatamente...


  • Moderatrice

    Se vuoi che il tuo simbolo si muova secondo una linea che hai scelto devi usare la guida :Add motion guide, ti crea una nuovo livello, ci fai la s, il livello dove hai il simbolo lo metti sotto la guida, doppio click sul livello e gli dici che è guidato, gli dai il punto di partenza e il punto di arrivo e il gioco è fatto.
    So di non essere stata chiarissima ma ho fame. Se non hai capito mandami un pvt


  • User Newbie

    Ciao Deborah....grazie per la risposta, penso che le guide non risolvano il mio problema perchè se ad es. al pulsante 1 la linea si trova a 0° al 2 45° al 3 70° al 4 120° al 5 180°, quando mi trovo sul pulsante 5 e clicco sul pulsante uno la linea dovrebbe ritornare a 0° oppure sempre sul plusante 5 clicco sul pulsante 3 la linea dovrebbe ritornare a 70°...

    penso che con le guide non si riesca ad ottenere questo risultato in quanto sono "fisse" e quindi potrebbe andar bene se cliccassi in serie da 1 a 5 i pulsanti...

    Che ne pensi??
    grazie


  • Super User

    Ti serve actionscript.
    Potresti fare in questo modo , è abbastanza complesso ma provo a darti l'imput:

    Crei un intervallo e disegni una esse:

    
    import flash.geom.Point;
    
    var Points:Array=new Array();
    var centerX:Number=Stage.width/2;
    var centerY:Number=Stage.height/2;
    var range:Number=50;
    var speed:Number=1;
    var angle:Number=0;
    var writer:MovieClip=_root.createEmptyMovieClip('writer_mc',_root.getNextHighestDepth());
    
    writer._x=centerX;
    writer._y=centerY-100;
    writer.moveTo(0,0);
    writer.lineStyle(3,0x0,100);
    
    function go():Void
    {
    	var x:Number=-Math.sin(angle)*range;
    	var y:Number=speed;
    	
    	var point:Point=new Point(x,y);
    	Points.push(point);
    	
    	this.lineTo(x,y);
    	angle+=.1;
    	speed+=2;
    	if(angle>=Math.PI*2)
    	{
    		this.onEnterFrame=null;
    		trace(Points);
    	}
    }
    writer.onEnterFrame=go;
    
    

    Quando l'animazione finisce hai un array delle coordinate di tutti i punti della S.


  • User Newbie

    Ciao Flep e grazie per la risposta....
    per capirci meglio ho messo on line il file al seguente indirizzo:
    www.alcastello.cl.it/prove/io.html

    l'animazione che volevo fare riguarda lo shape al centro che separa le immagini dalle scritte.
    ho provato lo script di flep e ho visto che crea una "s"... penso che non mi avevate capito bene.... scusatemi per questo.

    bene quindi secondo voi è possibile attraverso dei pulsanti animare questo shape?
    es. pulsante 1: lo shape ruota e scala di 30° orari.
    pulsante 2: lo shape ruota e scala di altri 20°
    etc...
    la cosa bella sarebbe che quando un utentesi trova al punto 4 e clicca sul pulsante 1 lo shape ritorni nella posizione 1 con un movimento rotatorio.

    please help me!!!!


  • Super User

    Ciao giaiu.
    La S che crea il mio script è semplice da modificare.
    Se noti si basa su semplice trigonometria.
    Se cambi i valori del seno e la fai disegnare orizzontalmente e se cambi la speed in modo da dargli un intervallo più lungo ottieni la S che ti serve.

    Una volta fatto quello hai il tuo bel Array con tutte le coordinate dei punti della S e puoi spostare e muovere le tue clips (non bottoni) sul tracciato della S.
    Rotations and scales delle clip mentre si muovono sulle coordinate dell' Array sono gestibili via actionscript.

    Se pensi di gestire quello che vorresti fare con delle semplici interpolazioni e lavorando sui frames, allora non è fattibile.


  • User Newbie

    ciao flep....ho provato a smanettare un po' con il tuo codice ma non ho ottenuto i risultati chedesideravo anche perchè non sono proprio un genio su actionscript....

    pensavo....

    quelle due linee che vedi con la linea grossa che scorre tra loro in realtà è un movieclip a parte distribuito su livelli, secondo te è possibilie ruotare escalare un movieclip con actionscript come volevo fare io?

    Alternativa...

    ...visto che la cosa sembra abbastanza lunga pensavo ad una alternativa:

    ad ogni cambio di menù far rientrare le linee e poi farle riuscire da un'altra parte.
    c'è un modo che indichi al release del pulsante (posto al livello "1") di andare al fotogramma "fine" del livello "2" e nel frattempo caricare il livello "3".

    grazie.


  • Super User

    @giaiu said:

    c'è un modo che indichi al release del pulsante (posto al livello "1") di andare al fotogramma "fine" del livello "2" e nel frattempo caricare il livello "3".

    Puoi spostare la 'testina' usando i comandi gotoAndPlay() e gotoAndStop().
    Per caricare il livello 3 non so cosa intendi.
    Non lvoro mai sui frames per cui forse qualcun'altro ha un'altra idea?