Packageflash.text
Classepublic dynamic class StyleSheet
HéritageStyleSheet Inheritance EventDispatcher Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe StyleSheet permet de créer un objet feuille de style contenant des règles de formatage de texte pour la taille et la couleur de la police ainsi que d'autres styles de formatage. Vous pouvez ensuite appliquer des styles définis par une feuille de style à un objet TextField qui contient du texte au format HTML ou XML. Le texte contenu dans l'objet TextField est ensuite automatiquement mis en forme en fonction des styles de balises définis par l'objet StyleSheet. Vous pouvez utiliser des styles de texte pour définir de nouvelles balises de formatage, redéfinir des balises HTML intégrées ou créer des classes de style qui peuvent être appliquées à certaines balises HTML.

Pour appliquer des styles à un objet TextField, attribuez l'objet feuille de style à une propriété styleSheet.

Remarque : tout champ de texte associé à une feuille de style n'est pas modifiable. En d'autres termes, un champ de texte dont la propriété type est définie sur TextFieldType.INPUT applique la feuille de style au texte par défaut du champ de texte, qui à partir de ce moment ne peut plus être modifié par l'utilisateur. Préférez la classe TextFormat pour affecter des styles aux champs de saisie.

Flash Player prend en charge un sous-ensemble de propriétés dans le cadre de la spécification CSS1 d'origine (www.w3.org/TR/REC-CSS1). Le tableau suivant présente les propriétés et les valeurs supportées de la feuille de style en cascade (CSS) et les noms de propriétés ActionScript correspondants. (Chaque nom de propriété ActionScript est tiré du nom de propriété CSS correspondant. Si le nom contient un trait d'union, le trait d'union est omis et le caractère suivant est une majuscule.)

Propriété CSSPropriété ActionScriptUtilisation et valeurs supportées
colorcolorSeules les valeurs hexadécimales de couleur sont supportées. Les couleurs nommées (comme blue) ne sont pas prises en charge. Les couleurs sont écrites au format suivant : #FF0000.
displaydisplayLes valeurs supportées sont inline, block et none.
font-familyfontFamilyListe des polices à utiliser, séparées par des virgules, classées par ordre de choix décroissant. Tous les noms de familles de polices peuvent être utilisés. Si vous spécifiez un nom de police générique, il est converti dans la police de périphérique appropriée. Les conversions de police suivantes sont disponibles : mono est converti en _typewriter, sans-serif en _sans et serif en _serif.
font-sizefontSize. Seule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.
font-stylefontStyleLes valeurs reconnues sont normal et italic.
font-weightfontWeightLes valeurs reconnues sont normal et bold.
crénagecrénageLes valeurs reconnues sont true et false. Le crénage est supporté uniquement pour les polices incorporées. Certaines polices, telles que Courier New, ne supportent pas le crénage. La propriété de crénage n'est supportée que dans les fichiers SWF créés dans Windows, pas dans les fichiers SWF créés sur Macintosh. Cependant, ces fichiers SWF peuvent être lus dans des versions de Flash Player autres que Windows et le crénage s'applique encore.
leadingleadingLa quantité d'espace répartie uniformément entre les lignes. La valeur spécifie le nombre de pixels à ajouter après chaque ligne. Une valeur négative comprime l'espace entre les lignes. Seule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.
letter-spacingletterSpacingLa quantité d'espace répartie uniformément entre les caractères. La valeur spécifie le nombre de pixels à ajouter après chaque caractère. Une valeur négative comprime l'espace entre les caractères. Seule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.
margin-leftmarginLeftSeule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.
margin-rightmarginRightSeule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.
text-aligntextAlignLes valeurs reconnues sont left, center, right et justify.
text-decorationtextDecorationLes valeurs reconnues sont none et underline.
text-indenttextIndentSeule la partie numérique de la valeur est utilisée. Les unités (px, pt) ne sont pas analysées. Les pixels et les points sont équivalents.

Consulter les exemples

Voir aussi

flash.text.TextField


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
  styleNames : Array
[lecture-seule] Tableau qui contient les noms (sous formes de chaînes) de tous les styles enregistrés dans cette feuille de style.
StyleSheet
Méthodes publiques
 MéthodeDéfini par
  
Crée un objet StyleSheet.
StyleSheet
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Supprime l'ensemble des styles de l'objet feuille de style spécifié.
StyleSheet
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
  
getStyle(styleName:String):Object
Renvoie une copie de l'objet style associé au style spécifié appelé styleName.
StyleSheet
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
  
parseCSS(CSSText:String):void
Analyse le CSS dans CSSText et charge la feuille de style en même temps.
StyleSheet
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
  
setStyle(styleName:String, styleObject:Object):void
Ajoute un nouveau style avec le nom spécifié à l'objet feuille de style.
StyleSheet
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
  
transform(formatObject:Object):TextFormat
Développe la capacité d'analyse du fichier CSS.
StyleSheet
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif.EventDispatcher
 Inherited Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif.EventDispatcher
Détails des propriétés
styleNamespropriété
styleNames:Array  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Tableau qui contient les noms (sous formes de chaînes) de tous les styles enregistrés dans cette feuille de style.


Implémentation
    public function get styleNames():Array
Détails du constructeur
StyleSheet()Constructeur
public function StyleSheet()

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet StyleSheet.

Voir aussi

Détails des méthodes
clear()méthode
public function clear():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Supprime l'ensemble des styles de l'objet feuille de style spécifié.

