Ciao,
ho questa domanda da farvi:
se creo un oggetto colore:
mio_col = new Color(movieclip);
Qual'è il modo migliore per associarlo a più movieclip?
Grazie
Ciao,
ho questa domanda da farvi:
se creo un oggetto colore:
mio_col = new Color(movieclip);
Qual'è il modo migliore per associarlo a più movieclip?
Grazie
FaX
cosa devi fare esattamente per associare un colore a dei clip potresti usare anche una proto
se ti interessa te ne scrivo una che ti cambia gradualmente il colore di un clip per es. colore di partenza verde su un evento in cui richiami la proto gradualmente cambi il colore in qllo che scegli
Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento
una cosa del genere????
richiami così per i tuoi clipcodice:MovieClip.prototype.fadeColor = function (finalColor, finalAlpha, speed, callback) { this.percentage = 0; clearInterval (this.fadeInt); this.tmpColor = new Color (this); this.deltaAlpha = finalAlpha - this._alpha; this.startAlpha = this._alpha; this.fade = function (target_MC) { if (target_MC.percentage >= 1) { target_MC.startColor = finalColor; target_MC._alpha = finalAlpha; clearInterval (target_MC.fadeInt); callback (); } else { target_MC.percentage += speed; target_MC.tmpColor.blendRGB(target_MC.startColor, finalColor, target_MC.percentage); if (target_MC.deltaAlpha != 0) { target_MC._alpha = target_MC.startAlpha + (target_MC.deltaAlpha * target_MC.percentage); } } } this.fadeInt= setInterval (this.fade, 40, this); } // Hide the function and the related properties to the for in loops ASSetPropFlags(MovieClip.prototype, "fadeColor", 1, 0); Color.prototype.blendRGB = function(c1,c2,t){ if (arguments.length == 2){ t = c2; c2 = this.getRGB(); } if (t<-1) t=-1; else if (t>1) t=1; if (t<0) t=1+t; c1 = c1.HEXtoRGB(); c2 = c2.HEXtoRGB(); var ct = (c1.rb+(c2.rb-c1.rb)*t) << 16 | (c1.gb+(c2.gb-c1.gb)*t) << 8 | (c1.bb+(c2.bb-c1.bb)*t); this.setRGB(ct); return ct; }; Number.prototype.HEXtoRGB = function(){ return {rb:this >> 16, gb:(this >> 8) & 0xff, bb:this & 0xff}; };
codice:// PARAMETERS // finalColor = the destination colour // finalAlpha = the destination Alpha // speed = values admitted are between 0 and 1 (ex. 0.05, 0.10 or 0.15) // callback = optional function to be called at the end of the fading // USAGE // create a clip named "myMovieClip_mc" and the buttons "sample1_btn" and "sample2_btn" // attach the following code to frame 1 // set the starting color (only the first time); // if not set, the default is black myMovieClip_mc.startColor = 0x009933 // set callback functions to be called when fading is finished function test () { trace ("fading finished"); } // change the movieClip to a semi-transparent yellow myMovieClip_mc.fadeColor (0x009933, 50, .05, test); // change the movieClip to an opaque azure, slowly //myMovieClip_mc.fadeColor (0x0191C7, 100, .02, test);
Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento
Ho notato che il forum nel codice ha messo una faccinaOriginariamente inviato da enigma_79
una cosa del genere????
richiami così per i tuoi clipcodice:MovieClip.prototype.fadeColor = function (finalColor, finalAlpha, speed, callback) { this.percentage = 0; clearInterval (this.fadeInt); this.tmpColor = new Color (this); this.deltaAlpha = finalAlpha - this._alpha; this.startAlpha = this._alpha; this.fade = function (target_MC) { if (target_MC.percentage >= 1) { target_MC.startColor = finalColor; target_MC._alpha = finalAlpha; clearInterval (target_MC.fadeInt); callback (); } else { target_MC.percentage += speed; target_MC.tmpColor.blendRGB(target_MC.startColor, finalColor, target_MC.percentage); if (target_MC.deltaAlpha != 0) { target_MC._alpha = target_MC.startAlpha + (target_MC.deltaAlpha * target_MC.percentage); } } } this.fadeInt= setInterval (this.fade, 40, this); } // Hide the function and the related properties to the for in loops ASSetPropFlags(MovieClip.prototype, "fadeColor", 1, 0); Color.prototype.blendRGB = function(c1,c2,t){ if (arguments.length == 2){ t = c2; c2 = this.getRGB(); } if (t<-1) t=-1; else if (t>1) t=1; if (t<0) t=1+t; c1 = c1.HEXtoRGB(); c2 = c2.HEXtoRGB(); var ct = (c1.rb+(c2.rb-c1.rb)*t) << 16 | (c1.gb+(c2.gb-c1.gb)*t) << 8 | (c1.bb+(c2.bb-c1.bb)*t); this.setRGB(ct); return ct; }; Number.prototype.HEXtoRGB = function(){ return {rb:this >> 16, gb:(this >> 8) & 0xff, bb:this & 0xff}; };
codice:// PARAMETERS // finalColor = the destination colour // finalAlpha = the destination Alpha // speed = values admitted are between 0 and 1 (ex. 0.05, 0.10 or 0.15) // callback = optional function to be called at the end of the fading // USAGE // create a clip named "myMovieClip_mc" and the buttons "sample1_btn" and "sample2_btn" // attach the following code to frame 1 // set the starting color (only the first time); // if not set, the default is black myMovieClip_mc.startColor = 0x009933 // set callback functions to be called when fading is finished function test () { trace ("fading finished"); } // change the movieClip to a semi-transparent yellow myMovieClip_mc.fadeColor (0x009933, 50, .05, test); // change the movieClip to an opaque azure, slowly //myMovieClip_mc.fadeColor (0x0191C7, 100, .02, test);
al posto della faccina vanno i : e poi ( di default il forum mette la faccina
Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento
Ciao enigma_79.
Ti ringrazio per il suggerimento: lo provo subito.![]()
FaX
di niente ciaoOriginariamente inviato da ilpiubello
Ciao enigma_79.
Ti ringrazio per il suggerimento: lo provo subito.![]()
Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento
Scusami se faccio un passo indietro ma è un po' difficile integrare il codice che mi hai dato nel casino che sto preparando
Siccome devo avere dei mostrare i risultati entro brevissimo tempo mi servirebbe una soluzione più breve anche se più spartana!
Poi, dopo, posso sistemare tutto e ragionarci su con più calama...
Io sto provando a fare questo per creare più oggetti colore:
...ma non funziona!codice:for(i=0;i<numero_totale_movieclip.length;i++){ mioOggetto[i] = new Color(movieclip[i]); }
Immagino non si possano creare più oggetti all'interno di un ciclo...![]()
FaX
scusa ma se copi e incolli la proto al posto della faccina mettici : (
puoi poi richiamare la cosa così???
for(i=0;i<numero_totale_movieclip.length;i++){
myMovieClip[i].fadeColor (0x009933, 100, .05, test);
//poi metti il colore che vuoi
}
dovresti risolvere
Consulenza aziendale a 360° http://www.gruppodg.it http://www.gruppodg.it/3d
Realizzazione siti internet, Siti Flash, Ricerca Location per bar negozi , esercizi commerciali, sviluppo pratiche e allestimento
Guardate che state parlando di due cose totalmente differenti...
@ilpiubello:
non puoi associare un oggetto color a più target. L'unica soluzione è creare un movieclip che contenga tutti gli altri, e cambiare il colore al movieclip contenitore.
Originariamente inviato da negatyve
Guardate che state parlando di due cose totalmente differenti...![]()
![]()
il fatto è che non posso farlo perché questi movieclip sono composti da oggetti che devo colorare e da altri che, invece, devono rimanere invariati.@ilpiubello:
non puoi associare un oggetto color a più target. L'unica soluzione è creare un movieclip che contenga tutti gli altri, e cambiare il colore al movieclip contenitore.
Ad esempio questi movieclip, che sono il risultato di un duplicate, sono formati da un campo dinamico e da un elemento di sfondo; ed è proprio quel'elemento di sfondo che devo cambiare.
Per ora ho risolto inserendo brutalmente tanti oggetti color quanti sono i movieclip duplicati; il che poteva essere semplificato se solo si potesse duplicare un oggetto colore, all'interno di un ciclo, per una lunghezza stabilita tipo questo:
Invece non sono riuscito a farlo e ho dovuto scrivere riga per riga!codice:for(i=0;i<numero_totale_movieclip.length;i++){ mioOggetto[i] = new Color(movieclip[i]); }
FaX