Domanda

In Flash quando si imposta il testo in un oggetto TextField con la proprietà htmlText, la modifica del valore alfa non funziona più. C'è un modo per aggirare questo?

È stato utile?

Soluzione

Qualche confusione qui.

  1. Il fatto che alpha funzioni o meno dipende dal fatto che il campo di testo utilizzi i caratteri del dispositivo, non se utilizza HTML. (I caratteri dispositivo vengono utilizzati ogni volta che si dispone di un testo dinamico / di input e non si incorpora il carattere.)

  2. Se possibile, pubblica semplicemente per Flash Player 10, che ora supporta l'alfa per i caratteri del dispositivo. (Nota che devi impostare la proprietà alpha del campo di testo o del suo genitore - la scelta di un colore trasparente per il testo stesso non funziona.)

  3. L'opzione di fallback per v8-9 è quella di forzare la memorizzazione nella cache bitmap applicando un filtro. Ad esempio, è possibile utilizzare un'ombra discendente con il set di colori trasparente. Questo fa sì che Flash renda il campo di testo in una bitmap prima di disegnarlo sullo schermo, quindi il tuo alfa viene applicato alla bitmap e tutto funziona.

  4. Per la versione del lettore 7 o precedente, non c'è modo di ottenere alpha per i caratteri del dispositivo. Devi incorporare il carattere o imparare a vivere senza alfa. : D

Altri suggerimenti

Se scopri che un campo di testo non risponde alla proprietà alpha, probabilmente è perché non hai incorporato il carattere. Assicurati di fare clic su & Quot; Incorpora ... & Quot; nelle proprietà del campo di testo e selezionare, ad esempio, " Latino di base " ;.

Se scopri che la tua formattazione htmlText (ad esempio <b> e <i>) non viene visualizzata, devi assicurarti che anche quei caratteri (con stile) siano incorporati. Un modo semplice per farlo è creare campi di testo dinamici nascosti o fuori scena con gli stili di cui hai bisogno (assicurati di incorporare anche il carattere!)

Puoi farlo senza incorporare il carattere usando blendMode, con un piccolo sacrificio nell'aspetto del testo (credo).

import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;

Il testo dinamico non supporta la proprietà alpha (tra gli altri). Presumo che impostarlo su testo HTML imponga gli stessi limiti. Un modo in cui l'ho trovato è contenere il campo di testo in un clip filmato e impostare invece l'alfa sul clip filmato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top