Pacchetto | flash.text |
Classe | public dynamic class StyleSheet |
Ereditarietà | StyleSheet EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Per applicare gli stili a un oggetto TextField, assegnare l'oggetto StyleSheet alla proprietà styleSheet
dell'oggetto TextField.
Nota: un campo di testo con un foglio di stile non è modificabile. In altre parole, un campo di testo la cui proprietà type
è impostata su TextFieldType.INPUT
applica la formattazione dell'oggetto StyleSheet al testo predefinito del campo, ma il contenuto non può più essere modificato dall'utente. Valutate come alternativa l'uso della classe TextFormat per assegnare degli stili ai campi di testo di input.
Flash Player supporta un sottoinsieme di proprietà della specifica CSS1 originale (www.w3.org/TR/REC-CSS1). Nella tabella seguente sono riportati le proprietà e i valori CSS (Cascading Style Sheet) supportati e i nomi di proprietà di ActionScript corrispondenti. Ogni nome di proprietà di ActionScript deriva dal nome della proprietà CSS corrispondente; se il nome contiene un trattino, questo viene omesso e il carattere successivo è in maiuscolo.
Proprietà CSS | Proprietà ActionScript | Uso e valori supportati |
---|---|---|
color
|
color
| Sono supportati solo i valori colore esadecimali. Non sono supportati i nomi dei colori, ad esempio blue . I colori devono essere scritti nel seguente formato: #FF0000; . |
display
|
display
| Sono supportati i valori inline , block e none . |
font-family
|
fontFamily
| Elenco di caratteri utilizzabili separati da una virgola, in ordine discendente di preferenza. È possibile utilizzare qualsiasi nome della famiglia di caratteri. Se si specifica un nome di carattere generico, questo viene convertito in un carattere di dispositivo adeguato. Sono disponibili le seguenti conversioni di caratteri: mono viene convertito in _typewriter , sans-serif viene convertito in _sans e serif diviene _serif . |
font-size
|
fontSize
| Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
font-style
|
fontStyle
| I valori riconosciuti sono normal e italic . |
font-weight
|
fontWeight
| I valori riconosciuti sono normal e bold . |
crenatura
|
crenatura
| I valori riconosciuti sono true e false . La crenatura è supportata solo per i caratteri incorporati. Alcuni caratteri, ad esempio Courier New, non supportano la crenatura. La proprietà di crenatura è supportata solo nei file SWF creati in Windows e non in quelli creati su Macintosh. Questi file SWF possono comunque essere riprodotti con versioni non Windows di Flash Player, e la crenatura risulterà visibile. |
leading
|
leading
| Quantità di spazio uniformemente distribuita tra le righe. Il valore specifica il numero di pixel aggiunti dopo ogni riga. Un valore negativo comprime lo spazio tra le righe. Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
letter-spacing
|
letterSpacing
| Quantità di spazio uniformemente distribuita tra i caratteri. Il valore specifica il numero di pixel aggiunti dopo ogni carattere. Un valore negativo comprime lo spazio tra i caratteri. Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
margin-left
|
marginLeft
| Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
margin-right
|
marginRight
| Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
text-align
|
textAlign
| I valori riconosciuti sono left , center , right e justify . |
text-decoration
|
textDecoration
| I valori riconosciuti sono none e underline . |
text-indent
|
textIndent
| Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti. |
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
styleNames : Array [sola lettura]
Un array che contiene i nomi (sotto forma di stringhe) di tutti gli stili registrati nel foglio di stile. | StyleSheet |
Metodo | Definito da | ||
---|---|---|---|
Crea un nuovo oggetto StyleSheet. | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento. | EventDispatcher | ||
Rimuove tutti gli stili dall'oggetto StyleSheet. | StyleSheet | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Restituisce una copia dell'oggetto stile associato allo stile denominato styleName. | StyleSheet | ||
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. | EventDispatcher | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Analizza il file CSS in CSSText e lo carica con il foglio di stile. | StyleSheet | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Aggiunge all'oggetto foglio di stile un nuovo stile con il nome specificato. | StyleSheet | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Estende la funzione di analisi dei file CSS. | StyleSheet | ||
Restituisce il valore di base dell'oggetto specificato. | Object | ||
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. | EventDispatcher |
styleNames | proprietà |
StyleSheet | () | Funzione di costruzione |
public function StyleSheet()
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un nuovo oggetto StyleSheet.
Elementi API correlati
clear | () | metodo |
public function clear():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Rimuove tutti gli stili dall'oggetto StyleSheet.
getStyle | () | metodo |
public function getStyle(styleName:String):Object
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Restituisce una copia dell'oggetto stile associato allo stile denominato styleName
. Se a styleName
non è associato alcun oggetto stile, viene restituito il valore null
.
Parametri
styleName:String — Una stringa che specifica il nome dello stile da recuperare.
|
Object — Un oggetto.
|
Elementi API correlati
Esempio
Come utilizzare questo esempio
Fare riferimento all'esempio del metodo parseCSS() o transform() per capire come utilizzare il metodo
getStyle()
.
parseCSS | () | metodo |
public function parseCSS(CSSText:String):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Analizza il file CSS in CSSText
e lo carica con il foglio di stile. Se uno stile in CSSText
è già in styleSheet
, le proprietà in styleSheet
vengono mantenute, e solo quelle in CSSText
vengono aggiunte o modificate in styleSheet
.
Per estendere la funzione di analisi dei file CSS, potete ignorare questo metodo creando una sottoclasse della classe StyleSheet.
Parametri
CSSText:String — Il testo CSS da analizzare (una stringa).
|
Esempio ( Come utilizzare questo esempio )
Nella funzione di costruzione, viene creato un campo di testo multiriga e il suo contenuto viene applicato ad una stringa con formato HTML. Il rendering dei tag HTML heading e span non verrà eseguito prima dell'applicazione dello stile CSS. Per identificare la posizione del file CSS (che ai fini di questo esempio si trova nella stessa directory del file SWF), viene creato un oggetto URLRequest
Il file viene caricato con un oggetto URLLoader
. Vengono poi aggiunti due listener di evento per l'oggetto URLLoader loader
. Se si verifica un evento IO_ERROR
, viene richiamato il metodo errorHandler() il quale scrive un messaggio di errore nel campo di testo. Dopo che tutti i dati sono stati ricevuti e inseriti nella proprietà data dell'oggetto URLLoader loader
, viene chiamato il metodo loaderCompleteHandler()
. Questo metodo analizza gli stili CSS attraverso i dati caricati dal file e compila l'oggetto StyleSheet sheet
con le definizioni di stile.
Quando l'utente fa clic sul campo di testo, viene richiamato il metodo clickHandler()
. Prima di applicare il foglio di stile al campo di testo, la dichiarazione if contenuta nel metodo clickHandler()
effettua un controllo per assicurarsi che il caricamento del file sia completo. Dopo l'assegnazione del foglio di stile al campo di testo, affinché il foglio di stile venga applicato, la proprietà htmlText
deve essere riassegnata al contenuto. Anche i valori delle proprietà font-family
e color
relative all'intestazione del CSS vengono allegate al contenuto del campo di testo. I valori di tali proprietà non saranno definiti se i valori del foglio di stile non sono attivi.
Di seguito viene riportato il contenuto di un file CSS che può essere utilizzato con il codice fornito in questo esempio. Prima di eseguire il codice dell'esempio occorre creare un file di testo nel quale copiare il seguente contenuto CSS, salvatelo con il nome test.css
e quindi inserirlo nella stessa directory del file SWF.
p { font-family: Times New Roman, Times, _serif; font-size: 14; font-Style: italic; margin-left: 10; } h1 { font-family: Arial, Helvetica, _sans; font-size: 20; font-weight: bold; } .bluetext { color: #0000CC; }
package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.IOErrorEvent; import flash.events.Event; import flash.events.MouseEvent; public class StyleSheet_parseCSSExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var field:TextField = new TextField(); private var exampleText:String = "<h1>This is a headline</h1>" + "<p>This is a line of text. <span class='bluetext'>" + "This line of text is colored blue.</span></p>"; private var sheet:StyleSheet = new StyleSheet(); private var cssReady:Boolean = false; public function StyleSheet_parseCSSExample() { field.x = 10; field.y = 10; field.background = true; field.multiline = true; field.autoSize = TextFieldAutoSize.LEFT; field.htmlText = exampleText; field.addEventListener(MouseEvent.CLICK, clickHandler); addChild(field); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { field.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { sheet.parseCSS(loader.data); cssReady = true; } public function clickHandler(e:MouseEvent):void { if (cssReady) { field.styleSheet = sheet; field.htmlText = exampleText; var style:Object = sheet.getStyle("h1"); field.htmlText += "<p>Headline font-family is: " + style.fontFamily + "</p>"; field.htmlText += "<p>Headline color is: " + style.color + "</p>"; } else { field.htmlText = "Couldn't apply the CSS styles."; } } } }
setStyle | () | metodo |
public function setStyle(styleName:String, styleObject:Object):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Aggiunge all'oggetto foglio di stile un nuovo stile con il nome specificato. Se non esiste già nel foglio di stile, lo stile con nome viene aggiunto. Se esiste già nel foglio di stile, lo stile con nome viene sostituito. Se il parametro styleObject
è null
, lo stile con nome viene rimosso.
Flash Player crea una copia dell'oggetto stile che si passa a questo metodo.
L'elenco degli stili supportati è riportato nella tabella della descrizione della classe StyleSheet.
Parametri
styleName:String — Una stringa che specifica il nome dello stile da aggiungere al foglio di stile.
| |
styleObject:Object — Un oggetto che descrive lo stile, oppure null .
|
transform | () | metodo |
public function transform(formatObject:Object):flash.text:TextFormat
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Estende la funzione di analisi dei file CSS. Gli sviluppatori avanzati possono ignorare questo metodo estendendo la classe StyleSheet.
Parametri
formatObject:Object — Un oggetto che descrive lo stile, contenente regole di stile sotto forma di proprietà dell'oggetto, oppure null .
|
flash.text:TextFormat — Un oggetto TextFormat che contiene il risultato della mappatura delle regole CSS alle proprietà di formattazione del testo.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
transform()
per applicare uno stile contenuto in un file CSS a un oggetto TextFormat relativo a un campo di testo.
Gli stili CSS vengono generalmente utilizzati per formattare dei contenuti HTML. Tuttavia, attraverso il metodo transform()
di un oggetto StyleSheet, alcuni stili CSS possono essere assegnati a un oggetto TextFormat e quindi applicati a qualsiasi campo di testo.
Per caricare il file CSS vengono utilizzati gli oggetti URLRequest
e URLLoader
. Viene aggiunto un listener di eventi per l'evento Event.COMPLETE
, che si verifica dopo che tutti i dati sono stati ricevuti e inseriti nella proprietà data dell'oggetto URLLoader loader
. Successivamente il metodo loaderCompleteHandler()
analizza il codice CSS attraverso i dati caricati dal file e compila l'oggetto StyleSheet sheet
con gli stili in esso contenuti. Il metodo getStyle()
del foglio di stile recupera gli stili di paragrafo HTML, i quali vengono poi assegnati all'oggetto TextFormat cssFormat
utilizzando il metodo transform()
del foglio di stile. Infine il formato predefinito del testo del campo di testo inputField
viene sostituito dal nuovo formato cssFormat
.
package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldType; import flash.events.IOErrorEvent; import flash.events.Event; public class StyleSheet_transformExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var inputField:TextField = new TextField(); private var sheet:StyleSheet = new StyleSheet(); public function StyleSheet_transformExample() { inputField.x = 10; inputField.y = 10; inputField.background = true; inputField.width = 300; inputField.height = 200; inputField.wordWrap = true; inputField.multiline = true; inputField.type = TextFieldType.INPUT; addChild(inputField); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { inputField.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { var cssFormat:TextFormat = new TextFormat(); sheet.parseCSS(loader.data); var style:Object = sheet.getStyle("p"); cssFormat = sheet.transform(style); inputField.defaultTextFormat = cssFormat; } } }
package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class StyleSheetExample extends Sprite { public function StyleSheetExample() { var style:StyleSheet = new StyleSheet(); var heading:Object = new Object(); heading.fontWeight = "bold"; heading.color = "#FF0000"; var body:Object = new Object(); body.fontStyle = "italic"; style.setStyle(".heading", heading); style.setStyle("body", body); var label:TextField = new TextField(); label.styleSheet = style; label.htmlText = "<body><span class='heading'>Hello </span>World...</body>"; addChild(label); } } }
Tue Jun 12 2018, 02:44 PM Z