Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    muovere un movieclip lungo un percorso orizzontale

    Salve a tutti,
    dovrei realizzare un sito in flash per un esame importante. La particolarità del sito è che dovrei riuscire a muovere un movieclip (statico o dinamico non importa) lungo un percorso orizzontale. Per chiarezza vi dico che per movieclip intendo un semplice cerchio o immagine statica, che funga da cursore
    Questo percorso sarà composto da una sorta di "passerella" dove dovrà scorrere il clip, attraversando 5 aree (nient'altro che 5 fasce verticali con sfondi diversi). Ogni fascia avrà dei contenuti.
    Quello che vi chiedo sono sostanzialmente due cose:
    1- come faccio a muovere il clip usando le frecce direzionali della tastiera o trascinandolo col mouse?
    2- come posso far apparire dei contenuti (come del semplice testo) quando il clip raggiunge una sorta di Checkpoint messo ad un certo punto del percorso (in prossimità di una fascia)?
    Non devo fare niente di complicato come effetto grafico..questo clip deve solo spostarsi in orizzontale con frecce o mouse e attivare del testo arrivato ad un certo punto del "binario" sul quale si sposta.
    Vi sarei enormemente grato se potreste indirizzarmi verso qualche tutorial video o testuale che sia, va bene anche se si avvicina a quello che devo fare.
    Ho visto la raccolta dei movie di questo sito ma non ho trovato nulla...se voi magari potete indicarmene uno che magari posso studiare sarebbe importantissimo lo stesso.
    Grazie mille a tutti per l'attenzione...sono nelle vostre mani!

    ah! se per fare una cosa del genere pensate che sia molto più comodo usare programmi tipo swish per me va benissimo, non devo usare necessariamente flash, mi serve solo ottenere un swf. grazie ancora

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Dai al movieclip nome istanza ad esempio "mc", scrivi il testo che devi far comparire lo trasformi in clip filmato e gli dai nome istanza ad esempio "testo", fai un altro movieclip di qualsiasi forma e lo metti fuori stage, nel primo fotogramma della time line metti questo.
    codice:
    direzione=0
    onEnterFrame=function()
    {
    	mc._x+=direzione
    if(mc._x>=200)
    {testo._visible=true}
    	}
    testo._visible=false
    Quest'altro codice lo incolli nel movieclip fuori stage.
    codice:
    onClipEvent(keyDown) {
    	trace(Key.getCode());
    if (Key.getCode() == 39) {
    		_root.direzione=2
    	}else if(Key.getCode() == 37)
    {_root.direzione=-2}
    	}
    	onClipEvent(keyUp) {
    	trace(Key.getCode());
    if (Key.getCode() == 39||Key.getCode() == 37) {
    		_root.direzione=0
    	}
    
    	}
    Il movieclip si muove con le frecce della tastiera <-- --> e quando raggiunge la coordinata x=200 il testo diventa visibile.

  3. #3
    Grande Randi! Grazie mille è esattamente quello che mi serviva!
    ma se volessi far sparire il contenuto quando il clip va oltre? insomma...quando passo appare quando me ne vado scompare...c'è un richiamo ulteriore da aggiungere?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Visibile a 100, 200,300
    codice:
    direzione=0
    onEnterFrame=function()
    {trace(mc._x)
    	mc._x+=direzione
    if(mc._x>100&&mc._x<105||mc._x>200&&mc._x<205||mc._x>300&&mc._x<305)
    {testo._visible=true}
     else
    	{testo._visible=false}
    	}
    testo._visible=false

  5. #5
    uhm c'è qualcosa che non va...se percorro tutto lo stage da parte a parte il testo compare e scompare 3 volte...cercherò di capire come ridurlo a una volta. Grazie mille rendi sei stato fondamentale!

  6. #6
    ho fatto così:
    codice:
    direzione=0
    onEnterFrame=function()
    {
    	mc._x+=direzione
    if(mc._x<=50)
    {testo._visible=false}	
    if(mc._x>=50)
    {testo._visible=true}
    if(mc._x>=100)
    {testo._visible=false}
    	}
    in questo modo il testo resta nascosto fino ai 50 dove compare per poi scomparire ai 100. Stessa cosa se torno indietro.
    Ho provato a inserire altri contenuti e farli attivare più avanti nel percorso, come ad esempio una pallina rossa chiamata "red":
    codice:
    direzione=0
    onEnterFrame=function()
    {
    	mc._x+=direzione
    if(mc._x<=50)
    {testo._visible=false}	
    if(mc._x>=50)
    {testo._visible=true}
    if(mc._x>=100)
    {testo._visible=false}
    if(mc._x<=400)
    {red._visible=false}
    if(mc._x>=400)
    {red._visible=true}
    if(mc._x>=450)
    {red._visible=false}
    	}
    e funziona alla grande...ho rivisto l'ultimo codice che mi hai incollato, prima non l'avevo capito ora mi è più chiaro. solo che ho avuto difficoltà ad usarlo per aggiungere l'altro contenuto. Quello che ho scritto io va bene ugualmente vero?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Se la condizione if funziona va bene, nel senso che se riesci ad ottenere la comparsa e la scomparsa quando serve a te allora va bene.

  8. #8
    sisi i due elementi compaiono e scompaiono quando passa il clip sotto ciascuno. certo uscirà un codice bello lungo.
    Ora il prossimo passo si fa più difficile: Devo centrare il clip in modo che scorre lo stage con tutti i contenuti mantenendo l'attivazione degli stessi sul clip (un pò come super mario bros).
    ho trovato una guida inoltre che permette di far saltare anche il clip con questo codice sul primo frame:
    codice:
    var height = circle._y;
    onEnterFrame=function () {
    	if (circle._y < height) {
    		circle._y +=5;
    	}
    	   
    	if(Key.isDown(Key.RIGHT)) {
    		circle._x +=10;
    		trace(circle._x);
    	}
    
    	if (Key.isDown(Key.LEFT)) {
    		circle._x -=10;
    		trace(circle._x);
    	}
    
    if (Key.isDown(Key.UP)) {
    		circle._y -=10;
    		trace(circle._y);
    	}
    
    }
    dove "circle" è il clip da far saltare. i valori "var height = circle._y;" e " if (circle._y <height) {circle._y +=5;}" sono quelli che permettono al clip di saltare e ricadere (anche se sale finchè si tiene premuto mentre sarebbe l'ideale dargli un tot di altezza definito oltre i quale tornerà a scendere). Ora proverò ad aggiungere questo valore a quello che abbiamo ricavato finora. Vi incollerò tutti i risultati così magari qualcun'altro può giovarne.

  9. #9
    c'è un problema...dato che non riesco a centrare il clip per far scorrere sfondo e contenuti quando uso le frecce direzionali, ho optato per un'altra soluzione, ovvero dividere a livelli tutto il mio percorso, il clip dovrebbe percorrere da sinistra destra e cambiare livello arrivato all'estremità dello stage. Così ho aggiunto {gotoAndStop(2)} in modo che quando il clip raggiunge la fine della scena viene caricato il frame 2 che contiene un altro scenario.
    Il codice quindi diventa:
    codice:
    direzione=0
    onEnterFrame=function()
    {
    	mc._x+=direzione
    if(mc._x<=50)
    {testo._visible=false}	
    if(mc._x>=50)
    {testo._visible=true}
    if(mc._x>=100)
    {testo._visible=false}
    if(mc._x<=300)
    {red._visible=false}
    if(mc._x>=300)
    {red._visible=true}
    if(mc._x>=350)
    {red._visible=false}
    if(mc._x>=400)
    {gotoAndStop(2)}
    	}
    Così facendo però viene caricato il frame 2 ma il clip non torna nella posizione iniziale (quindi a sinistra dello stage) ma resta lì nel punto dove ha caricato il frame 2.
    C'è un modo per far spostare il clip stesso una volta raggiunta una posizione?
    Io ho provato a fare:
    if(mc._x>=400)
    {mc._x>=100}
    ma ovviamente non succede niente. qual'è il comando giusto? Perchè così potrei fargli cambiare frame e contemporaneamente farlo tornare a sinistra (come se avesse continuato oltre lo stage e farlo anche tornare indietro facendolo comparire a destra)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    residenza
    Olbia
    Messaggi
    2,930
    Lo devi rimandare tu alla x di partenza.
    codice:
    direzione=0
    stop()
    onEnterFrame=function()
    {
    	mc._x+=direzione
    if(mc._x<=50)
    {testo._visible=false}	
    if(mc._x>=50)
    {testo._visible=true}
    if(mc._x>=100)
    {testo._visible=false}
    if(mc._x<=300)
    {red._visible=false}
    if(mc._x>=300)
    {red._visible=true}
    if(mc._x>=350)
    {red._visible=false}
    if(mc._x>=400)
    {gotoAndStop(2)
    mc._x=46
    }
    	}

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.