Create Your Own Adobe AIR Application with Flash

In this tutorial we’ll create a Twitter Reader application, fed from your own Twitter updates. We’ll look at some of the features of the nativeWindow class, how to sign it and make an install package.

Final Result Preview

Let’s take a look at the final application we’ll be working towards:

Step 1: Install Adobe AIR Runtime

With this player we can run any application with the .air extension, like the new Adobe Media Player. First we need install the Adobe AIR player, so go to Adobe and download the player. Choose your operating system and click download. When the download’s complete, install it.

Step 2: Install Adobe AIR Extension for Flash CS3 and CS4

Now we need our second element to develop AIR applications: the extension. In this case I’m using the one for Flash CS3 but it’s available for Flash CS4 too. Go to the Adobe Flash Support Center. Before you install the Flash update for Adobe AIR, you need to download and install the latest Flash Player update (9.0.2), which you can download here: http://www.adobe.com/support/flash/downloads.html#902.

Then you need to download and install the Adobe AIR Update for Flash CS3 Professional: http://www.adobe.com/support/flash/downloads.html.

Step 3: Document Setup

At this point, when you start Flash CS3 or CS4, on the welcome screen you’ll have the option of creating an Adobe AIR Flash file. Do it! Set the stage size to 300px wide and 500px high with 30 fps. I’ve chosen a white color for the background. Save it as "my-twitter-updates.fla".

Step 4: Creating the Background

We’re going to use an iPhone image as the background, so go to Sam Brown’s website (nice vectors) and download the package of iPhone images. Open the file with Fireworks or Photoshop and choose any size (without text) then export as "bg_iphone.png".

In Flash, choose File > Import then import the "bg_iphone.png" to stage. Select it and align it vertically and horizontally center. Convert this image to a movieclip symbol named "mcIphone", then go to properties and assign "twitterApp" as its instance name. Double-click the symbol and rename the first layer as "bg_iphone". You should now have something like the following image:

Step 5: Creating the Dynamic Textfields

Now go and create a new layer for the title of our application. Draw a dynamic text field and assign it "title_app" as an instance name.

Then add two new layers; the first named "my updates" and the second named "follow me". Create a multiline dynamic text field on the "my updates" layer with the following properties:

  • 11 font size
  • multiline textfield
  • white color
  • activate render text as html
  • assign "myUpdates" as the instance name

We’ll need a button for Follow Me on the "follow me" layer, so go to draw a rectangle at the bottom of the iPhone area and convert it to a button symbol with the text "Follow Me". Afterwards, assign "btFollowme" as the instance name.

Step 6: Add Scroll Buttons

At this point we need two buttons; up and down for scrolling the content of the "my updates" textfield. Go to the timeline panel and add a new layer. Type the name "scroll buttons", then draw an arrow on stage and convert it to a movieclip symbol. For the other button copy, paste and flip it verticaly. Assign "btUp" and "btDown" as an instance name. Finally, go back to the main timeline. When you finish you should have something like the following image.

Step 7: Getting Twitter Feed URL

Firstly, we need your RSS feed URL, so go to your Twitter home page. Now click on the Profile button in the top bar navigation. Go to the right panel, right-click on "Rss Feed of username" and copy the URL.

Step 8: Anatomy of Twitter RSS Feed

Let’s examine the structure of our Twitter RSS updates. The first part is the channel rss info and the second part is the loop of updates. We’ll use some basics nodes: the link of the first part, title, pubDate and the link of the loop item.

Step 9: Begin Scripting XML

Go back to Flash and create a new layer for the actions, it’s time to start coding. As you can see, the first variable contains the RSS feed URL from your Twitter profile, so paste in yours:

var twitterURL:String = "http://twitter.com/statuses/user_timeline/16211488.rss"; 
  var twitterXML:URLRequest = new URLRequest(twitterURL); 
  var myLoader:URLLoader = new URLLoader(twitterXML); 
myLoader.addEventListener("complete", xmlLoaded);

Step 10: Begin the XmlLoaded Function

