Paket | flash.text |
Klass | public dynamic class StyleSheet |
Arv | StyleSheet EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Använd format på ett TextField-objekt genom att koppla StyleSheet-objektet till ett TextField-objekts styleSheet
-egenskap.
Obs! Det går inte att redigera ett textfält med en formatmall. Ett textfält med egenskapen type
inställd på TextFieldType.INPUT
använder alltså formatmallen på standardtexten för textfältet, men användaren kan inte längre redigera innehållet. Klassen TextFormat kan användas för att tilldela format till inmatningsfält.
I Flash Player används en delmängd av egenskaper i den ursprungliga CSS1-specifikationen (www.w3.org/TR/REC-CSS1). I följande tabell anges alla CSS-egenskaper och -värden (Cascading Style Sheet) som stöds samt motsvarande egenskapsnamn i ActionScript. (Varje egenskapsnamn i ActionScript hämtas från motsvarande egenskapsnamn i CSS, om namnet innehåller ett bindestreck tas bindestrecket bort och efterföljande tecken blir versalt.)
CSS-egenskap | ActionScript-egenskap | Funktion och olika värden |
---|---|---|
color
|
color
| Endast hexadecimala färgvärden används. Namngivna färger (t.ex. blue ) används inte. Färgerna anges i följande format: #FF0000 . |
display
|
display
| Värden som kan användas är inline , block och none . |
teckensnittsfamilj
|
fontFamily
| En kommaavgränsad lista med teckensnitt som används, i prioritetsordning. Valfritt namn kan användas för teckensnittsfamilj. Om du anger ett generiskt teckensnittsnamn konverteras det till lämpligt enhetsteckensnitt. Följande teckensnittskonverteringar används: mono konverteras till _typewriter , sans-serif konverteras till _sans ochserif konverteras till_serif . |
teckensnittsstorlek
|
fontSize
| Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
teckensnittsformat
|
fontStyle
| Värden som används är normal och italic . |
font-weight
|
fontWeight
| Värden som används är normal och bold . |
kerning
|
kerning
| Värden som används är true och false . Kerning kan endast användas med inbäddade teckensnitt. Vissa teckensnitt, till exempel Courier New, stöder inte kerning. Egenskapen kerning kan bara användas i SWF-filer som skapats i Windows, inte i SWF-filer som skapats på Macintosh. SWF-filerna kan ändå spelas upp med Flash Player-versioner som inte är för Windows och kerningen gäller fortfarande. |
leading
|
leading
| Det mellanrum som fördelas jämnt mellan raderna. Värdet anger antalet pixlar som läggs till efter varje rad. Ett negativt värde drar ihop mellanrummet mellan raderna. Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
letter-spacing
|
letterSpacing
| Det mellanrum som fördelas jämnt mellan tecknen. Värdet anger antalet pixlar som läggs till efter varje tecken. Ett negativt värde drar ihop mellanrummet mellan tecknen. Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
vänstermarginal
|
marginLeft
| Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
högermarginal
|
marginRight
| Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
textjustering
|
textAlign
| Värden som används är left , center , right , och justify . |
textdekorering
|
textDecoration
| Värden som används är none och underline . |
indragen text
|
textIndent
| Endast den numeriska delen av värdet används. Enheter (px, pt) hämtas inte; pixlar och punkter är samma enhet. |
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
styleNames : Array [skrivskyddad]
En array som innehåller namnen (i strängform) på alla format som är registrerade i formatmallen. | StyleSheet |
Metod | Definieras med | ||
---|---|---|---|
Skapar ett nytt StyleSheet-objekt. | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Tar bort alla format från formatmallsobjektet. | StyleSheet | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Returnerar en kopia av formatobjektet som är associerat med formatet styleName. | StyleSheet | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Tolkar CSS i CSSText och läser in formatmallen med den. | StyleSheet | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Lägger till ett nytt format med det angivna namnet i formatmallsobjektet. | StyleSheet | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Utökar CSS-tolkningskapaciteten. | StyleSheet | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
styleNames | egenskap |
StyleSheet | () | Konstruktor |
public function StyleSheet()
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar ett nytt StyleSheet-objekt.
Relaterade API-element
clear | () | metod |
public function clear():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tar bort alla format från formatmallsobjektet.
getStyle | () | metod |
public function getStyle(styleName:String):Object
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Returnerar en kopia av det formatobjekt som är kopplat till formatet styleName
. Om det inte finns något formatobjekt kopplat till styleName
, returneras null
.
Parametrar
styleName:String — En sträng som anger namnet på det format som ska hämtas.
|
Object — Ett objekt.
|
Relaterade API-element
Exempel
Så här använder du exemplet
Hur metoden
getStyle()
används visas i exemplen för metoderna parseCSS() och transform().
parseCSS | () | metod |
public function parseCSS(CSSText:String):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tolkar CSS i CSSText
och läser in formatmallen med den. Om ett format i CSSText
redan finns i styleSheet
, behålls egenskaperna i styleSheet
, och bara egenskaperna i CSSText
läggs till eller ändras i styleSheet
.
Du kan utöka den inbyggda CSS-tolkningskapaciteten genom att skapa en underklass av klassen StyleSheet som åsidosätter den här metoden.
Parametrar
CSSText:String — Den CSS-text som ska tolkas (en sträng).
|
Exempel ( Så här använder du exemplet )
I konstruktorn skapas ett textfält med flera rader och dess innehåll ställs in på en HTML-formaterad sträng. (HTML-taggarna heading och span återges inte förrän CSS-formateringen tillämpas.) Ett URLRequest
-objekt skapas för att identifiera CSS-filens plats. I det här exemplet finns CSS-filen i samma katalog som SWF-filen. Filen läses in med ett URLLoader
-objekt. Två händelseavlyssnare läggs till för URLLoader-objektet loader
. Om ett IO-fel inträffar anropas metoden errorHandler()
. Den visar ett felmeddelande i textfältet. När alla data har tagits emot och placerats i egenskapen data för URLLoader-objektet loader
anropas metoden loaderCompleteHandler()
. Den här metoden tolkar CSS-formaten utifrån de data som har lästs in från filen och fyller i StyleSheet-objektet sheet
med formatdefinitionerna.
När användaren klickar på textfältet anropas metoden clickHandler()
. If-satsen i metoden clickHandler()
kontrollerar att filinläsningen avslutats innan formatmallen tillämpas på textfältet. För att formatmallen ska kunna tillämpas måste egenskapen htmlText
omtilldelas med innehållet efter att formatmallen har tilldelats till textfältet. CSS-egenskapsvärdena font-family
and the color
för heading-taggen läggs också till i textfältets innehåll. (Egenskapernas värden blir "undefined" om formatmallsvärdena inte är giltiga.)
Följande är ett exempel på innehåll i CSS-filen som kan användas med det här exemplet. Skapa en textfil, kopiera följande CSS-innehåll till den, spara den med filnamnet test.css
och spara den i samma katalog som SWF-filen innan du kör det här exemplet.
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 | () | metod |
public function setStyle(styleName:String, styleObject:Object):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lägger till ett nytt format med det angivna namnet i formatmallsobjektet. Om det namngivna formatet inte redan finns i formatmallen läggs det till. Om det namngivna formatet redan finns i formatmallen ersätts det. Om styleObject
-parametern är null
tas det namngivna formatet bort.
Flash Player skapar en kopia av formatobjektet som du skickar till den här metoden.
En lista över vilka format som stöds finns i tabellen i beskrivningen av klassen StyleSheet.
Parametrar
styleName:String — En sträng som anger namnet på det format som ska läggas till i formatmallen.
| |
styleObject:Object — Ett objekt som beskriver formatet eller null .
|
transform | () | metod |
public function transform(formatObject:Object):flash.text:TextFormat
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Utökar CSS-tolkningskapaciteten. Avancerade utvecklare kan åsidosätta den här metoden genom att utöka klassen StyleSheet.
Parametrar
formatObject:Object — Ett objekt som beskriver formatet och innehåller formatregler som objektegenskaper, eller null .
|
flash.text:TextFormat — Ett TextFormat-objekt som innehåller resultatet av mappningen av CSS-regler till textformategenskaper.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
transform()
för att använda ett format från en CSS-fil på ett TextFormat-objekt för ett textfält.
CSS-formatering används oftast för att formatera HTML-innehåll. Genom att använda metoden transform()
i ett StyleSheet-objekt kan emellertid specifik CSS-formatering tilldelas till ett TextFormat-objekt och sedan tillämpas på ett textfält.
Objekten URLRequest
och URLLoader
används för att läsa in CSS-filen. En händelseavlyssnare läggs till för händelsen Event.COMPLETE
som inträffar när alla data har tagits emot och placerats i egenskapen data för URLLoader-objektet loader
. Metoden loaderCompleteHandler()
tolkar sedan CSS från de data som lästs in från filen och fyller i StyleSheet-objektet sheet
med formaten. Metoden getStyle()
i formatmallen hämtar HTML-styckeformatering som sedan tilldelas till TextFormat-objektet cssFormat
med formatmallens transform()
-metod. Slutligen ställs standardtextformatet för textfältet inputField
in på det nya cssFormat
-textformatet.
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, 01:40 PM Z