<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-969280370088192828</id><updated>2012-01-30T13:19:15.087Z</updated><category term='Flex'/><category term='SWFObject'/><category term='Flash Player'/><category term='AIR'/><title type='text'>Just Flex</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://olegflex.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://olegflex.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Oleg Filipchuk</name><uri>http://www.blogger.com/profile/05442503082101348313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_Ia1uGRVQkaI/SDlmaivJfII/AAAAAAAAAFE/r9zhmBWHaPE/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-969280370088192828.post-4781224843981680004</id><published>2008-07-15T21:12:00.006+01:00</published><updated>2008-07-15T22:21:13.775+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash Player'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Debug version of Flash Player 10 - 10.0.0.525</title><content type='html'>It was quite inconvenient to test all Flash Player 10's goodies with non debug version of player. I remember that every version of Flex SDK has installers of FP in it. So I've looked at SVN repository of opensource.adobe.com and, oh my... it is here!!!&lt;br /&gt;Here it is the link: &lt;a href="http://opensource.adobe.com/svn/opensource/flex/sdk/tags/trunk_4.0.0.2432/in/player/10/"&gt;Flash Player 10.0.0.525&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I haven't tested versions for Windows and Linux, but Mac version didn't seem to install at the beginning and just told me that I've already had newer version installed. I took a look at installer script and there was a wrong version specified.&lt;br /&gt;&lt;br /&gt;So here is guide how to install it on Mac OS X:&lt;br /&gt;1. Download &lt;a href="http://opensource.adobe.com/svn/opensource/flex/sdk/tags/trunk_4.0.0.2432/in/player/10/mac/Install%20Flash%20Player%2010%20UB.dmg"&gt;Install Flash Player 10 UB.dmg&lt;/a&gt; file&lt;br /&gt;2. Mount it and copy Adobe Flash Player.pkg to Desktop&lt;br /&gt;3. Right click on Adobe Flash Player.pkg and select Show Package Contents from contexts menu&lt;br /&gt;4. Locate Info.plist and open it with any suitable editor ( TextMate for example)&lt;br /&gt;5. Replace "&lt;string&gt;9.0.45&lt;/string&gt;" on line 14 to "&lt;string&gt;10.0.0.525&lt;/string&gt;"&lt;br /&gt;6. Replace "&lt;integer&gt;9&lt;/integer&gt;" on line 16 to "&lt;integer&gt;10&lt;/integer&gt;"&lt;br /&gt;7. Save it, you will be prompted to overwrite it - confirm it.&lt;br /&gt;8. That's all folks - double click on Adobe Flash Player.pkg and install it ( Do not forget to uninstall any previous version of Flash player before installing)&lt;br /&gt;&lt;br /&gt;Have fun,&lt;br /&gt;Oleg&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/969280370088192828-4781224843981680004?l=olegflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olegflex.blogspot.com/feeds/4781224843981680004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=969280370088192828&amp;postID=4781224843981680004' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/4781224843981680004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/4781224843981680004'/><link rel='alternate' type='text/html' href='http://olegflex.blogspot.com/2008/07/debug-version-of-flash-player-10.html' title='Debug version of Flash Player 10 - 10.0.0.525'/><author><name>Oleg Filipchuk</name><uri>http://www.blogger.com/profile/05442503082101348313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_Ia1uGRVQkaI/SDlmaivJfII/AAAAAAAAAFE/r9zhmBWHaPE/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-969280370088192828.post-746492655113003148</id><published>2008-06-10T12:37:00.012+01:00</published><updated>2009-05-04T17:21:08.062+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SWFObject'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Swfobject 2.1 Flex template. HistoryManager and DeepLinking supported as well</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;[UPDATE] I've updated template to SWFObject 2.1&lt;br /&gt;And there is a bit smarter way to register flexApplication with BrowserHistory:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="margin: 0pt auto; width: 95%;"&gt;   &lt;div class="javascript"  style="border: 1px solid rgb(208, 208, 208); color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);font-family:monospace;"&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; flashvars &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;name1&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"hello"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br /&gt;name2&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"world"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br /&gt;name3&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"foobar"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; params &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;menu&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"false"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; attributes &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;id&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${application}"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${application}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;swfobject.&lt;span style="color: rgb(0, 102, 0);"&gt;embedSWF&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${swf}.swf"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${application}_div"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${width}"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${height}"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"${version_major}"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 204);"&gt;"expressInstall.swf"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; flashvars&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; params&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; attributes &lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;swfobject.&lt;span style="color: rgb(0, 102, 0);"&gt;addLoadEvent&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;loadEventHandler&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;function&lt;/span&gt; loadEventHandler&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;BrowserHistory.&lt;span style="color: rgb(0, 102, 0);"&gt;flexApplication&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; swfobject.&lt;span style="color: rgb(0, 102, 0);"&gt;getObjectById&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 204);"&gt;"${application}"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I have been using Geoff Stearns'  SWFObject for a long time. I think it will be useful to share my index.template.html that tuned for using with SWFObject &lt;s&gt;2&lt;/s&gt; 2.1. I was inspired with Ted Patrick's &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.onflex.org/ted/2007/08/fxwidget-flex-swf-swfobject-custom-html.php"&gt;FXWidget&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; project that uses SWFObject 1.5 for embedding flex content to html page. So now it supports HistoryManager and DeepLinking.&lt;br /&gt;&lt;s&gt;I've made few little changes in history.js to let content embed with SWFObject work with HistoryManager and Deeplinking - I've replaced 'embed' with 'object' at lines 115 and 131 due to the fact that &lt;/s&gt;&lt;/span&gt;&lt;s&gt;&lt;a href="http://code.google.com/p/swfobject/wiki/documentation" style="font-family: trebuchet ms;" id="STEP_1:_Embed_both_Flash_content_and_alternative_content_using_s"&gt;SWFObject's base markup uses the nested-objects method&lt;/a&gt;&lt;/s&gt;&lt;span style="font-family:trebuchet ms;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.projectroom.tv/docs/SWFObjectFlexTemplate_2.1.zip"&gt;Project Archive [updated - 07-07-2008] ( broken link has been fixed)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Have fun with it!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Cheers!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/969280370088192828-746492655113003148?l=olegflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olegflex.blogspot.com/feeds/746492655113003148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=969280370088192828&amp;postID=746492655113003148' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/746492655113003148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/746492655113003148'/><link rel='alternate' type='text/html' href='http://olegflex.blogspot.com/2008/06/swfobject-2-flex-template.html' title='Swfobject 2.1 Flex template. HistoryManager and DeepLinking supported as well'/><author><name>Oleg Filipchuk</name><uri>http://www.blogger.com/profile/05442503082101348313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_Ia1uGRVQkaI/SDlmaivJfII/AAAAAAAAAFE/r9zhmBWHaPE/S220/me.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-969280370088192828.post-1066901367114820189</id><published>2008-05-25T17:27:00.009+01:00</published><updated>2008-06-10T13:22:05.448+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Air update manager</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;    I had to implement update mechanism into one of my Air applications. &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;After searching in Flex help and googling the only reasonable solution I've found was one from &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://blog.everythingflex.com/air-central/everythingflexair1swc/updatemanager/"&gt;Rich Tretola (everythingflex.com)&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;. It is really easy to use library but with that simplicity I missed some freedom while using it:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;no events - main application that uses Rich's UpdateManager doesn't know if update required or not, if UpdateManager started downloading update etc...&lt;/li&gt;&lt;li&gt;notifying user about update file downloading progress&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:trebuchet ms;"&gt;So I've decided to write my own UpdateManager and there is the result:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: trebuchet ms;"&gt;&lt;li&gt;&lt;a href="http://projectroom.cloud17.com/resources/download/AirUpdateManager.zip"&gt;Source&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://projectroom.cloud17.com/resources/download/AirUpdateManager.swc"&gt;SWC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://projectroom.cloud17.com/resources/download/GetLatestVersion.xml"&gt;Sample XML&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:trebuchet ms;"&gt;The API is quite simple&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: trebuchet ms;"&gt;&lt;li&gt;Constructor has 3 arguments&lt;/li&gt;&lt;ol&gt;&lt;li&gt;_versionXmlUrl: String&lt;/li&gt;&lt;li&gt;autoUpdate: Boolean = true ( optional)&lt;/li&gt;&lt;li&gt;autoCheck: Boolean = false (optional)&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Public methods:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;checkForUpdate (): void&lt;br /&gt;&lt;/li&gt;&lt;li&gt;update (): void&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Events:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;public static const EVENT_UPDATE_AVAILABLE: String;&lt;/li&gt;&lt;li&gt;public static const EVENT_UPDATE_DOWNLOAD_STARTED: String;&lt;/li&gt;&lt;li&gt;public static const EVENT_UPDATE_DOWNLOAD_COMPLETE: String;&lt;/li&gt;&lt;li&gt;public static const EVENT_UPDATE_DOWNLOAD_PROGRESS: String;&lt;/li&gt;&lt;li&gt;public static const EVENT_UPDATE_NOT_REQUIRED: String;&lt;/li&gt;&lt;li&gt;public static const EVENT_UPDATE_FAULT: String;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Read only properties:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;get currentVersionString (): String&lt;/li&gt;&lt;li&gt;get newVersionString (): String&lt;/li&gt;&lt;li&gt;get updateType (): String - critical, major, minor&lt;/li&gt;&lt;li&gt;get updateMessage (): String&lt;/li&gt;&lt;li&gt;get bytesLoaded (): int&lt;/li&gt;&lt;li&gt;get bytesTotal (): int&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Simple (silent update) example:&lt;br /&gt;&lt;pre   style="padding: 0pt 0pt 20px; width: 500px; overflow-x: auto; overflow-y: hidden;font-family:courier new;font-size:12px;"&gt;&amp;lt;mx:WindowedApplication xmlns:mx="&lt;span style="color:magenta;"&gt;http://www.adobe.com/2006/mxml&lt;/span&gt;"&lt;br /&gt;layout="&lt;span style="color:magenta;"&gt;absolute&lt;/span&gt;"&lt;br /&gt;creationComplete="&lt;span style="color:magenta;"&gt;doInit ()&lt;/span&gt;"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;mx:Script&amp;gt;&lt;br /&gt;&amp;lt;![CDATA[&lt;br /&gt;&lt;span style="color:blue;"&gt;import&lt;/span&gt; com.cloud17.air.managers.UpdateManager;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;var&lt;/span&gt; um: UpdateManager;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; doInit(): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      um = &lt;span style="color:blue;"&gt;new&lt;/span&gt; UpdateManager ( "&lt;span style="color:magenta;"&gt;http://mysite.com/air/getlatestversion.xml&lt;/span&gt;", &lt;span style="color:blue;"&gt;true&lt;/span&gt;, &lt;span style="color:blue;"&gt;true&lt;/span&gt; );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_FAULT, &lt;span style="color:olive;"&gt;start&lt;/span&gt; );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_NOT_REQUIRED, &lt;span style="color:olive;"&gt;start&lt;/span&gt; );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; &lt;span style="color:olive;"&gt;start&lt;/span&gt; ( evt: Event = &lt;span style="color:blue;"&gt;null&lt;/span&gt; ): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      &lt;span style="color:green;"&gt;//main app logic&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;]]&amp;gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;mx:WindowedApplication&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Complex example:&lt;br /&gt;&lt;pre   style="padding: 0pt 0pt 20px; width: 500px; overflow-x: auto; overflow-y: hidden;font-family:courier new;font-size:12px;"&gt;&amp;lt;mx:WindowedApplication xmlns:mx="&lt;span style="color:magenta;"&gt;http://www.adobe.com/2006/mxml&lt;/span&gt;"&lt;br /&gt;layout="&lt;span style="color:magenta;"&gt;absolute&lt;/span&gt;"&lt;br /&gt;creationComplete="&lt;span style="color:magenta;"&gt;doInit ()&lt;/span&gt;"/&amp;gt;&lt;br /&gt;&amp;lt;mx:Script&amp;gt;&lt;br /&gt;&amp;lt;![CDATA[&lt;br /&gt;&lt;span style="color:blue;"&gt;import&lt;/span&gt; com.cloud17.air.managers.UpdateManager;&lt;br /&gt;&lt;span style="color:blue;"&gt;import&lt;/span&gt; com.justversus.controls.ProgressWindow;&lt;br /&gt;&lt;span style="color:blue;"&gt;import&lt;/span&gt; com.justversus.utils.Prompt;&lt;br /&gt;&lt;span style="color:blue;"&gt;import&lt;/span&gt; mx.managers.PopUpManager;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;var&lt;/span&gt; um: UpdateManager;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;var&lt;/span&gt; progressWindow: ProgressWindow;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; doInit(): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      um = &lt;span style="color:blue;"&gt;new&lt;/span&gt; UpdateManager ( "&lt;span style="color:magenta;"&gt;http://mysite.com/air/getlatestversion.xml&lt;/span&gt;", &lt;span style="color:blue;"&gt;false&lt;/span&gt;, &lt;span style="color:blue;"&gt;true&lt;/span&gt; );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_AVAILABLE, updateAvailableHandler );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_DOWNLOAD_STARTED, updateDownloadStartedHandler );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_DOWNLOAD_PROGRESS, updateDownloadProgressHandler );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_DOWNLOAD_COMPLETE, updateDownloadCompleHandler );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_FAULT, &lt;span style="color:olive;"&gt;start&lt;/span&gt; );&lt;br /&gt;      um.&lt;span style="color:olive;"&gt;addEventListener&lt;/span&gt; ( UpdateManager.EVENT_UPDATE_NOT_REQUIRED, &lt;span style="color:olive;"&gt;start&lt;/span&gt; );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; updateAvailableHandler ( evt: Event ): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      Prompt.&lt;span style="color:olive;"&gt;show&lt;/span&gt;( "&lt;span style="color:magenta;"&gt;You have installed &lt;/span&gt;" + um.currentVersionString + "&lt;span style="color:magenta;"&gt; version of application. \n&lt;/span&gt;" +&lt;br /&gt;      "&lt;span style="color:magenta;"&gt;Would you like to update your application to &lt;/span&gt;" + um.newVersionString + "&lt;span style="color:magenta;"&gt;?\n\n&lt;/span&gt;" + um.updateMessage,&lt;br /&gt;      "&lt;span style="color:magenta;"&gt;New version available -- &lt;/span&gt;" + um.newVersionString, doUpdate );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; doUpdate(): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      um.update();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; updateDownloadStartedHandler ( evt: Event ): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      progressWindow = PopUpManager.createPopUp ( &lt;span style="color:olive;"&gt;this&lt;/span&gt;, ProgressWindow, &lt;span style="color:blue;"&gt;true&lt;/span&gt; ) as ProgressWindow;&lt;br /&gt;      progressWindow.title = "&lt;span style="color:magenta;"&gt;Updating application...&lt;/span&gt;";&lt;br /&gt;      PopUpManager.centerPopUp( progressWindow );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; updateDownloadCompleHandler ( evt: Event ): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      PopUpManager.removePopUp( progressWindow );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; updateDownloadProgressHandler ( evt: Event ): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      progressWindow.setProgress ( um.bytesLoaded, um.bytesTotal );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;function&lt;/span&gt; &lt;span style="color:olive;"&gt;start&lt;/span&gt;( event: Event = &lt;span style="color:blue;"&gt;null&lt;/span&gt;): &lt;span style="color:blue;"&gt;void&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;      &lt;span style="color:green;"&gt;//do some application logic&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;]]&amp;gt;&lt;br /&gt;&amp;lt;/mx:Script&amp;gt;&lt;br /&gt;&amp;lt;mx:WindowedApplication&amp;gt;&lt;/pre&gt;&lt;br /&gt;Feel free to use it...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;    &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/969280370088192828-1066901367114820189?l=olegflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olegflex.blogspot.com/feeds/1066901367114820189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=969280370088192828&amp;postID=1066901367114820189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/1066901367114820189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/969280370088192828/posts/default/1066901367114820189'/><link rel='alternate' type='text/html' href='http://olegflex.blogspot.com/2008/05/air-update-manager.html' title='Air update manager'/><author><name>Oleg Filipchuk</name><uri>http://www.blogger.com/profile/05442503082101348313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_Ia1uGRVQkaI/SDlmaivJfII/AAAAAAAAAFE/r9zhmBWHaPE/S220/me.jpg'/></author><thr:total>0</thr:total></entry></feed>
