Ti sei perso il VI Convegno gt? Forse puoi rimediare... www.convegnogt.it X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Flash & ActionScript
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Flash & ActionScript Animazione web e linguaggio di programmazione

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 22-01-10, 16:49   #1 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
Dubbio su utilizzo Movieclip

ciao a tutti!

Ho iniziato da pochi giorni ad usare flash 8 e sicuramente mi mancano ancora alcuni concetti di base.

Vi espongo in breve il mio problema: ho creato due simboli movieclip della durata di un certo numero di frame e, alla fine di ciascun movieclip, ho inserito uno stop in modo che l'ultimo frame rimanga visibile sulla scena. Ora dovrei inserire questi due movieclip nella scena principale, con l'accortezza che vengano eseguiti uno dopo l'altro (non contemporaneamente). Mi sembra una cosa molto banale, ma non so come fare

Ho inserito i due movieclip creati in 2 livelli distinti della scena principale e per far funzionare il tutto pensavo (speravo) bastasse mettere il primo movieclip nel primo frame del primo layer e il secondo movieclip nel secondo frame del secondo layer. In pratica pensavo che flash "esplodesse" in automatico ciascun frame contenente i movieclip in modo da considerare l'effettiva durata di ognuno di essi...

Dopo aver fallito questo tentativo, ho inserito il primo movieclip nel primo frame del primo livello, mentre il secondo movieclip l'ho inserito nel secondo livello in corrispondenza del frame in cui termina il primo movieclip (considerando la sua effettiva durata). Così facendo l'esecuzione "in sequenza" dei movieclip funziona, ma mentre il primo movieclip rispetta lo stop() che ho inserito al suo interno (in corrispondenza dell'ultimo frame), il secondo movieclip si esegue in loop (nonostante anche in questo caso io abbia inserito uno stop al suo interno) .

qualcuno sarebbe così gentile da dirmi dove sbaglio?

P.S. scusate se mi sono dilungato
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 22-01-10, 19:55   #2 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,464
Ciao Phate82, benvenuto sul forum GT, non ho capito se i clip filmato debbano essere presenti contemporaneamente sulla scena o uno alla volta, comunque ad esempio potresti fare così, fingiamo che hai due clip filmato, uno con nome istanza rosso e uno con nome istanza nero entrambi sullo stage, mentre rosso parte subito nero sta fermo perchè c'è uno stop() sul primo frame della sua linea temporale, vogliamo che quando rosso che è composto di 20 frame a concluso la sua animazione, quindi quando la testina di lettura si trova sul frame 20 parta il clip filmato nero, ebbene devi mettere sul primo frame della time line principale questo
Codice:
onEnterFrame = function(){
if(rosso._currentframe==20){
    nero.play()}
}
__________________

Nhatan
Nhatan non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-01-10, 00:45   #3 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
ciao Nhatan! ti ringrazio per il benvenuto e per la risposta!

sicuramente la tua soluzione è molto vicina a quello che serve a me, ma forse non mi sono spiegato bene..oppure non riesco a fare quello che mi hai detto . Provo ad essere più esplicito:

- ho un movieclip "rosso" che occupa, nella sua personale linea temporale, 130 frame
- ho un movieclip "nero" che occupa, nella sua personale linea temporale, 168 frame
- nell'ultimo frame di entrambi i movieclip ho inserito uno stop perchè non voglio che vengano eseguiti ciclicamente, ma che rimangano stoppati sull'ultimo frame.

Ora..quello che vorrei ottenere sulla scena è:

- parte il movieclip rosso che viene eseguito fino alla fine, rimanendo poi stoppato sull'ultimo frame
- subito dopo parte il movieclip nero che viene eseguito fino alla fine, rimanendo poi stoppato sull'ultimo frame

Alla fine delle animazioni vorrei avere visualizzati sulla scena gli ultimi frame di entrambi i movieclip.
La tua soluzione sembra proprio fare al caso mio, ma sicuramente sbaglio qualcosa nel disporre i due movieclip sulla timeline principale ...li ho disposti su 2 layer distinti della timeline principale, ma non riesco a capire in quali frame inserirli per avere l'esecuzione in sequenza

P.S. dimenticavo di dire che provando la tua soluzione il primo movieclip viene eseguito correttamente, mentre il secondo non si avvia. Se mi confermi che la soluzione è quella che hai detto tu, allora sto sbagliando qualcosa

Ultima modifica di Phate82 : 23-01-10 00:48.
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-01-10, 00:58   #4 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
ehmmm..chiedo scusa..sono un pirla!
non avevo dato il nome alle istanze dei movieclip che ho utilizzato...

ora funziona tutto e la timeline principale è bella ordinata ...rimane solo un piccolo problema: il secondo movieclip viene eseguito ciclicamente nonostante abbia inserito uno stop sull'ultimo frame (come ho fatto anche con il primo movieclip che infatti si ferma regolarmente)...sai illuminarmi anche su questa cosa?

grazie ancora!
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-01-10, 17:40   #5 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,464
Scusa, hai proprio ragione non ci avevo fatto caso, per risolvere aggiungi un fotogramma chiave al clip filmato rosso, lo stop() lo elimini dal frame 20 e lo metti sul 21, infine il codice diventa
Codice:
rosso.onEnterFrame = function(){
if(rosso._currentframe==20){
    nero.play()}
if(rosso._currentframe==21){
    delete this.onEnterFrame
    }
}
così eliminiamo l'EnterFrame e liberiamo la memoria.
__________________

Nhatan
Nhatan non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-01-10, 18:52   #6 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
ciao!

avevo risolto (e non so bene il perchè ) scrivendo:

Codice:
onEnterFrame = function(){
if(rosso._currentframe==19){
    nero.play()}
}
però, visto che mi fido di più di quello che suggerisci tu, ho appena usato il tuo nuovo codice...funziona!

grazie ancora per l'aiuto!
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 23-01-10, 19:46   #7 (permalink)
Moderatore
 
Data di registrazione: May 2008
Messaggi: 2,464
Potresti lasciare anche come hai fatto tu, perchè il codice tradotto vuol dire, così capisci perchè funziona come lo hai modificato tu, quando sei (inteso come testina di riproduzione) sul frame 19 del clip filmato rosso fai partire il clip filmato nero, quindi quando va al 20 trova lo stop() e si ferma, nel mio primo codice cosa c'era di sbagliato? sicuramente lo avrai già capito, cioè il frame dove doveva eseguire il comando era il 20, siccome la testina si fermava proprio al 20 andava in loop.
Comunque è meglio quando si crea una funzione onEnterFrame, eliminarla una volta che non serve più, perche viene letta continuamente è può provocare sovracarico della ram con conseguente rallentamenti.
__________________

Nhatan
Nhatan non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 08-02-10, 13:47   #8 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
Visto il prezioso aiuto che mi è stato fornito l'ultima volta e visto che il nuovo problema riguarda sempre i movieclip, provo a riaprire la discussione.

ipotizziamo nuovamente di avere 2 movieclip, "rosso" e "nero", disposti su 2 livelli diversi della timeline..entrambi nel primo frame del rispettivo livello. Sia "rosso" che "nero" hanno uno stop() al primo ed all'ultimo frame delle rispettive timeline.
Quello che voglio fare è semplicemente creare del bottoni di navigazione che mi permettano di andare da un movieclip all'altro.

Immaginiamo che un qualche evento abbia provocato il play() del movieclip "rosso"...il codice che ho scritto per passare al movieclip "nero" tramite la pressione del bottone avanti_btn è:

Codice:
avanti_btn.onRelease = function(){
rosso.unloadMovie();
nero.play();
}
ed in effetti la cosa sembra funzionare. Il problema è ritornare indietro al movieclip "rosso". Infatti se per il bottone indietro_btn scrivo

Codice:
indietro_btn.onRelease = function(){
nero.unloadMovie();
rosso.play();
}
il movieclip "nero" scompare dalla scena..ma il movieclip "rosso" non viene rieseguito ...pensando che il problema fosse lo stop() alla fine del movieclip "rosso" ho provato anche il codice:

Codice:
avanti_btn.onRelease = function(){
rosso.unloadMovie();
nero.gotoAndPlay(2);
}
ma il risultato è ugule .

qualcuno mi più illuminare?

Ultima modifica di Nhatan : 08-02-10 18:02. Motivo: Maiuscolo.
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Vecchio 08-02-10, 15:22   #9 (permalink)
User Newbie
 
Data di registrazione: Jan 2010
Messaggi: 6
Risolto!
ho modificato il codice dei 2 bottoni come segue:

Codice:
avanti_btn.onRelease = function(){
rosso.gotoAndStop(1);
nero.play();
}

indietro_btn.onRelease = function(){
nero.gotoAndStop(1);
rosso.play();
}

Ultima modifica di Nhatan : 08-02-10 18:03. Motivo: Maiuscolo
Phate82 non in linea  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Segnalo this Post!OKNO this Post!
Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 05:51.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.