Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332

    Tranzisione di colore sulle lettere

    Salve ragazzi

    è possibile avere una transizione di colore su una frase?

    Avrei pensato a questo: convertire la parola in un movie clip ed agire con la classe Color. Che ne dite?

    Grazie
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    mi rendo la vita ancora più difficile...

    Carico una frase da un file di testo e inserisco questa frase in una casella di testo dinamico.

    Dovrei estrarre da questa frase una parola chiave e applicare su questa parola una transizione di colore.

    E' possibile farlo???

    Grazie
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    potresti fare uno schema di quello che ti serve?
    ho difficoltà a comprendere la dinamica del tutto

    per quanto riguarda il primo quesito, puoi utilizzare la classe Tween per fare un passaggio graduale da un valore esadecimale ad un altro, ad esempio

    var inizio = 0x000000;
    var fine = 0xFF0000;
    var t = new mx.transitions.Tween(this, "inizio", mx.transitions.easing.None.easeNone, inizio, fine, 1, true);
    t.onMotionChanged = function(){
    campoTesto.textColor = inizio;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Originariamente inviato da and80
    potresti fare uno schema di quello che ti serve?
    ho difficoltà a comprendere la dinamica del tutto
    Certo. Ho creato un file XML con delle frasi. Nel mio SWF carico e parserizzo l'oggetto XML e piazzo ciascuna frase in un array.

    Nel mio filmato ho un campo di testo dinamico in cui carico (a rotazione) ognuna di queste frasi.

    Ciascuna frase ha una parola che deve essere evidenziata con colore diverso. Per esempio carico la prima stringa nel mio campo di testo.
    Il colore di tutte le parole è bianco e quello della parola chiave va in transizione verso il
    blu.

    Il mio problema è lavorare su una singola parola della stringa che carico nel campo di testo....

    spero di essere stato chiaro
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    lo sei stato... ma sinceramente non mi viene in mente in questo momento una possibile soluzione... salvo il fatto di utilizzare un TextFormat a cui applicare la Tween nella proprietà color

    il problema a questo punto rimane solo quello di individuare con esattezza la posizione della frase... il che si potrebbe dedurre utilizzando indexOf, ma sarebbe da provare

    codice:
    var inizio = 0xFFFFFF;
    var fine = 0x0000FF;
    var frase = "Questa è una prova, per verificare se una transizione può essere applicata alla parola pippo presente in questa frase";
    var parola = "pippo";
    var formato = new TextFormat();
    formato.color = inizio
    var beginFormat = frase.indexOf(parola);
    var endFormat = parola.length;
    campoTesto.text = frase;
    campoTesto.setTextFormat(beginFormat, endFormat, formato);
    var t = new mx.transitions.Tween(formato, "color", mx.transitions.easing.None.easeNone, inizio, fine, 1, true);
    t.onMotionChanged = function(){
    campoTesto.setTextFormat(beginFormat, endFormat, formato);
    }

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da and80
    lo sei stato... ma sinceramente non mi viene in mente in questo momento una possibile soluzione... salvo il fatto di utilizzare un TextFormat a cui applicare la Tween nella proprietà color

    il problema a questo punto rimane solo quello di individuare con esattezza la posizione della frase... il che si potrebbe dedurre utilizzando indexOf, ma sarebbe da provare
    mmh... provato senza successo... modificato con successo, anche se l'effetto imho lascia parecchio a desiderare

    codice:
    var inizio = 0xFFFFFF;
    var fine = 0x0000FF;
    var frase = "Questa è una prova, per verificare se una transizione può essere applicata alla parola pippo presente in questa frase";
    var parola = "pippo";
    var formato = new TextFormat();
    formato.color = inizio;
    var beginIndex = frase.indexOf(parola);
    trace(beginIndex);
    var endIndex = beginIndex+parola.length;
    campoTesto.text = frase;
    campoTesto.setTextFormat(beginIndex, endIndex, formato);
    var t = new mx.transitions.Tween(formato, "color", mx.transitions.easing.None.easeNone, inizio, fine, 1, true);
    t.onMotionChanged = function() {
    	campoTesto.setTextFormat(beginIndex, endIndex, formato);
    };

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    332
    Originariamente inviato da and80
    mmh... provato senza successo... modificato con successo, anche se l'effetto imho lascia parecchio a desiderare
    Può essere un punto di partenza... grazie
    "Studiare è questo.
    Improvvisamente si comprende qualcosa
    che si era capita da tutta la vita,
    ma da un nuovo punto di vista".

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per ottenere un effetto più decente dovresti lavorare sui canali RGB separatamente... stavo improntando qualcosa ma non ho fatto in tempo a finirlo

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    scritto velocemente e senza possibilità di provarlo:
    codice:
    var inizio = [255, 255, 255];
    var fine = [0, 0, 255];
    var colore = "0x"+inizio[0].toString(16)+inizio[1].toString(16)+inizio[2].toString(16);
    var frase = "Questa è una prova, per verificare se una transizione può essere applicata alla parola pippo presente in questa frase";
    var parola = "pippo";
    var formato = new TextFormat();
    formato.color = colore;
    var beginIndex = frase.indexOf(parola);
    var endIndex = beginIndex+parola.length;
    campoTesto.text = frase;
    campoTesto.setTextFormat(beginIndex, endIndex, formato);
    for(var i = 0; i< inizio.length; i++){
    	this["t"+i] = new mx.transitions.Tween(this, inizio[i], mx.transitions.easing.None.easeNone, inizio[i], fine[i], 1, true);
    	t0.onMotionChanged = function() {
    		var colore = "0x"+inizio[0].toString(16)+inizio[1].toString(16)+inizio[2].toString(16);
    		formato.color = colore;
    		campoTesto.setTextFormat(beginIndex, endIndex, formato);
    	};
    }

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.