Style htmlText with CSS in your Actionscript | Flash/CSS Tutorial

    Overview

    In flash you can have text areas that are rendered as html. You can also apply formatting styles to this html. This will show a simple example on how to apply css to html text in flash. I’ll do a simple anchor tag style to show you the ropes. We’ll style a link to be underlined and then when you hover or mouse over it, we’ll change the color. It’s a design style that is widely used online in html, but flash doesn’t natively do it. As a matter of fact, flash doesn’t even natively underline links.

    Steps

    1. Import TextField.StyleSheet
    2. create a style sheet object: var myCSS:StyleSheet = new StyleSheet();
    3. Specify your styles: myCSS.setStyle(“a:link”, {color:’#0000CC’,textDecoration:’underline’});
    4. Ensure that the text box is html enabled: myHTML.htmlText = myHTMLText;
    5. Apply the style sheet object to your html text box: myHTML.styleSheet = myCSS;

    Example

    Get Adobe Flash player

    Actionscript

    import TextField.StyleSheet;

    myHTMLText = "
    <h1>HTML Text (sample header)</h1>
    Here is some <em>sample</em> <strong>html text</strong> "
    +
    "filling a text box <a href="http://circlecube.com">this link to circlecube</a> and example headers"+
    "<h1>Header h1</h1><h2>Header h2</h2>";

    //create and initialize css
    var myCSS:StyleSheet = new StyleSheet();
    myCSS.setStyle("body", {fontSize:'15',color:'#000066'});
    myCSS.setStyle("h1", {fontSize:'25',color:'#000000'});
    myCSS.setStyle("h2", {fontSize:'19',color:'#000000'});
    myCSS.setStyle("a:link", {color:'#0000CC',textDecoration:'none'});
    myCSS.setStyle("a:hover", {color:'#0000FF',textDecoration:'underline'});
    myCSS.setStyle("b", {fontWeight:'bold'});
    myCSS.setStyle("em", {fontWeight:'bold'});

    //ensure html support and apply css to it
    myHTML.html = true;
    myHTML.styleSheet = myCSS;
    myHTML.htmlText = myHTMLText;
    //resize the textbox to exact fit the text in it
    //myHTML.autoSize = "left";

    Download

    open source flashhtmlcss.zip

    This entry was posted in tutorial and tagged , , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

    22 Comments

    1. Posted June 6, 2008 at 12:58 pm | Permalink

      Excellent improvement.

    2. Posted September 6, 2008 at 4:50 pm | Permalink

      Thank you, very straightforward example!

    3. Hz
      Posted October 20, 2008 at 2:43 pm | Permalink

      I don’t know but i don’t see your tag working.. looks bold to me and not italic.

    4. Posted October 20, 2008 at 9:54 pm | Permalink

      My bad…
      line 17 in the source code should read:

      myCSS.setStyle("em", {fontStyle:'italic'});

      Thanks for pointing that out Hz

    5. mata
      Posted October 27, 2008 at 4:39 pm | Permalink

      cool one thanks

    6. Posted January 14, 2009 at 9:34 am | Permalink

      Great tutorial, was a great help,

      Many thanks,

      Saf

    7. David
      Posted May 15, 2009 at 1:20 pm | Permalink

      Thanks for the tutorial. I think you should mention that this tutorial is for AS2 somewhere though.

      • Posted May 17, 2009 at 10:05 am | Permalink

        @David – Correct, sorry I didn’t mention it. This is AS2 version, AS3 isn’t too different, I’ll have to put together an article for that. Thanks

    8. luigi
      Posted July 8, 2009 at 6:24 am | Permalink

      hi and thanks
      is possible pick the text from a .txt file?

    9. circlecube
      Posted July 8, 2009 at 3:32 pm | Permalink

      @Luigi – Yes, this is possible, I don't remeber the syntax off the top of my head, but a well thought google search should do the trick, good luck!

    10. karstor
      Posted December 9, 2009 at 12:50 pm | Permalink

      dude, this is the best, simplest and most straight-forward tutorial I have come accross on the Web. Very well done and many thanks!

    11. Gav
      Posted January 8, 2010 at 9:27 pm | Permalink

      You didn’t define data type for myHtml.

      • Posted January 8, 2010 at 11:01 pm | Permalink

        @Gav – no requirement to define the datatype in as2. But in as3 that would be needed, should I write a new tut on how to do this in as3?

        • Gav
          Posted January 10, 2010 at 1:04 pm | Permalink

          Thanks Even for your prompt reply, it will be highly appreciated if you could write a new one.

        • Gav
          Posted January 10, 2010 at 1:07 pm | Permalink

          And I also wish to store the html text in XML file, in that case I can maintain html text dynamically. Can I apply CSS to the html text which I get from XML file? Thanks a lot, Evan you are awesome guy and very helpful!

    12. DIOGO
      Posted February 10, 2011 at 12:55 pm | Permalink

      muito bom mais uma pergunta

      como seria para retornar de uma xml com campo assim

      Apollo teste
      campdafjsdfjasçdfasd
      fasdkfasldkjfasd

      Portuguese to English translation:
      very good one more question

      would like to return from a well field with xml

      Apollo Test
      campdafjsdfjasçdfasd

    13. Posted May 1, 2011 at 4:00 pm | Permalink

      Nice and simple tutorial. Did you writte one for actionscript 3 ?

    14. Posted June 20, 2011 at 7:54 pm | Permalink

      The hover functionality happens regardless of whether there is a display object in front of the text or not (the TextEvent.LINK doesn’t fire when you click the text at least so that good). I found this out when using the “hoverable” text beneath a modal window. Anyone know a trick to keep this from happening? I don’t want to have to change my styles on the fly depending on if there is a DisplayObject in front of my text or not.

    15. Posted June 27, 2011 at 6:08 am | Permalink

      Hi Really… Thanks Helped Me lot

    16. Thomas
      Posted June 28, 2011 at 9:36 pm | Permalink

      after close each tag,it is going next line

      could you Please tell me the solution?

      Thanks

    17. versaena
      Posted May 3, 2012 at 12:28 am | Permalink

      how to give color at runtime……
      thank you

    Post a Comment

    Your email is never published nor shared. Required fields are marked *

    *
    *

    You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    • Recent Posts

      WordPress updates plugin directory

      New additions to the plugin directory include: favorites, incorporating support forums into it's own tab for each plugin as well as support stats being displayed! Great! I think we also need the ability to give plugins ratings and reviews (bonus points if it can be done from within a wordpress admin dashboard when installing plugins). [...]

      Short Head

      Use zipf's short head to tune your website rather than redesign the whole thing. To make a website successful it needs to meet the needs of the users. Find out what those needs are by using the short head philosophy to equate most searched things as the biggest needs of the users. Use personas to [...]

      Img Set?

      Great article at a list apart discusing the state of the industry regarding responsive images. This picks apart the set attribute of the img element from a surprisingly objective view coming from someone so close to the picture element. Insightful discussion about the principle behind the proposals than the actual solution too. If the working [...]

      Triudo

      A mesmerizing animated triangle-ish shape form. Embedded Link triduo triduo Tweet

      Git – the paradigm shift

      A great developer story about the differences on what Git is vs other version control and what Git is not. This is how we should learn it. I heard over and over that it was distributed, but never grasped what that meant, so here are a few links and explanations that will help unlearn version [...]

      Tweening Lib comes to Javascript!

      I'm very excited to share the news that the tween library from GreenSock (hands down the best tweening library I used in flash) is not ported for use in javascript! This will be great! I missed that simple syntax from as3 when animating javascript, and now I can have my cake and eat it too. [...]

      Responsive CSS Tricks

      Here are a few useful css tricks to remember when building responsive design sites from web designer wall Embedded Link 5 Useful CSS Tricks for Responsive Design Making the design to be responsive is very easy as shown in my Responsive Design in 3 Steps tutorial, but maintaining the elements to look aesthetically balanced on [...]

      Picture element of srcset attribute?

      Bruce details the reasons and story behind the srcset attribute which is now introduced as an alternative to the picture element. Some aspects of the attribute are nice (like the fact that it's an attribute and not a new element, so it's creating up new elements with for problems. It's adapting currently used elements to [...]

      SVG Preloader with Raphael JS

      Here's a very creative use of using a newly available technology. Using svg graphics which are very lightweight, for a website preloader. I like the animation used as well. Embedded Link Make a stylish preloader with SVG | Tutorial | .net magazine Many sites neglect users with slow connections. Ian Culshaw explains how to use [...]

      CSS3 Button/Icon set

      I've been secretly hoping to see a few of these pop up once the whole icon font idea spread through the nets. I really like this idea and it's a very nice implementation too! I only see some quality issues on a couple of the icons (such as youtube), but it's awesome and I hope [...]

    • Recent Comments

      Bruce Brownlee

      Bruce Brownlee

      Ah IE6. I'd have 2 more years of sleep without IE6. Margin doubling, no properties,...
      versaena

      versaena

      how to give color at runtime…… thank you
      Mobile Websites

      Mobile Websites

      I disagree, mobile websites are the future – desktop websites and mobile websites...
      Matt Fasick

      Matt Fasick

      That's cool. I like the ripple effect as well.
      Nico

      Nico

      hi! really great job guy! very impressive.. just a question… do u have a solution to do a refresh...
      Evan Mullins

      Evan Mullins

      Agreed! I've just seen some people get pretty heated about separating all functionality...