Pacchettoflash.text
Classepublic dynamic class StyleSheet
EreditarietàStyleSheet Inheritance EventDispatcher Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe StyleSheet consente di creare un oggetto StyleSheet contenente regole di formattazione del testo relative alla dimensione del carattere, al colore e ad altri stili. Gli stili definiti da un foglio di stile possono quindi essere applicati a un oggetto TextField che contiene testo in formato XML o HTML. Il testo contenuto nell'oggetto TextField viene formattato automaticamente in base agli stili di tag definiti dall'oggetto StyleSheet. Gli stili di testo possono essere utilizzati per definire nuovi tag di formattazione, per ridefinire i tag HTML incorporati o per creare delle classi di stile da applicare a determinati tag HTML.

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. Valutare 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à CSSProprietà ActionScriptUso e valori supportati
colorcolorSono 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;.
displaydisplaySono supportati i valori inline, block e none.
font-familyfontFamilyElenco 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-sizefontSize Viene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti.
font-stylefontStyleI valori riconosciuti sono normal e italic.
font-weightfontWeightI valori riconosciuti sono normal e bold.
crenaturacrenaturaI 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.
leadingleadingQuantità 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-spacingletterSpacingQuantità 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-leftmarginLeftViene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti.
margin-rightmarginRightViene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti.
text-aligntextAlignI valori riconosciuti sono left, center, right e justify.
text-decorationtextDecorationI valori riconosciuti sono none e underline.
text-indenttextIndentViene utilizzata solo la parte numerica del valore. Le unità (px, pt) non vengono analizzate; i pixel e i punti sono equivalenti.

Vedere gli esempi

Vedere anche

flash.text.TextField


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
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
Metodi pubblici
 MetodoDefinito da
  
Crea un nuovo oggetto StyleSheet.
StyleSheet
 Inherited
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
 Inherited
Invia un evento nel flusso di eventi.
EventDispatcher
  
getStyle(styleName:String):Object
Restituisce una copia dell'oggetto stile associato allo stile denominato styleName.
StyleSheet
 Inherited
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
parseCSS(CSSText:String):void
Analizza il file CSS in CSSText e lo carica con il foglio di stile.
StyleSheet
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
  
setStyle(styleName:String, styleObject:Object):void
Aggiunge all'oggetto foglio di stile un nuovo stile con il nome specificato.
StyleSheet
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
  
transform(formatObject:Object):TextFormat
Estende la funzione di analisi dei file CSS.
StyleSheet
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
 Inherited
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
 Inherited Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
 Inherited Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
Descrizione delle proprietà
styleNamesproprietà
styleNames:Array  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Un array che contiene i nomi (sotto forma di stringhe) di tutti gli stili registrati nel foglio di stile.


Implementazione
    public function get styleNames():Array
Descrizione della funzione di costruzione
StyleSheet()Funzione di costruzione
public function StyleSheet()

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea un nuovo oggetto StyleSheet.

Vedere anche

Descrizione dei metodi
clear()metodo
public function clear():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Rimuove tutti gli stili dall'oggetto StyleSheet.

getStyle()metodo 
public function getStyle(styleName:String):Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

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.

Restituisce
Object — Un oggetto.

Vedere anche


Esempio
Come utilizzare gli esempi
Per capire come utilizzare il metodo getStyle(), fare riferimento all'esempio relativo ai metodi parseCSS() o transform().
parseCSS()metodo 
public function parseCSS(CSSText:String):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

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, è possibile ignorare questo metodo creando una sottoclasse della classe StyleSheet.

Parametri

CSSText:String — Il testo CSS da analizzare (una stringa).


Esempio

Nel seguente esempio quando un utente fa clic sul file di testo, gli stili caricati da un file CSS vengono applicati al suo contenuto.

Nella funzione di costruzione, viene creato un campo di testo multiriga e il suo contenuto viene applicato ad una stringa con formato HTML. Si noti che i tag HTML heading e span non verranno rappresentati prima dell'applicazione dello stile CSS. Per identificare la posizione del file CSS che, in 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. Quando tutti i dati vengono ricevuti e situati nella proprietà dati dell'oggetto URLLoader loader, viene richiamato il metodo loaderCompleteHandler() il quale analizza gli stili CSS attraverso i dati caricati dal file e li usa per riempire l'oggetto StyleSheet StyleSheet sheet.

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, salvarlo 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
Versione lettore: Flash Player 9

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):TextFormat

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

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.

Restituisce
TextFormat — Un oggetto TextFormat che contiene il risultato della mappatura delle regole CSS alle proprietà di formattazione del testo.

Vedere anche


Esempio

Questo esempio utilizza il metodo 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. Per l'evento Event.COMPLETE viene aggiunto un listener di eventi, che si attiva ogniqualvolta i dati vengono ricevuti e situati nella proprietà dati dell'oggetto URLLoader loader. Successivamente il metodo loaderCompleteHandler() analizza il CSS attraverso i dati caricati dal file e riempie 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;
        }
    }
}
Esempi Come utilizzare gli esempi
StyleSheetExample.as

Nell'esempio seguente viene creato un nuovo foglio di stile e vengono assegnate le modalità di gestione del carattere grassetto e rosso allo stile heading.
 
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);
        }
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/text/StyleSheet.html