Sto creando un ciclo for così:
_root.onEnterFrame=function(){
for(i=1;i<=100;i++){
logo._alpha=logo._alpha-i;
}
}
mail logo non sparisce anzi sparisce e compare di nuovo ma perche'????
aiuto!!!!!!!!!!!!!!!!!!!!!!
Sto creando un ciclo for così:
_root.onEnterFrame=function(){
for(i=1;i<=100;i++){
logo._alpha=logo._alpha-i;
}
}
mail logo non sparisce anzi sparisce e compare di nuovo ma perche'????
aiuto!!!!!!!!!!!!!!!!!!!!!!
eccomiiiiiiii
se lo metti così dentro l'enterFrame diventa un ciclo infinito, perchè il codice all'interno viene eseguito continuamente, senza avere mai il tempo di essere effettivamente eseguito
quello di utilizzare il for per effettuare una trasformazione di proprietà nel tempo, è un errore di progettazione piuttosto comune per chi comincia ad utilizzare AS
in realtà l'esecuzione del ciclo for è praticamente istantanea ed è parecchio difficile che alla sua esecuzione possa corrispondere un cambiamento visibile, ad esempio della trasparenza di un clip
[edit] ... ho inviato senza volerlo... proseguo... [/edit]
scusate il ritardo... ho dovuto chiudere...
allora, in pratica esistono dei metodi alternativi che gestiscono il tempo, ad esempio l'enterFrame utilizzato senza il ciclo all'interno e con degli if che verifichino quando il codice deve smettere di fare la transizione
ad esempio
logo.onEnterFrame = function(){
this._alpha--;
if(this._alpha <= 0){
this.onEnterFrame = undefined;
}
}
in alternativa esistono altri metodi per il controllo del tempo, e quindi per la gestione delle transizioni via AS, e sono spiegati qui -> http://flash.html.it/articoli/leggi/...empo-in-flash/
altra alternativa, sfruttando Flash MX 2004 o superiore, è la classe Tween di cui c'è parecchia documentazioni in giro per il web e anche in questo stesso forum, con una ricerca... lascio a te il compito di informarti in merito
semplificando un tantino il codice dell'enterFrame
MovieClip.prototype.fadeOut = function(){
var t_alpha = new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, 100, 0, 1, true);
}
logo.fadeOut();
grazie infinite.......
eccomiiiiiiii