Updated MXNA RSS Reader Flex App – Now With Source

Here’s the newest version of the MXNA RSS Reader Flex application that was shown at 360Flex. It’s been updated and another Flex community component was added into the mix. And full source is published. I call it ZOMGZ!!1 RSS Reader.

The updated recipe is:

So what’s new?
I added the sticky tooltip component by Maikel Sibbald, which shows the description of the article when you hover your mouse over it. I think it looks sweet. There’s a new icon for the most popular posts of the day. There’s also an options panel (click the rightmost icon). You can configure how many posts you want to read for each category. And you can choose to use the “Smart Categories” or the regular categories that MXNA offers (not all categories have smart categories that correspond). Those options are stored in a shared object, so next time you load the app it will remember your settings. And it will automatically load the last category you were browsing. I utilized a better method for sizing the font in the TreeMap that I didn’t realize Josh had included in the component. It looks a lot better now. I had to make a small modification to the component to get it work with embedded fonts, but now the fonts looks silky smooth and they show up in the reflection. I made some performance enhancements, turns out that drawing that reflection when you’re using embedded fonts really eats up processing power.

Future development
I’ve been working on getting the source to an acceptable point to release it to the wild. I didn’t get all this code to a point I’m truly happy with, a lot of it’s uncommented, but my ADD is kicking in and I’m tired of working on it, so here it is as it is. Use it to learn, use it for inspiration, use it for whatever. The only restriction is that Josh’s TreeMap is licensed under the GPL license (AFAIK the other stuff is MIT-ish license). I dropped this into an Apollo app and it kind of makes a cool desktop RSS app, but I didn’t add anything that really makes it any better than the web version, so I’m not going to release the Apollo version. I’m not planning on working on it anymore. I’ll be working on a few other RSS visualization apps.


So check out the example below. View the source here.

[Or launch it in it’s own window: here’s the link]

This movie requires Flash Player 9.


27 thoughts on “Updated MXNA RSS Reader Flex App – Now With Source

  1. Nate says:

    Yes! Doug, i showed the president of a top 30 performing S&P 500 company your component mashup. He loved it. We are going to combine it with the flex book to show some really cool stuff.

    Thanks for posting the source! I really like the bouncing “OSX” like icons that bounce until it’s loaded.

  2. David B says:

    People like you are making easy and amazing Flex learning. It looks great. Just one thing, I get the next error when I click on an icon (the cube rotates and show its content) and then click the same icon again quickly:

    TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
    at MXNAReader/::changeSelected()
    at MXNAReader/__fisheye_change()
    … etc etc

    I guess you can fix it in a couple of minutes, and my intention is just to colaborate. I am really excited with this app.

    Thanks for develop

  3. jeff says:

    Thank you for sharing. I will study your code in detail. That is really excellent sample for us to learn.


  4. Luke McLean says:

    Hi Doug I know that you are no going to iterate the RSS reader however the sticky tooltips class runs off the page. I have made the following changes to stop this behaviour… tried to get it to work with adding your little speach bubble but invalidateDisplayList() {used to trigger the updateDisplayList() to redraw the border} also removes all the html formatting… bug or feature I cannot work it out.

    To constrain the tooltip (keep it within the screen bounds)…

    1) add the following private vars to the FXCToolTip class:

    private var isInit:Boolean;
    private var relx:Number;
    private var rely:Number;

    2) modify the makeSticky() method in that same class:

    private function makeSticky():void{

    this.addEventListener(Event.ENTER_FRAME, function():void{
    if(parent != null){
    var xBounds:Boolean = (((Application.application.mouseX + parent.width – relx) < Application.application.screen.width)&&(Application.application.mouseX – relx > 0));
    var yBounds:Boolean = (((Application.application.mouseY + parent.height – rely) < Application.application.screen.height)&&(Application.application.mouseY – rely > 0));

    if (!isInit) {
    relx = Application.application.mouseX – parent.x;
    rely = Application.application.mouseY – parent.y;
    isInit = true;

    if (xBounds && yBounds) {
    parent.x = Application.application.mouseX – relx;
    parent.y = Application.application.mouseY – rely;
    } else if (yBounds) {
    parent.y = Application.application.mouseY – rely;
    relx = Application.application.mouseX – parent.x;
    } else if (xBounds) {
    parent.x = Application.application.mouseX – relx;
    rely = Application.application.mouseY – parent.y;
    } else {
    relx = Application.application.mouseX – parent.x;
    rely = Application.application.mouseY – parent.y;

  5. Pingback: All in a days work…

  6. Pingback: Gus blog online » Let’s get Flex !

  7. Pingback: MyoT - » Pleasant surprise

  8. Pingback: Code Sweat Blog » Blog Archive » Some Flex 2 Related Links (pt. two)

  9. Sameer says:

    Hey Doug, great app this Flex RSS Reader; I was wondering, how did you make the small clock thingy appear as the mouse pointer when there’s activity?


  10. Neal Mi says:

    Thanks for your work. Give us an amazing RSS reader.

    It seems not work very well with Flex 3 on Linux.
    1st, fisheye has many warning, and style textDecoration duplicate.
    2nd. XNAReader has one warning about data binding at line 386.
    3rd. Embed font with an error.(I know Linux don’t have font Arial, flashType has been deprecated since

  11. Remy says:

    Very cool! And it’s a good example for learning. Thanks for sharing!
    I’m wondering, how to add Glow effect to the selected icon?

  12. MechanisM says:

    Great!! But its not working in current Flex version =(( , so I can run it only under Flex 2.0.1 SDK =((… Can u, please, create a new one version? Because this kickass app still actual for beginners like me

  13. eSchneids says:

    I love the look and style of the fisheye … I want to use it within a series of applications I’m developing, I’m combining with a sliding drawer effect in order to maximize screen realestate … I’m developing in Flex 3 … currently I’m receiving the following error:

    Declaration of style ‘textDecoration’ conflicts with previous declaration in C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\framework.swc(mx/core/UITextField).

    I’ve looked through all the files and can’t find where the duplicate declaration would be … any help or feed back would be appreciated.

  14. Shawn Evans says:

    The issue with “Declaration of style ‘textDecoration’ conflicts with previous declaration in C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs\framework.swc(mx/core/UITextField).” can be fixed by reming out line 76 of the “CashedLabel.as” in the qs/controls area.

  15. aniemsh says:

    i am facing the problem “Fisheye Component” if i set the height in percentage. may you please provide me solution for that.


  16. Stephen says:

    Hey Doug,

    When I try the demo, It keeps prompting me whether I’m online. I’m definitely online though otherwise I wouldn’t be able to send you this comment. Is it out of action or still working?


  17. Pingback: Flex MXNA RSS Reader – From dougmccune.com

Comments are closed.