With this function we can load the RSS and each node listed, before starting to define the variables of the xml nodes:

function xmlLoaded(evtObj:Event) { 
var twitter:XML = new XML(myLoader.data); 
var TwitterTitle:String = twitter.child(0).description; 
var UserUrl:String = twitter.child(0).link; 

Step 11: The Updates Loop

In this part we need to get the values of the xml nodes and assign them to a myUpdates variable. Use a for statement to do so.

var myUpdates:String = ""; 
   
  for each (var nodo:XML in twitter..item) { 
  myUpdates += "<a href='"+nodo.link+"'><font color='#a4917c'>"+nodo.title+"</font></a><br>"+"<font color='#a4bc34'>"+nodo.pubDate +"</font><br/><br/>"; 
}

Step 12: Text Fields and Event for Follow Button

First we display the title of the application, then we get the updates and finally add a EventListener for the follow button with the user’s url (Example: http://twitter.com/_dariux).

//THE TITLE APP > "Twitter updates from Darío Gutiérrez / _dariux." 
twitterApp.titleApp.text = TwitterTitle; 
 
//Display the value of myUpdates into the textfield 
twitterApp.myUpdates.htmlText = myUpdates; 
 
//Actions for Follow Me button 
twitterApp.btFollowme.addEventListener(MouseEvent.CLICK, btFollowme_CLICK);

  function btFollowme_CLICK(e:MouseEvent):void{ 
  var targetURL:URLRequest = new URLRequest(UserUrl); 
  navigateToURL(targetURL); 
  } 
   
  }

Step 13: Actions for the Scroll Buttons

Simple code for the scroll buttons, check this code:

//Listeners and functions for scroll buttons 
  twitterApp.btUp.addEventListener(MouseEvent.CLICK, scrollUp); 
twitterApp.btDown.addEventListener(MouseEvent.CLICK, scrollDown);

  function scrollUp(Event:MouseEvent):void { 
  twitterApp.myUpdates.scrollV -=5; 
  }
  
  function scrollDown(Event:MouseEvent):void { 
  twitterApp.myUpdates.scrollV +=5; 
  }

Step 14: Testing the Application

Test the movie (Menu Control + Test movie or cmd + enter). As you can see, it’s a normal window just as when you use the typical flash player. In the following step we’ll customize our application and you’ll notice the difference..

Step 15: Application and Installer AIR Settings

For the AIR Settings in Flash CS4 go to File > AIR Settings and for Flash CS3 go to Commands > AIR Application and Installer Settings. In this window we’ll begin to customize the application, so let’s go to the description field and write some general info.

Window Style
The Window Style is interesting. There are three styles: chrome, opaque and transparent. The Chrome style is like a simple window with buttons, background and border, the Opaque is a window with background but without buttons and the last style Transparent is a window without buttons and background. In our case, choose the Transparent style.

Icon
Choose an icon (or design one) for your application in differents sizes 16px, 32px, 48px, 128px with .png extension.

Advanced
In this option you can select the differents settings for the window when your application is launched, options for folders to install and updates.

Digital Signature
When you want to ship your AIR application, you’ll need a digital signature for the installer to install in other user’s systems. In this case we’ll sign our application with untrusted certificate to allow runtime AIR to install as Unverified publisher. If you need more details on how to get a certificate visit the following link: Digitally signing Adobe AIR applications.

Destination
Choose the folder destination and a name for your application.

Include files
Automatically Flash selects some files that are needed to run the application. If you are using other files in your app (like a caurina tween for example) you must include these files as part of the app.

Step 17: Scripting Window Move

In this part we’ll use the "NativeWindow" class and the function "startMove()", to allow our application to move across the whole stage. Go to the actions layer and add the following code. Then test it:

stage.addEventListener(MouseEvent.MOUSE_DOWN, moveWin);

  function moveWin(e:MouseEvent):void 
  { 
  stage.nativeWindow.startMove(); 
  }

Step 18: Close and Minimize Buttons

Now our application can move over the whole stage, but if you want to close or minimize, you can’t. Go and design two buttons: minimize (btMinimize instance name) and close (btClose instance name) such as the next picture, but this time you must use the main movie clip (twitterApp). Finally, add the following code:

//Minimize button 
  twitterApp.btMinimize.addEventListener(MouseEvent.CLICK, btMinimize_CLICK); 
  function btMinimize_CLICK(e:MouseEvent):void 
  { 
stage.nativeWindow.minimize(); 
}

  //Maximize button 
  twitterApp.btClose.addEventListener(MouseEvent.CLICK, btClose_CLICK); 
  function btClose_CLICK(e:MouseEvent):void 
  { 
  stage.nativeWindow.close(); 
  }

Step 19: Always in Front Feature

This feature is very simple. Just add a button below the Follow Me button, so it creates a new layer inside the main movieclip "twitterApp". Write "btAlwaysfront" as an instance name:

Once you’ve created this button, go inside and create another frame, each one with a stop action. The objective is to have two states for the button. Frame one deactivated and the second frame activated. This feature uses the alwaysInFront method from the nativeWindow class. After this we must add the actions to the btAlwaysfront button, so go to actions frame and paste the following code:

//Activate window always front 
  stage.nativeWindow.alwaysInFront=false; 
  twitterApp.btAlwaysfront.addEventListener(MouseEvent.CLICK, btAlwaysfront_CLICK); 
  function btAlwaysfront_CLICK(e:MouseEvent):void 
  { 
if ( stage.nativeWindow.alwaysInFront!=true){ 
twitterApp.btAlwaysfront.gotoAndStop(2); 
stage.nativeWindow.alwaysInFront=true; 
}else{ 
twitterApp.btAlwaysfront.gotoAndStop(1); 
stage.nativeWindow.alwaysInFront=false; 
} 
 
}

Step 20: The Complete Code

//Twitter rss url 
  var twitterURL:String = "http://twitter.com/statuses/user_timeline/16211488.rss"; 
  var twitterXML:URLRequest = new URLRequest(twitterURL); 
  var myLoader:URLLoader = new URLLoader(twitterXML); 
  myLoader.addEventListener("complete", xmlLoaded);
  
  function xmlLoaded(evtObj:Event) { 
  var twitter:XML = new XML(myLoader.data); 
  var TwitterTitle:String = twitter.child(0).description; 
  var UserUrl:String = twitter.child(0).link; 
   
  var myUpdates:String = ""; 
   
  //The loop 
   
  for each (var nodo:XML in twitter..item) { 
  myUpdates += "<a href='"+nodo.link+"'><font color='#a4917c'>"+nodo.title+"</font></a><br>"+"<font color='#a4bc34'>"+nodo.pubDate +"</font><br/><br/>"; 
  } 
   
  //THE TITLE APP > "Twitter updates from Darío Gutiérrez / _dariux." 
  twitterApp.titleApp.text = TwitterTitle; 
   
  //Display the valor of myUpdates into the  textfield 
  twitterApp.myUpdates.htmlText = myUpdates; 
   
  //Actions for Follow Me button 
  twitterApp.btFollowme.addEventListener(MouseEvent.CLICK, btFollowme_CLICK);
  
  function btFollowme_CLICK(e:MouseEvent):void{ 
  var targetURL:URLRequest = new URLRequest(UserUrl); 
  navigateToURL(targetURL); 
  } 
   
  }
  
  /****************************************************** 
  Listeners and functions for scroll buttons 
  ******************************************************/ 
  twitterApp.btUp.addEventListener(MouseEvent.CLICK, scrollUp); 
  twitterApp.btDown.addEventListener(MouseEvent.CLICK, scrollDown);
  
  function scrollUp(Event:MouseEvent):void { 
  twitterApp.myUpdates.scrollV -=5; 
  }
  
  function scrollDown(Event:MouseEvent):void { 
  twitterApp.myUpdates.scrollV +=5; 
  } 


/****************************************************** 
  AIR Zone 
  ******************************************************/ 
  //Window move 
  stage.addEventListener(MouseEvent.MOUSE_DOWN, moveWin);
  
  function moveWin(e:MouseEvent):void 
  { 
  stage.nativeWindow.startMove(); 
  } 


  //Minimize button 
  twitterApp.btMinimize.addEventListener(MouseEvent.CLICK, btMinimize_CLICK); 
  function btMinimize_CLICK(e:MouseEvent):void 
  { 
  stage.nativeWindow.minimize(); 
  }
  
  //Maximize button 
  twitterApp.btClose.addEventListener(MouseEvent.CLICK, btClose_CLICK); 
  function btClose_CLICK(e:MouseEvent):void 
  { 
  stage.nativeWindow.close(); 
  } 


  //Activate window always front 
  stage.nativeWindow.alwaysInFront=false; 
  twitterApp.btAlwaysfront.addEventListener(MouseEvent.CLICK, btAlwaysfront_CLICK); 
  function btAlwaysfront_CLICK(e:MouseEvent):void 
  { 
if ( stage.nativeWindow.alwaysInFront!=true){ 
twitterApp.btAlwaysfront.gotoAndStop(2); 
stage.nativeWindow.alwaysInFront=true; 
}else{ 
twitterApp.btAlwaysfront.gotoAndStop(1); 
stage.nativeWindow.alwaysInFront=false; 
} 
 
}

Step 21: Creating the AIR File

To publish your .air file in flash CS4 go to File > AIR Settings menu and click on the "Publish AIR file button".

For flash CS3 go to Commands > AIR – Create AIR File.

Then you’ll see a new window (the Digital Signature). Choose a certificate and type your password. It takes some time to create the .air file, but when finisedh you’ll see another window with the following text "AIR file has been created". The .air file is created in the same work directory as your .fla file.

Step 22: Final details

As you can see, my app has a drop shadow. If you want a mac windows style just select the main movie clip "twitterApp" and apply:

Conclusion

So there we have our AIR application! It’s a little application, but I hope it helps you as a reference to developing your own. With this technology we can develop awesome applications, mashable with APIs like Twitter, Gmaps and Flickr. There are many other features not covered in this tutorial, plenty of scope for a future tutorial or quick guide! Thanks for reading.

  • André

    Thanks for sharing, will be very usefull for most people… the only one thing i didnt like is the timeline programming, but it´s very usefull anyway.

  • Kevin

    Dario, thank you for the well-written tutorial. I learned a lot from this one. Nice work.

  • Pingback: Create Your Own Adobe AIR Application with Flash - Flashtuts+ at Flash Designers

  • http://labs.dariux.com Dario Gutierrez
    Author

    Your welcome guys!! I’m glad to help you!

  • http://www.twitter.com/explrcre8 samBrown

    good stuff Dario, will dig into this after work today ;)

    • http://www.twitter.com/explrcre8 samBrown

      BTW, just noticed where you work – what a cool gig!

      Love the Royal Mayan – we spend a week there once a year…

      • http://labs.dariux.com Dario Gutierrez
        Author

        Really? I’m work in Royal Islander, the first resort is The Royal Mayan, the The Royal Caribbean and the last The Royal Islander, close to reception in e-Commerce department.

  • http://www.greenlight3d.com.mx apolo

    Thanks for the clear instructions. it was a big help for someone like me who’s new to flash. I’ve completed the tut and now i’ll try to experiment with it using different graphics.

  • http://www.msdevstudio.com Mário Santos

    Great! I’m usually read many howto’s about developing AIR apps in Flex and almost forgot that flash allows it to.

    Congrats, that will help many people that don’t love flex :P

  • http://frankyaguilar.com Franky

    Why the iPod?
    Unless this is to be used as a demoing client, ditch the iPod!

  • Pingback: Create Your Own Adobe AIR Application with Flash - Flashtuts+

  • Aaron

    For some reason, when I get to step 14, it all goes wrong. Testing the application, I get these errors:

    Symbol ‘mcIphone’, Layer ‘actions’, Frame 1, Line 16: 1120: Access of undefined property twitterApp. twitterApp.titleApp.text = TwitterTitle;

    Symbol ‘mcIphone’, Layer ‘actions’, Frame 1, Line 17: 1120: Access of undefined property twitterApp. twitterApp.myUpdates.htmlText = myUpdates;

    Symbol ‘mcIphone’, Layer ‘actions’, Frame 1, Line 18: 1120: Access of undefined property twitterApp. twitterApp.btFollowme.addEventListener(MouseEvent.CLICK, btFollowme_CLICK);

    … and so on, for a total of ten error messages. I followed the tutorial to the letter so far. I need help please.

    • http://labs.dariux.com Dario Gutierrez
      Author

      Hi Aaron,
      I saw the error:
      in all your lines you use “twitterApp. twitterApp.” twice and with a space. Use something like this “twitterApp.myUpdates.htmlText” and without spaces.
      Best regards!

      • Aaron

        No, that’s the text of the error message: “Access of undefined property twitterApp.” Then there’s the source code, “twitterApp.btFollowme.addEventListener(MouseEvent.CLICK, btFollowme_CLICK);” etc.

  • http://twitter.com/arnold_c Arnold

    thanks! going to try this….

  • floral

    Great !! :) THANKS..

  • http://madaerodog.com madaerodog

    pfiuuu you scared me with the background, I thought air works on iPhone :))

    • http://www.zainals.com/blog Digital Moe

      Ditto ! :)

  • http://www.zainals.com/blog Digital Moe

    nice work buddy!
    awesome tut!

  • Bob

    This is just more of the same—unfinished, incomplete, and over-designed.

    First off, why would you ever, ever, ever confuse people w/ an iPhone graphic? Just don’t do it. It’s the mark of inexperience—as a designer. Not as a Flash developer—as a DESIGNER.

    2nd, this contains incomplete instructions. When published, it produces an error, and I coded the scripting by simply copy-and-paste from your source. I did this to confirm my hunch—that this won’t work 1st try.

    It would rock if there were some type of standard applied to people who post tutorials on the web. When not dealing w/ inconsistent instructions, you have to deal w/ someone who can barely speak English—let alone posting a tutorial in English.

    Fail. Not trying to be mean—just speaking the cold, hard, truth.

    • http://labs.dariux.com Dario Gutierrez
      Author

      I appreciate your comment Bob, I just want to share some knowledge.

    • http://snaptin.com Ian Yates
      Staff

      Delicately handled by Dario, but I think your (anonymous) comments were unreasonable.

      That he chose to use an iPod graphic as the app interface was exactly that, his choice. Should you disagree with the way it looks, it’s not hard to come up with your own graphics.

      Secondly, well done for taking it upon yourself to test the code to confirm your hunch. If you try the source code however, you’ll see that it does work. If you come across a typo in the code displayed during the tut, why not help us correct it?

      Lastly, there’s nothing wrong with the English in the tut; Dario’s English is fine and it’s edited by me, an Englishman. He’s also been really helpful in assisting those who’ve followed along – something he’s not obliged to do – all in all not bad for a free resource, eh?

      • http://labs.dariux.com Dario Gutierrez
        Author

        Thanks for all Ian, I totally agree with you, maybe “BOB” anonymous can tell us how design and develop flash applications.

    • André

      Hey, i think, if you dont like iphone, maybe you should use another one instead of complaining, i´ve tryed the tutorial and it works fine for me, and also it is very usefull.

      Dario:
      Thanks for sharing this usefull knowlege and congratulations for your patience in front of this kind of comment, keep doiing your great work.

      • http://labs.dariux.com Dario Gutierrez
        Author

        Sure André, and thanks again guys, I really appreciate the full support.

  • Aaron

    Hey Dario,

    I addressed your correction in my reply comment. I’m not quite sure why, but I followed your tutorial and wrote the code to the letter, and it returned all those errors.

  • Pingback: Create Your Own Adobe AIR Application with Flash | Lively Flash Tuts

  • Pingback: Create Your Own Adobe AIR Application with Flash – Flashtuts+ | Adobe Tutorials

  • http://blog.dthreestudios.com Hector

    Very nice tutorial very nice and clear

  • http://blog.dthreestudios.com Hector

    Very nice work you have done with this tutorial, I hope you can keep presenting more tutorials

  • Pingback: Creating AIR Application with Flash « blog.dthreestudios.com

  • http://labs.dariux.com Dario Gutierrez
    Author

    Thanks everyone for your comments.

  • lalo

    great tutorial Dario….
    Bob seems to be the amateur one.

  • http://flickr.com/photos/elussich Esteban

    Thanks for your tutorial, Dario; it is concise and clear enough.

    However, a question struck on me: what’s the really big difference between an AIR application and a stand-alone Flash movie?

    And I came to only two answers: 1) archive size, 2) look and feel.
    What else?

    Thank you!
    Cheers,

    • http://labs.dariux.com Dario Gutierrez
      Author

      Esteban, Here are some differences:
      – The player can permit you view your movie while you develop in your flash app
      – If you install an Air application in your desktop you will need the player for view it.
      – In other words are complements

  • http://beginlearn.blogspot.com adobe basics

    it very nice

  • jamie

    Great tutorial, very easy to understand. The comment about the bad english was unfair.

    I tried to use this on my flash website to get my twitter updates there but couldn’t get it to work. Am I right in thinking the code up to step 14 would work fine on a website.

    I get the error:
    Error #1085: The element type “META” must be terminated by the matching end-tag “”.
    at website_fla::tweetTxt_mc_17/xmlLoaded()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

    I have checked it a couple of time and I don’t think there are any typo’s I’ve made, but it could be the case however!

    • jamie

      Sorry scrap that last comment, I’ve got it to work now. Only displays one message so far but I’m working on that.

      Excellent Tut

      Jamie

      • jamie

        It works fine on my computer but when playing over the internet the twitter updates don’t load.
        I read somewhere that this maybe a flash issue with trying to get data from a different site.

        To fix this would just need the xml loaded by a php file first before going to the swf.

        Maybe someone with a bit more php knowledge then me could comment on this

        jame

      • jamie

        Managed to get this to work on my website now.
        All I did was change line 1 of the actionscript to:
        var twitterURL:String =”http://www.mywebsite.com/proxy.php?url=http://twitter.com/statuses/user_timeline/19291040.rss”;

        Obviously change mywebsite to the actual website address. Add a php file named proxy.php to your website with the following code:

        and hey presto everything works ok!

        The php proxy file was not my own but from this site with thanks:
        http://actionscripter.co.uk/blog/?page_id=262&cpage=1

  • http://www.ricardofilipe.com Ricardo

    I was waiting for one like this, thank you very much! By the way, how would one implement a refresh button? What would I need to call again in order to load the xml again?

    Good work. Thank you very much.

    • sv3e

      yes im lookin out for a refresh button too
      help us darius

  • http://blazed-designs.com/ Jonathan Yarbor

    I love the tutorial, BUT the only thing i dont’ like about this tutorial is that you are getting the rss feed from the user’s page. With the Twitter API you can get anyone’s tweets and even set how many.

    EXAMPLE:
    http://twitter.com/statuses/user_timeline.rss?screen_name=blazedd

    would get the last 20 tweets from @blazedd which is the same result as getting the rss feed from your account.

    • http://labs.dariux.com Dario Gutierrez
      Author

      Thanks Jonathan, I use the my rss account as a reference but you can change it and use other like rss news. The points in this tutorial is how to convert it in AIR application.

      I really appreciate your comment and thanks again!

      Best Regards!

  • Andrea

    Dario,
    great job!!!! It was my first time here and I really enjoyed your tutorial.
    I hope to see new tuts coming from you!
    best regards,
    Andrea

  • Sk1ppeR

    I didn’t really understand how to make the Always on top button so i had to make few changes. 1st i get the Oval tool and created a figure on top of the iPhone’s button. Converted it to a button gave it instance name and set it’s alpha to 0. 2nd as for everything else i added event listener MouseEvent.CLICK and when the user clicks the image i change the alpha to 0.5 which is 50% and that is a win win situation :) . The if statement is the same. When the user clicks again the alpha goes to 0 again

  • http://www.windyapps.com Windyapps

    My compliments and thanks for your tutorial. I thought it was very easy to understand. Just to let you know, if you or anyone wants to publish an Air app feel free to upload it on my site. I currently have 270 and it’s growing all the time.

    • http://labs.dariux.com Dario Gutierrez
      Author

      Thanks for the invitation Windyapps!

  • http://labs.dariux.com Dario Gutierrez
    Author

    Hi everyone, here’s a I want to share a basic article for flash Air:

    http://help.adobe.com/en_US/AIR/1.5/devappsflash/WS5b3ccc516d4fbf351e63e3d118676a27cc-7ffb.html

  • Pingback: links for 2009-09-01 « Mandarine

  • Alex Trevino

    I’ve attempted to follow the tutorial and haven’t had any luck thus far. I am not sure if I have compromised the settings at all, or what exactly the issue is. But apparently there is something wrong with my ‘upArrow’. Here is the issue I am getting in the debug session.

    Attemping to launch and connect to Player using URL C:/Users/WEBMAS~1/AppData/Local/Temp/Untitled-2-app.xml
    [SWF] Untitled-2.swf – 3227823 bytes after decompression
    TypeError: Error #1010: A term is undefined and has no properties.
    at Untitled_fla::MainTimeline/frame1()[Untitled_fla.MainTimeline::frame1:32]

    and the yellow arrow is pointing at the line:
    twitterApp.btUp.addEventListener(MouseEvent.CLICK, scrollUp);

    Any assistance would be greatly appreciated in resolving this issue.

  • roshen joy

    hey this is great tutorial n im benifeted. Thanks. Awesome work

  • Pingback: Best of Tuts+ in August

  • Pingback: Best of Tuts+ in August : Webby Tutos – Online tutorials – FREE!

  • Pingback: Devils Backyard » Blog Archive » Best of Tuts+ in August

  • Pingback: Best of Tuts+ in August - Programming Blog

  • Pingback: Best of Tuts+ in August | KolayOnline

  • sv3e

    a couple of questions:
    1. how do i make older tweets show? the xml only lists recent tweets..

    2. whats the code for a refresh button

    3. i also want to make a about me button that would make the updates disappear and be replaced by info about me

    and lastly
    4. i also want an email button… what kinda code do i use for that?

  • Michael

    How do you make the application Pop an ALERT when there is a new feed?

  • Pingback: uberVU - social comments

  • http://andrepazleal.blogspot.com Andre Paz Leal

    Awesome begginger tut, very good explanation….!!!

  • http://adeel.info Adeel

    Hi Dario,

    This is great that you are sharing this tutorial. While implementing, I am getting this error:

    Your help will be highly appreciated:

    TypeError: Error #1010: A term is undefined and has no properties.
    at twitterApp_fla::MainTimeline/xmlLoaded()[twitterApp_fla.MainTimeline::frame1:22]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

    • http://adeel.info Adeel

      Never mind, it is working now.

      Thanks Anyway.

      • Shrijani

        Hello,

        I have encountered the same problem, could you please explain how to get rid of this error? (#1010)

  • Yatender Saini

    Great Work, Thanks for making so simple understandable, one can easily get.

  • http://genericwpthemes.com WP Themes

    I over recall the dispatch is suitable and on the point. This enter extraordinarily helped me in my assignment.

  • Pingback: Professional web designers and web 2.0 experts » Blog Archive » 35 Adobe AIR Tutorials for Web Developers

  • Pingback: 35 Adobe AIR Tutorials for Web Developers | Programming Blog

  • Pingback: Ahmed Rabieh | Rich Internet Application Adventurer » Blog Archive » 35 Adobe AIR Tutorials for Web Developer