Flash: fai partire il clip filmato.

Di: prekeba | 26/09/2020 18:49:24
Cliccando sul pulsante rendo visibile un clip filmato (che si trova sulla Timeline principale) che al suo interno contiene un’animazione. Voglio che l’animazione parta dall’inizio ogni volta che clicco il pulsante, quindi non deve caricarsi con il resto del filmato. Se metto lo stop sul primo fotogramma del clip e dico al pulsante che deve rendere visibile il clip e farlo partire dal fotogramma 2 del clip stesso non funziona perchè il clip continua a caricarsi, oppure si ferma allo stop. Qualcuno sa dirmi come si fa? Io ho provato mille modi ma non riesco a farlo funzionare. Qualcuno può mandarmi un esempio di script perfavore? Ringrazio tutti già da ora, confido in voi!

Risposte



Potresti chiarire il concetto di caricamento?
Di solito per il corretto funzionamento di un sito, si effettua un preload per impedire all'utente di poter compiere qualsiasi azione prima che il sito stesso non sia stato completamente caricato.

Di: goku | 26/09/2020 18:49:24


Beh potresti fare in un altro modo: al posto di avere due frame, puoi risparmiare tempo e fatica utilizzando lo stesso fotogramma per tutti e due i clip (quello principale dove ci sono i pulsanti e quello secondario che si deve aprire con il pulsante). Come fare? Te lo spiego subito.
- Porta il clip che devi visualizzare sullo stage principale dove risiedono anche i pulsanti;
- assegna un nome al clip nelle Proprietà;
- clicca sul clip;
- vai nel pannello azioni e scrivi:
onClipEvent(load) {
setProperty("_root.nomeclip", _visible, "0")
}
In questo modo rendi invisibile il clip al caricamento del frame (quindi Flash ti visualizzerà solo lo stage principale).
- clicca sul pulsante che deve richiamare il clip;
- vai nel pannello azioni e scrivi:
on(release) { //o altro evento
setProperty("_root.nomeclip", _visible, "100")
nomeclip.play()
}
Prova cosi e fammi sapere.
Ciauzz

Di: China | 26/09/2020 18:49:24


Una semplice nota sullo script suggerito da china;
le azioni in actionscript devono finire con “;”, inoltre è consigliabile utilizzare la sintassi a punto:
onClipEvent(load) {
_visible=0;
}
on(release) {
_root.nomeclip._visible=1;
_root.nomeclip.play();
}
Anche se lo script di china funziona, credo sia corretto precisare che la proprietà _visible, supporta due valori, cioè true e false oppure 0 e 1, l’attribuzione di valori che vanno da 0 a 100, viene solitamente effettuata per gestire un’altra proprietà come _alpha.

Di: goku | 26/09/2020 18:50:24


Grazie ragazzi, provo subito se funziona e speriamo bene.
PS: per caricamento del clip intendo dire che clip parte con la timeline principale, invece io voglio che cominci l’animazione al suo interno solo quando clicco il pulsante; al contrario succede che se io clicco il pulsante che si trova sulla timeline principale al fotogramma 30 mi ritrovo nel clip che già sta a fotogramma 30 e invece io voglio che indipendentemente da quando clicco il pulsante nella timeline principale, il clip parta sempre dal primo fotogramma. Lo so, sembra un po' contorto quello che ho scritto, ma del resto è il miglior modo per farmi capire. Mille grazie goku e china.

Di: prekeba | 26/09/2020 18:50:24


In questo caso no credo che lo script di china possa risolvere il tuo problema.
Se il MC che contiene l’animazione, al caricamento del movie principale ed al completamento dell'animazione può essere invisibile, nel senso che completata quest'ultima vedrai solo il movie principale, potresti fare così:
il primo frame del MC animato lo lasci vuoto e gli associ l'azione stop();
dal secondo frame fai iniziare l’animazione;
in questo modo, quando l’animazine è terminata, la testina si fermerà sul frame vuoto, sul pulsante metterai l’azione tuo_clip.gotoAndPlay(2);
se invece vuoi che l’animazione vada in loop, basta mettere l’azione gotoAndPlay(2); sull’utlimo frame della stessa oltre che sul pulsante.

Di: goku | 26/09/2020 18:50:24