getStyle()méthode 
public function getStyle(styleName:String):Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Renvoie une copie de l'objet style associé au style spécifié appelé styleName. Si aucun objet style n'est associé à styleName, null est renvoyé.

Paramètres

styleName:String — Chaîne qui spécifie le nom du style à extraire.

Valeur renvoyée
Object — Un objet.

Voir aussi


Exemple
Utilisation des exemples
Consultez l'exemple de la méthode parseCSS() ou transform() pour une illustration de l'utilisation de la méthode getStyle().
parseCSS()méthode 
public function parseCSS(CSSText:String):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Analyse le CSS dans CSSText et charge la feuille de style en même temps. Si l'un des styles de CSSText existe déjà dans styleSheet, les propriétés de styleSheet sont conservées et seules celles de CSSText sont ajoutées ou modifiées dans styleSheet.

Pour développer la capacité d'analyse CSS d'origine, vous pouvez annuler cette méthode en créant une sous-classe de la classe StyleSheet.

Paramètres

CSSText:String — Le texte CSS à analyser (une chaîne).


Exemple

Dans l'exemple suivant, lorsqu'un utilisateur clique sur le fichier de texte, les styles CSS, chargés à partir d'un fichier, sont appliqués au contenu.

Dans le constructeur, un champ de texte multiligne est créé et son contenu est défini sur une chaîne au format HTML. (Notez que le titre HTML et les balises Span ne seront pas rendus avant que le style CSS ne soit appliqué.) Un objet URLRequest est créé pour identifier l'emplacement du fichier CSS, qui pour cet exemple est dans le même répertoire que le fichier SWF. Le fichier est chargé avec un objet URLLoader. Deux écouteurs d'événement sont ajoutés pour l'objet URLLoader loader. Si une erreur d'E/S survient, la méthode errorHandler() est invoquée et affiche un message d'erreur dans le champ de texte. Lorsque toutes les données ont été reçues et placées dans la propriété des données de l'objet URLLoader loader, la méthode loaderCompleteHandler() est invoquée et analyse les styles CSS des données chargées à partir du fichier et les utilise pour renseigner l'objet StyleSheet sheet.

Lorsque l'utilisateur clique sur le champ de texte, la méthode clickHandler() est appelée. L'instruction if de la méthode clickHandler() s'assure que le chargement du fichier est terminé avant d'appliquer la feuille de style au champ de texte. Pour que la feuille de style prenne effet, la propriété htmlText doit être réaffectée au contenu après que la feuille de style ait été affectée au champ de texte. Les valeurs des propriétés CSS font-family et color de la balise de titre sont également ajoutées au contenu du champ de texte. (Les valeurs de ces propriétés seront "undefined" si les valeurs de la feuille de style n'ont pas pris effet.)

L'exemple suivant est un contenu de fichier CSS qui peut être utilisé avec cet exemple. Avant d'exécuter cet exemple, créez un fichier texte, copiez dans ce dernier le contenu CSS suivant, puis enregistrez le fichier sous le nom test.css et placez-le dans le même répertoire que le fichier 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()méthode 
public function setStyle(styleName:String, styleObject:Object):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Ajoute un nouveau style avec le nom spécifié à l'objet feuille de style. Si le style nommé n'existe pas déjà dans la feuille de style, il est ajouté. Si le style nommé n'existe pas déjà dans la feuille de style, il est remplacé. Si le paramètre styleObject est null, le style nommé est supprimé.

Flash Player crée une copie de l'objet style que vous transmettez à cette méthode.

Vous trouverez une liste des styles supportés dans le tableau de description de la classe StyleSheet.

Paramètres

styleName:String — Chaîne qui spécifie le nom du style à ajouter à la feuille de style.
 
styleObject:Object — Un objet qui décrit le style, ou null.

transform()méthode 
public function transform(formatObject:Object):TextFormat

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Développe la capacité d'analyse du fichier CSS. Les développeurs avancés peuvent annuler cette méthode en développant la classe StyleSheet.

Paramètres

formatObject:Object — Objet qui décrit le style, contenant des règles de style en tant que propriétés de l'objet, ou null.

Valeur renvoyée
TextFormat — Objet TextFormat contenant le résultat du mappage des règles CSS en propriétés de format de texte.

Voir aussi


Exemple

Cet exemple utilise la méthode transform() pour appliquer un style à partir d'un fichier CSS à un objet TextFormat pour un champ de texte.

Les styles CSS sont généralement utilisés pour mettre en forme du contenu HTML. Toutefois, via la méthode transform() d'un objet StyleSheet, des styles CSS peuvent être affectés à un objet TextFormat, puis appliqués à n'importe quel champ de texte.

Les objets URLRequest et URLLoader sont utilisés pour charger le fichier CSS. Un écouteur d'événement est ajouté pour l'événement Event.COMPLETE, qui survient une fois que toutes les données ont été reçues et placées dans la propriété de données de l'objet URLLoader loader. La méthode loaderCompleteHandler() analyse ensuite le CSS à partir des données chargées depuis le fichier et renseigne l'objet StyleSheet sheet avec les styles. La méthode getStyle() de la feuille de style récupère les styles de paragraphe HTML, qui sont ensuite affectés à l'objet TextFormat cssFormat via la méthode transform() de la feuille de style. Enfin, le format de texte par défaut du champ de texte inputField est défini sur le nouveau format de texte 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;
        }
    }
}
Exemples Utilisation des exemples
StyleSheetExample.as

L'exemple suivant crée une feuille de style et applique une police en gras et rouge au style du titre.
 
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);
        }
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/text/StyleSheet.html