<?xml version='1.0' encoding='windows-1252'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-5403941</atom:id><lastBuildDate>Tue, 02 Mar 2010 19:20:55 +0000</lastBuildDate><title>Ted On Flash</title><description>Ted on Flash is a blog dedicated to the Flash Platform and all related technologies, Flash, Flex, and AIR. Go Flash Go!</description><link>http://onflash.org/ted/index.php</link><managingEditor>noreply@blogger.com (Ted Patrick)</managingEditor><generator>Blogger</generator><openSearch:totalResults>857</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-2611601034109571324</guid><pubDate>Tue, 02 Mar 2010 17:28:00 +0000</pubDate><atom:updated>2010-03-02T09:50:33.294-08:00</atom:updated><title>Jiffiness - Flash Player 10.1 gets a new clock!</title><description>Tinic Uro of the Adobe Flash Player engineering team knows way to much about time. &lt;a href="http://www.kaourantin.net/2010/03/timing-it-right.html"&gt;Tinic posted on some internal changes to Flash Player 10.1 Beta 3&lt;/a&gt; and is the first to talk publicly about the timing model updates. These changes are very significant for Flash and Flex developers and designers as they impact how content runs cross-browser, cross-platform, and cross-device.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kaourantin.net/2010/03/timing-it-right.html"&gt;&lt;img width="400" src="http://library.duke.edu/blogs/libraryhacks/wp-content/uploads/2009/10/dali-clock-500x500.jpg"/&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Changes:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;New Timer&lt;/b&gt; - Flash Player 10.1 beta 3 introduces its own periodic timer that delivers consistent cross platform behavior and eliminates the dependency on different browser timer implementations.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Less Polling&lt;/b&gt; - The timing model change decouples the SWF frame rate from, for example, the video playback frame rate inside the SWF and eliminates having the Flash Player poll up to 120 times a second even if nothing is happening.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Throttling&lt;/b&gt; - Non-visible SWFs and SWFs on hidden tabs are throttled down to 2 frames per second.  No rendering occurs unless the SWF becomes visible again. Timers and local connections are also clocked down to 2 FPS.  Video is decoded but not rendered or displayed using idle CPU time while audio plays back at 8 FPS to preserve backwards compatibility.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Synchronized&lt;/b&gt; - Frame rates of visible SWFs, timers and local connections are limited and aligned to the player's periodic timer.  Video can play back at any frame rate, increasing video playback fidelity.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Benefits:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Significantly lower CPU utilization with non-visible SWF content&lt;/li&gt;&lt;li&gt;Extended battery life&lt;/li&gt;&lt;li&gt;Consistent, cross-platform timer behavior improves application performance consistency for developers&lt;/li&gt;&lt;li&gt;Improved audio/video synchronization and video playback fidelity&lt;/li&gt;&lt;li&gt;Backwards compatible - audio and video continue to play in hidden tabs&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It is a great change for Flash Player 10.1. Regardless of which browser or operating systems or device you use, we will see Flash content playback more consistent and performant across screens.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.adobe.com/downloads/flashplayer10.html"&gt;Flash 10.1 Beta 3 Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Jiffy_%28time%29"&gt;Jiffies via Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ted :)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-2611601034109571324?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/03/jiffiness-flash-player-gets-new-clock.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-2688959693115006471</guid><pubDate>Wed, 24 Feb 2010 04:24:00 +0000</pubDate><atom:updated>2010-02-23T20:51:07.186-08:00</atom:updated><title>Bugs Fixed in FP10.1B3</title><description>Download and Test &lt;a href="http://labs.adobe.com/downloads/flashplayer10.html"&gt;Flash Player 10.1 Beta 3&lt;/a&gt;. Special thanks to all the content owners, developers, and customers who logged bugs against Flash Player 10.1 Beta 2, you made a word of difference. Here are the bugs fixed in FP10.1B3:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Graphics&lt;/span&gt;:&lt;br /&gt;+DisplayObjects with overlapping strokes sometimes disappears when redrawn &lt;br /&gt;+[FP-3621] Removing and re-adding a Flash movie from the DOM using removeChild and&lt;br /&gt;appendChild causes display issues in Internet Explorer &lt;br /&gt;+[FP-2290] PerspectiveProjections have problems with click events &lt;br /&gt;+3D Facebook game renders incorrectly in Beta 1 and Beta 2&lt;br /&gt;(http://apps.facebook.com/dealornodeallive/) &lt;br /&gt;+'Show Redraw Regions' draws on the entire swf even though only a part of it is changing.&lt;br /&gt;+Images render blank when scaled to specific sizes see example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Networking:&lt;/span&gt;&lt;br /&gt;+The Settings dialog doesn't correctly allow Local Storage requests.&lt;br /&gt;+[FP-1050, FP-1358] Escalation - Active Directory is causing Local Shared Objects to fail when the&lt;br /&gt;information is saved on a network location.&lt;br /&gt;+Safari Only: File Reference upload test always results in a cancelled event.&lt;br /&gt;+Time stamp doesn't get properly set in the request using URLRequestHeader.&lt;br /&gt;+FileReference.download does not return an error even it doesn't have enough space to save the&lt;br /&gt;file to download. &lt;br /&gt;+[FP-1585] loaderInfo Event.COMPLETE not dispatched if wmode is "transparent" or "opaque".&lt;br /&gt;+[FP-2746] Multi-domain inter-VM LocalConnection failure&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Audio/Video:&lt;/span&gt;&lt;br /&gt;+[FP-3567] Firefox Crash/Hang when running music on Playlist.com &lt;br /&gt;+[FP-3921] Flash Player 10.1 beta 2 crashes Internet Explorer 8 in 32bit mode on Playlist.com &lt;br /&gt;+In Firefox, clicking quickly on the stop music / play music button before it has completed loading&lt;br /&gt;the music, causes a crash&lt;br /&gt;+[FP-3675] Windows energy saving does not work after viewing video in full-screen mode&lt;br /&gt;+Support for the Broadcom BCM70015 ("FLEA") hardware decoder support is not yet enabled. &lt;br /&gt;+NetStream.Buffer.Full event is not fired correctly. &lt;br /&gt;+On Broadcom graphics accelerators, NetStream.Step.Notify event doesn't fire when seeking&lt;br /&gt;backwards on video playback. &lt;br /&gt;+Video loads slowly or crashes on Internet Explorer when using Nvidia graphics card.&lt;br /&gt;+Systems with NVidia graphics processors crash on certain videos on dailymotion.com &lt;br /&gt;+Toggling between SD and HD on youtube.com causes a crash on Broadcom Graphics&lt;br /&gt;Accelerators.&lt;br /&gt;+Audio Stream stays open when playback is paused not allowing computers to be place to sleep&lt;br /&gt;+Clicking on/off HQ or HD button on some of the Youtube and CastTV.com trailer videos causes&lt;br /&gt;intermittent crash. &lt;br /&gt;+On certain graphics cards, green artifacts appear when seeking in video. &lt;br /&gt;+[FP-1399] Videos on nbc.com do not play on Linux OSes.&lt;br /&gt;+With hardware decoding, cbs.com pause/play video buttons and seeking function intermittently. &lt;br /&gt;+On Systems with XP and ATI Graphics cards, hulu.com video can hang after a seek &lt;br /&gt;+On systems with a Broadcom Graphics Accelerator, seeking on youtube.com videos can result in&lt;br /&gt;a crash. &lt;br /&gt;+On the Mac PPC, Safari crashes when streaming a video from some web pages &lt;br /&gt;+Audio sync issues when streaming FLV over RTMPE on systems with a Broadcom Graphics&lt;br /&gt;Accelerator. &lt;br /&gt;+Some videos have their first few frames dropped on systems with a Broadcom Graphics&lt;br /&gt;Accelerator. &lt;br /&gt;+Some videos crash intermittently on a Broadcom Graphcis Accelerator. &lt;br /&gt;+[FP-3081] Some videos on http://www.cbc.ca/video/ never begin playing on Linux OSes &lt;br /&gt;+Americanidol.com videos play only on mouse move in Firefox browser in Vista 64-bit OS&lt;br /&gt;+Video freezes sometimes when using multi-bit rate streaming in conjunction with hardware video&lt;br /&gt;decoding.&lt;br /&gt;+Scaling of videos (fullscreen) causes blockiness or pixilation.&lt;br /&gt;+Youtube video stalls after seek backwards.&lt;br /&gt;+Calling close after calling seek without calling play first won't actually close stream.&lt;br /&gt;+Attaching and detaching Audio while publishing with record option leads to loss of data.&lt;br /&gt;+Problem in playing only audio or only video after audio video h264 streaming in same subscriber.&lt;br /&gt;+When AAC is published from FME, setting buffer from default or 0 to something else e.g. 1 causes&lt;br /&gt;playback stop with buffer length growing.&lt;br /&gt;+Play video then stop, remove from the display list, the CPU usage is about 2.5 - 3.8% higher then&lt;br /&gt;before playing the video.&lt;br /&gt;+Live mp3 playback loses audio after 20 min or so.&lt;br /&gt;+[FP-220] Video stops playing if one right clicks in the browser, even if its in a different tab.&lt;br /&gt;+Screen dimming while playing video in fullscreen mode.&lt;br /&gt;+Audio playback worsens on Mac while switching browser tabs with certain videos.&lt;br /&gt;+[FP-178] -Video.clear fails. Clears only 1 pixel when Video.smoothing = true.&lt;br /&gt;+[FP-1936] win32 microphone deadlocks on unplug active USB microphone.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Text/Text Input:&lt;/span&gt;&lt;br /&gt;+[FP-3742, FP-3186] Characters appearing twice when typing in a text input field&lt;br /&gt;+Escaping and then unescaping 4 Japanese characters doesn't unescape the last character.&lt;br /&gt;+In multiline input text field, 'End' key does not work correctly. It moves caret to left of last character.&lt;br /&gt;+[FP-3562] In certain situations (https://www.oceaniacruises.com/ships/dining.aspx) only one text line displayed in fields with multiple lines.&lt;br /&gt;+[FP-777] Truncation occurs on fonts using advanced anti-aliasing in TextField instances with the autoSize property set to true.&lt;br /&gt;+High memory usage when using a longer string in TextLine.&lt;br /&gt;+Text with tracking applied does not align to tab stops correctly.&lt;br /&gt;+Tracking should not visible after the last character of tcy block.&lt;br /&gt;+ElementFormat.trackingLeft and ElementFormat.trackingRight are incorrectly applied to&lt;br /&gt;GraphicElement.&lt;br /&gt;+Justify all lines with "Track Right" and "Track Left" leave an empty space after and before each&lt;br /&gt;line respectively.&lt;br /&gt;+Kinsoku Can't-Begin-Line character and Can't End-Line character. settings is ignored if a&lt;br /&gt;character in front or after is tcy.&lt;br /&gt;+FTE TextLine.textWidth exceeds the specified width causing horizontal scrolling problem for&lt;br /&gt;Gumbo TextArea.&lt;br /&gt;+[FP-836, FP-838] Player needs Unicode character input: Hindi, and Maltese characters with&lt;br /&gt;accents do not show up properly.&lt;br /&gt;+[FP-40, FP-501] Cannot enter Chinese characters MS IME or even the @ symbol on a German&lt;br /&gt;keyboard in input field on Firefox when wmode is set.&lt;br /&gt;+Arial Black is not being measured correctly when used with FTE and TCAL/TLE, etc&lt;br /&gt;+[SDK-18311] Setting scrollRect or mask on a DisplayObject breaks sub-pixel font rendering.&lt;br /&gt;+Soft hyphenations don't appear in one-word text lines.&lt;br /&gt;+SWF built to use CharacterRange and new InteractiveObject methods for IME and MSAA support&lt;br /&gt;won't run on Flash Player 10.0.22.&lt;br /&gt;+[FP-1877] Can't input Japanese characters in text field if wmode "opaque" or "transparent" is set&lt;br /&gt;true except IE.&lt;br /&gt;+[FP-40] International text entry broken in Linux reports in Flash Player 9.0.48 or higher.&lt;br /&gt;+On Mac, a textInput event is fired after the users presses Command+Z. On other platforms, this&lt;br /&gt;event is suppressed.&lt;br /&gt;+TextLine using Bauhaus 93 font causes runtime exception.&lt;br /&gt;+Double byte characters can't be input in Firefox Mac.&lt;br /&gt;+TextField variable performance issue.&lt;br /&gt;+Key-in 80 2-byte Chinese characters with MS Pinyin IME 2003 , display as "?" on Windows XP&lt;br /&gt;and Vista in terms.&lt;br /&gt;+Event flash.events.IMEEvent.IME_COMPOSITION does not fire in 'test movie' in Flash&lt;br /&gt;Professional when composing Chinese, even using MS Pinyin IME 3.0.&lt;br /&gt;+Arabic vocalization diacritics Tashkil are not rendered correctly.&lt;br /&gt;+TextInput is newly broken in IE8 when running flash content in any windowless mode.&lt;br /&gt;+Pressing ALT deletes selected text from a TextInput when wmod=transparent.&lt;br /&gt;+Ideographic Space AKA Full Size Double Byte Space is changed into "@" with IE7, Flash 10 and&lt;br /&gt;WinXP.&lt;br /&gt;+Cursor and selection behavior is incorrect around control spaces. (2273650)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;General:&lt;/span&gt;&lt;br /&gt;+General stability and performance improvements&lt;br /&gt;+[FP-383] ExternalInterface.objectID is not set &lt;br /&gt;+Performance has decreased for the ByteArray and Vector objects.&lt;br /&gt;+Settings UI does not respond to clicks. Firefox Only / PPC.&lt;br /&gt;+[FP-3226] Flash objects have to be clicked once before interaction is possible using the mouse &lt;br /&gt;+Clipboard keyboard shortcuts don't function in Safari 3 and Safari 4.&lt;br /&gt;+[FP-3354] Certain games at the Atari site can cause a crash &lt;br /&gt;+[FP-3411] Performance of ByteArray and Vector classes dramatically lower than Flash Player 10.&lt;br /&gt;Runtime error 1221 is thrown on every third loaded image&lt;br /&gt;+Performance of describeType() has degraded. &lt;br /&gt;+File Reference filtering does not work properly on Mac OS. &lt;br /&gt;+[Bugzilla 539328] describeType(Interface) output changed in FP v10.1 &lt;br /&gt;+[Bugzilla 487938] On Windows, invoking a modal dialog during a JavaScript animation with SWF&lt;br /&gt;content causes Firefox to crash &lt;br /&gt;+[FP-792] Class registered with registerClassAlias is accessible through different application&lt;br /&gt;domain. &lt;br /&gt;+[FP-3238] FileReference.download defaultFileName is broken in OS X. &lt;br /&gt;+Rollover events don't work properly in Mac OS X and Firefox in certain circumstances &lt;br /&gt;+AMF serialization doesn't work correctly with multiple ApplicationDomains &lt;br /&gt;+jibjab.com videos control toolbar does not respond properly to the mouse moves in IE browser &lt;br /&gt;+On Mac OS X 10.5 and 10.6, In the Google Chrome or Opera browsers, right-clicking to brings up&lt;br /&gt;the context menu at the bottom left of the desktop. &lt;br /&gt;+[Bugzilla 534857] Flash Player Beta 10.1 disables Crash-reporter (Breakpad) in Firefox on&lt;br /&gt;Windows &lt;br /&gt;+ActionScript object creation in 10.1 is more than 50% slower than it was in 10.0 &lt;br /&gt;+[FP-3526] On the Mac OS with Firefox, Flash Player playback pauses when bookmarks opened &lt;br /&gt;+[FP-3530] Safari crashes or quit suddenly on the Mac when switching to next scenario during&lt;br /&gt;play of http://www.scarygirl.com/world.php &lt;br /&gt;+[FP-3568] Some games fail to load (http://www.greatdaygames.com/games/alus-revenge.aspx)&lt;br /&gt;in Internet Explorer. &lt;br /&gt;+[FP-2118] FileReference.upload does not support files 0-bytes in size. &lt;br /&gt;+Cannot do paste with keyboard shortcut (CMD+v) in Flash Player applications on Safari/Mac.&lt;br /&gt;+Clipboard keyboard shortcuts don't function in Safari3 and 4.&lt;br /&gt;+Flash Player now offers scroll-wheel support in browsers that support Cocoa events, such as&lt;br /&gt;Apple's Safari 4 browser. &lt;br /&gt;+flash.trace.Trace doesn't return packages for methods in the classes which are internal.&lt;br /&gt;+rollOut not received when a hovered descendant is removed from the display list.&lt;br /&gt;+[FP-2563] Saving a SharedObject larger than 10MB always returns "SharedObject.Flush.Failed"&lt;br /&gt;from Local Storage increase dialog.&lt;br /&gt;+General webcam/microphone functionality not working.&lt;br /&gt;+[FP-922] mouseX, mouseY value changes on external click in Mac plug-in.&lt;br /&gt;+[FP-2009] CPU Utilization in an idle app is more than expected on Mac.&lt;br /&gt;+Objects with negative origins fall out of the tab order.&lt;br /&gt;+[FP-1034, FP-809] Flash Player can not save over files initially saved with a browser IE 7 on a clean Vista Home machine or Ultimate Vista with UAC enabled.&lt;br /&gt;+Stage-placed SimpleButton references not defined in time for frame scripts&lt;br /&gt;+[FP-1633] Full screen message is not localized in Czech.&lt;br /&gt;+[FP-2630] Capabilities.os doesn't return specific Windows 7 string, but just a generic "Windows"&lt;br /&gt;string instead.&lt;br /&gt;+[FP-2428] Buttons are null when navigating from frame to frame if a button contains a MovieClip.&lt;br /&gt;+Pressing a key causes a Sprite to be pinned in memory.&lt;br /&gt;+Page Down and Page Up keys do not trigger key events when testing with Safari.&lt;br /&gt;+[FP-702] PrintJob page size incorrectly returns values that include non printable margins.&lt;br /&gt;+[FP-1025] Player 10 detection failure after reboot, Vista.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Browser&lt;/span&gt;&lt;br /&gt;+[FP-3765] Full screen mode doesn't work in Chrome &lt;br /&gt;+Firefox crashes when visiting Blackberry site while spoofing as IE&lt;br /&gt;+In Chrome, Flash Player crash @ memcpy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-2688959693115006471?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/02/bugs-fixed-in-fp101b3.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-5892895306895195690</guid><pubDate>Mon, 22 Feb 2010 17:06:00 +0000</pubDate><atom:updated>2010-02-22T16:28:35.249-08:00</atom:updated><title>Flash - An open interactive medium</title><description>Flash is an open interactive medium. In creative hands it can be used to build &lt;a href="http://www.nytimes.com/" target="anew"&gt;ad&lt;/a&gt;v&lt;a href="http://www.npr.org/" target="anew"&gt;er&lt;/a&gt;ti&lt;a href="http://www.yahoo.com/" target="anew"&gt;sing&lt;/a&gt;, &lt;a href="http://www.scribd.com/" target="anew"&gt;doc&lt;/a&gt;u&lt;a href="http://www.adobe.com/acom/buzzword/" target="anew"&gt;ments&lt;/a&gt;, &lt;a href="http://www.youtube.com/" target="anew"&gt;vi&lt;/a&gt;d&lt;a href="http://www.brightcove.com/en/" target="anew"&gt;eo&lt;/a&gt; &lt;a href="http://www.shutterisland.com/#/home" target="anew"&gt;ex&lt;/a&gt;p&lt;a href="http://www.porsche.com/microsite/boxster-spyder/usa.aspx" target="anew"&gt;eri&lt;/a&gt;e&lt;a href="http://www.hulu.com/" target="anew"&gt;nces&lt;/a&gt;, &lt;a href="http://www.miniclip.com/" target="anew"&gt;ga&lt;/a&gt;m&lt;a href="http://www.ea.com/free/monopoly" target="anew"&gt;es&lt;/a&gt;, &lt;a href="http://www.sliderocket.com/" target="anew"&gt;ap&lt;/a&gt;p&lt;a href="http://www.lovelycharts.com/" target="anew"&gt;li&lt;/a&gt;c&lt;a href="http://www.picnik.com/" target="anew"&gt;at&lt;/a&gt;i&lt;a href="https://acrobat.com/" target="anew"&gt;ons&lt;/a&gt;, &lt;a href="http://www.apple.com/pro/profiles/joshuadavis/" target="anew"&gt;a&lt;/a&gt;r&lt;a href="http://www.flickr.com/photos/natzke/" target="anew"&gt;t&lt;/a&gt;, &lt;a href="http://lab.andre-michelle.com/tonematrix" target="anew"&gt;mu&lt;/a&gt;s&lt;a href="http://www.noteflight.com" target="anew"&gt;ic&lt;/a&gt;, &lt;a href="http://www-01.ibm.com/software/integration/visualization/elixir/about/?S_CMP=rnav" target="anew"&gt;graph&lt;/a&gt;s&lt;a href="http://www.fusioncharts.com/" target="anew"&gt; &amp; &lt;/a&gt;c&lt;a href="http://www.google.com/finance?q=adbe" target="anew"&gt;harts&lt;/a&gt;, &lt;a href="http://www.adobe.com/mena/products/acrobatconnectpro/" target="anew"&gt;mee&lt;/a&gt;ti&lt;a href="http://www.RosettaStone.com/" target="anew"&gt;ngs&lt;/a&gt;, &lt;a href="http://aviary.com/" target="anew"&gt;gra&lt;/a&gt;p&lt;a href="https://www.photoshop.com/" target="anew"&gt;hics&lt;/a&gt;, &lt;a href="http://www.ogcopen.com/" target="anew"&gt;3&lt;/a&gt;d &lt;a href="http://www.hanazuki.com/cases/" target="anew"&gt;con&lt;/a&gt;t&lt;a href="http://www.theprofiler.be/" target="anew"&gt;ent&lt;/a&gt;, a&lt;a href="http://www.addictinggames.com/index.html" target="anew"&gt;nd&lt;/a&gt; m&lt;a href="http://refreshingapps.com/showcase" target="anew"&gt;uch&lt;/a&gt; &lt;a href="http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.home&amp;marketplaceid=1" target="anew"&gt;much&lt;/a&gt; &lt;a href="http://sendables.jibjab.com/originals/hes_barack_obama" target="anew"&gt;much&lt;/a&gt; &lt;a href="http://www.homestarrunner.com" target="anew"&gt;much&lt;/a&gt; more. Flash was a success long before video arrived on the web and given open ended capability of the medium it will be around for a very very long time.&lt;br /&gt;&lt;br /&gt;&lt;img width="400" src="http://onflash.org/images/Fp.png"/&gt;&lt;br /&gt;&lt;br /&gt;One problem with Flash is that as an open interactive medium, designers and developers can do anything with it and often do. There are no SWF approval police or terms of use for Flash content, it is the wild west of interactivity. This freedom has allowed Flash to create simultaneously both the best and worst user experiences on the web. Many users have a negative experience with web advertising but that doesn't make de-facto medium, Flash, bad. Many developers push Flash to its technical limits and fail to optimize their content in regards to CPU and memory consumption. Developers are allowed to openly succeed or fail with Flash without restriction. Platforms should never limit creativity, they should enable it openly and this strikes at the core as to why Flash has succeeded for so long. Flash is truly an open interactive medium where anyone can succeed or fail.&lt;br /&gt;&lt;br /&gt;Flash will never stop innovating both inside and outside of Adobe. The Flash ecosystem is one of the greatest in terms of creativity and technical ingenuity. Internally we are constantly shocked by what developers are trying to accomplish with the medium. Internally Adobe is focused on building a quality high performance platform to support the new and emerging use cases of Flash. Moving forward we will see amazing capabilities added to Flash that rival the last 10 years of innovation on Flash Platform.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onflash.org/images/FlashTimeline.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;We are days from seeing the &lt;a href="http://labs.adobe.com/downloads/flashplayer10.html" target="_new"&gt;full scope of the Flash Player 10.1&lt;/a&gt; and there are lots of improvement in quality and performance we have never talked about. For the next few weeks I am going to be highlighting key improvements within &lt;a href="http://labs.adobe.com/downloads/flashplayer10.html" target="_new"&gt;Flash Player 10.1&lt;/a&gt; with the help of the Flash Player team. There is a ton of amazing engineering to talk about and I am very excited about &lt;a href="http://labs.adobe.com/downloads/flashplayer10.html" target="_new"&gt;Flash Player 10.1 Beta 3&lt;/a&gt; arriving this week.&lt;br /&gt;&lt;br /&gt;Flash is an amazing medium and is truly limited only by the design creativity and developer quality applied to it. &lt;br /&gt;&lt;br /&gt;Flash Forward!&lt;br /&gt;&lt;br /&gt;Ted :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE: "open" links related to Flash&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/devnet/swf/"&gt;SWF Specification&lt;/a&gt; - Make your own player to run SWF.&lt;br /&gt;&lt;a href="http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf"&gt;AMF3 Specification&lt;/a&gt; - Exchange serialized data with Flash Player.&lt;br /&gt;&lt;a href="http://www.mozilla.org/projects/tamarin/"&gt;Tamarin Virtual Machine&lt;/a&gt; - The vm in Flash Player is open source here.&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=eNzrn8-JFSE"&gt;Open at Adobe Video&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-5892895306895195690?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/02/flash-open-interactive-medium.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>17</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-5923911894547866906</guid><pubDate>Mon, 15 Feb 2010 05:01:00 +0000</pubDate><atom:updated>2010-02-14T21:01:37.437-08:00</atom:updated><title>A breath of fresh AIR: AIR on Android</title><description>Tonight Adobe announced AIR for Android at Mobile World Congress. The new AIR runtime allows any Flash/Flex developer to create standalone applications on Android. The runtime is very fast and is highly optimized for low cpu and low memory conditions on mobile devices. Given the explosion of Android devices, developers will be able to widely deploy AIR apps in late 2010. &lt;br /&gt;&lt;br /&gt;Here are some screen shots of the apps running at the Adobe booth at Mobile World Congress. I would highly recommend trying some of these applications out at the show.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onflash.org/air-on-android/DESKTOP.png"/&gt;&lt;br /&gt;&lt;img width="280" src="http://onflash.org/air-on-android/ALCHEMIST_0.png"/&gt; &lt;img width="280" src="http://onflash.org/air-on-android/ALCHEMIST_1.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/CHROMA_0.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/CHROMA_1.png"/&gt;&lt;br /&gt;&lt;img width="280" src="http://onflash.org/air-on-android/FICKLE_0.png"/&gt; &lt;img width="280" src="http://onflash.org/air-on-android/FICKLE_1.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/CONNECT_0.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/CONNECT_1.png"/&gt;&lt;br /&gt;&lt;img width="280" src="http://onflash.org/air-on-android/GRIDSHOCK_0.png"/&gt; &lt;img width="280" src="http://onflash.org/air-on-android/GRIDSHOCK_1.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/MAVERIE_0.png"/&gt;&lt;br /&gt;&lt;img width="600" src="http://onflash.org/air-on-android/MAVERIE_1.png"/&gt;&lt;br /&gt;&lt;img width="280" src="http://onflash.org/air-on-android/SOUTHPARK_0.png"/&gt; &lt;img width="280" src="http://onflash.org/air-on-android/SOUTHPARK_1.png"/&gt;&lt;br /&gt;&lt;img width="280" src="http://onflash.org/air-on-android/SUDOKU_0.png"/&gt; &lt;img width="280" src="http://onflash.org/air-on-android/SUDOKU_1.png"/&gt;&lt;br /&gt;&lt;br /&gt;Special thanks to the Zephyr team and the external developers who build applications in partnership with Adobe for Mobile World Congress. You rock! :)&lt;br /&gt;&lt;br /&gt;It is going to be a very exciting year ahead.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-5923911894547866906?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/02/breath-of-fresh-air-air-on-android.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-806355910508913845</guid><pubDate>Mon, 08 Feb 2010 03:53:00 +0000</pubDate><atom:updated>2010-02-07T22:15:19.974-08:00</atom:updated><title>Improve Flash 10.1 and AIR 2.0</title><description>Adobe engineering is headed into the final stretch of development of &lt;a href="http://labs.adobe.com/technologies/flashplayer10/"&gt;Flash Player 10.1&lt;/a&gt; and &lt;a href="http://labs.adobe.com/technologies/air2/"&gt;AIR 2.0&lt;/a&gt;. We need community help to identify quality issues with your deployed and in-development content. While both &lt;a href="http://labs.adobe.com/technologies/flashplayer10/"&gt;Flash&lt;/a&gt; and &lt;a href="http://labs.adobe.com/technologies/air2/"&gt;AIR&lt;/a&gt; are tested extensively internally, every beta we receive valuable feedback from the Flash community and beyond.&lt;br /&gt;&lt;br /&gt;Here is how you can get involved:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Download and install &lt;a href="http://labs.adobe.com/technologies/flashplayer10/"&gt;Flash Player 10.1 Beta 2&lt;/a&gt; and &lt;a href="http://labs.adobe.com/technologies/air2/"&gt;AIR 2.0 Beta 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Test the new beta runtimes with your content and applications.&lt;br /&gt;&lt;br /&gt;Log bugs at &lt;a href="https://bugs.adobe.com/flashplayer/"&gt;bugs.adobe.com&lt;/a&gt;. Engineering teams use your bug reports to reproduce errors and improve the runtime quality.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As far as beta timelines, beta 3 releases are a few weeks away and release candidates are expected within 60 days. Your involvement and assistance during this critical development window is really important and will only improve Flash Player and AIR quality.&lt;br /&gt;&lt;br /&gt;Please also help spread the word about the beta process via Twitter:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Improve Flash 10.1 &amp; AIR 2.0 via Beta 2 http://bit.ly/cty7Nm READ &amp; RT #Flash #AIR #QUALITY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Special thanks&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-806355910508913845?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/02/improve-flash-101-and-air-20.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-612511702796322765</guid><pubDate>Fri, 15 Jan 2010 23:23:00 +0000</pubDate><atom:updated>2010-01-15T15:35:44.058-08:00</atom:updated><title>Simple Method Closure in AS3</title><description>Method closures allow you to bind variables into the scope of an anonymous function. Watch the value of local variable 'i' in the example below in the returned anonymous function. It is a bit twisted but results show the scope of local variable 'i' is bound in the returned function from newCounter.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pastie.org/780300"&gt;CODE AT PASTIE&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package&lt;br /&gt;{&lt;br /&gt; import flash.display.Sprite;&lt;br /&gt; &lt;br /&gt; public class ClosureAS3 extends Sprite&lt;br /&gt; {&lt;br /&gt;  public function ClosureAS3()&lt;br /&gt;  {&lt;br /&gt;   init() //giv-em-the-jit :)&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function init():void&lt;br /&gt;  {&lt;br /&gt;   //create a counter&lt;br /&gt;   var counter1:Function = newCounter();&lt;br /&gt;   trace( counter1() ); //1&lt;br /&gt;   trace( counter1() ); //2&lt;br /&gt;   trace( counter1() ); //3&lt;br /&gt;   var counter2:Function = newCounter();&lt;br /&gt;   trace( counter2() ); //1&lt;br /&gt;   trace( counter2() ); //2&lt;br /&gt;   trace( counter1() ); //4 --&gt; scope of i is still with counter1...cool! :)&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public function newCounter():Function&lt;br /&gt;  {&lt;br /&gt;   var i:int = 0; //variable i gets bound into returned anonymous function via method Closure&lt;br /&gt;   return function():int&lt;br /&gt;   {&lt;br /&gt;    //i is available to the scope of the anonymous function&lt;br /&gt;    i=i+1;&lt;br /&gt;    return i;&lt;br /&gt;   }&lt;br /&gt;  }  &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Scary, functional AS3. :)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-612511702796322765?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/01/simple-method-closure-in-as3.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-3843887631362310053</guid><pubDate>Thu, 14 Jan 2010 20:23:00 +0000</pubDate><atom:updated>2010-01-14T15:47:38.437-08:00</atom:updated><title>Making Su (sudoku)</title><description>Mid November I wanted to develop a Sudoku puzzle for AIR/Flash Player/iPhone called &lt;a href="http://diverted.org/Su/"&gt;Su&lt;/a&gt;. The geeky hidden goal of the project was to keep the game very simple relying on as few event listeners as possible and having as few display objects in the player at any one time. At first I went about exploring how to take a simple game data model (Array) and render out the state of the game using many display objects. In a 9x9 sudoku puzzle that meant 81+ displayobjects at a minimium. Not that player can't manage this number of items but keeping track of all the items got to be fairly tedius and memory intensive. This is when I switched over to using bitmaps and drawing bitmaps dynamically at runtime...aka blitting.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diverted.org/Su/"&gt;&lt;img src='http://diverted.org/images/su1.png'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Blitting at its most basic is when you take one bitmap and draw it into another image potentially many times. AS3 has a great bitmap API that makes it easy to draw graphics. In moving to a rendered game board, 81+ displayobject were removed from the display list and better would not require any textfields, movieclips, sprites either. With 3 events listening at the stage I could create a 100% rendered game. Here is some simple rendering code I used to get started:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;gameBoard.bitmapData.draw( m1.bitmapData , new Matrix( 1 , 0 , 0 , 1 , 100 , 100 ) );&lt;br /&gt;//draw the bitmap "m1" into gameboard at x:100,y:100&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is that simple to render bitmaps into each other. If you want to remove image data simply do this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;gameBoard.bitmapData.fillRect( gameBoard.bitmapData.rect , 0 );&lt;br /&gt;//fill gameBoard with empty data erasing the image.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;gameBoard.bitmapData.fillRect( new Rectangle( 100, 100, 100 , 100 ) , 0 );&lt;br /&gt;// cut a 100x100 hole at x:100,y:100 in gameBoard&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once I started bliting, I also noticed that my memory consumption was a flat line. Memory never went up or down as I was simply reusing the memory that had been allocated initially to the bitmaps. When you write one image to another, memory consumption does not change, you simply overwrite the data in place with new data.&lt;br /&gt;&lt;br /&gt;The next step was organizing the data model to handle history and undo. Using a simple pattern I would change the gamedata array and keep an array history of all game changes, then rendering the single change. When you press undo, I would change the data model and render the deltas. The result was that only the initial game board rendering was expensive (I use expensive relative to rendering the whole gameboard every change).&lt;br /&gt;&lt;br /&gt;The great part about this architecture was when I took the game to mobile. On iPhone and other phones (Flash 10.1 on Mobile) the game runs very very fast with no latency. Sudoku is not a fast paced game but it is played over a long period of time so I needed to be careful with resources consumed.&lt;br /&gt;&lt;br /&gt;The other element I rather enjoyed was creating a VirtualHitArea class. Typically I use displayobjects to determine hitarea (buttons/movieclips/sprites) but you can virtualize this in stage event listeners. The VirtualHitArea class provides a way to add hitareas that conditionally react if clicked (MouseEvents) or touched (TouchEvents). The result is virtual buttons that add no displayobjects to the overall application but filter stage events to see what is hit when. One side effect of this was the ability to cancel all events in the capture phase. This truncates the DOM level 2 events bubbling across the displaylist and sort of hotwires it. Because events do not need to cascade across the displaylist, they are processed quickly in the VirtualHitArea class at the stage and then canceled.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diverted.org/Su/"&gt;&lt;img src='http://diverted.org/images/su4.png'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Su was a fun expieriment in minimalistic programming using Flash Player/AIR and I learned a ton writing it.&lt;br /&gt;&lt;br /&gt;cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-3843887631362310053?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2010/01/making-su-sudoku.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-8259194995164973800</guid><pubDate>Thu, 24 Dec 2009 00:36:00 +0000</pubDate><atom:updated>2009-12-23T18:19:25.534-08:00</atom:updated><title>Sizing AIR NativeWindow to Stage</title><description>There is a big difference between nativeWindow size and the stage size within an AIR application. Depending on what type of window you are displaying and what OS you are using, the actual size of the stage may vary wildly. This post will cover how to determine the system chrome metrics and resize the nativeWindow in both Flex 4 and AS3. Here is how it works:&lt;br /&gt;&lt;br /&gt;My application is a &lt;a href="http://diverted.org/Su/"&gt;Sudoku puzzle app (320x480)&lt;/a&gt; and I wanted it to have chrome matching the native OS of the end user. Given I know the stage size, I needed to dynamically measure the system chrome metrics and resize the surrounding nativeWindow to provide a stage properly sized to 320x480. My app was written using AS3 but the same problem holds true with apps in Flex or Flash Pro and I have included source for both Flex and AS3 to help you get started.&lt;br /&gt;&lt;br /&gt;When applications in AIR initiate, they have a logical process they go through.&lt;br /&gt;&lt;br /&gt;1. NativeWindow is built from application.xml running ADL&lt;br /&gt;2. Application constructor is called in SWF&lt;br /&gt;3. During the first frame render, this.stage and this.stage.nativeWindow are available and sized correctly.&lt;br /&gt;&lt;br /&gt;To be able to set this.stage.nativeWindow, it needs to be called after the first frame render or else metrics will not be fully set. To make sure, I test for the presence of this.stage and this.stage.nativeWindow in an enterFrame event when using AS3 and in  Flex I use the applicationComplete event and everything is ready to go.&lt;br /&gt;&lt;br /&gt;ASSUMPTION: We will assume that the width and height properties set in the application.xml are the desired stage size for the app (not nativeWindow size but stage size) and then adjust the nativeWindow larger depending on chome boundaries.&lt;br /&gt;&lt;br /&gt;HINT:&lt;br /&gt;AS3: nativeWindow is a property of this.stage&lt;br /&gt;Flex: WindowedApplication has a nativeWindow property but also includes this.stage.nativeWindow.  (they are the same object)&lt;br /&gt;&lt;br /&gt;To determine the chrome width and height I used this calculation:&lt;br /&gt;&lt;br /&gt;var chromeWidth:int = this.stage.nativeWindow.width - this.stage.stageWidth;&lt;br /&gt;var chromeHeight:int = this.stage.nativeWindow.height - this.stage.stageHeight;&lt;br /&gt;&lt;br /&gt;At the start of your application this.stage.width and this.stage.height will be 0!!! If you use this.stage.stageWidth and this.stage.stageHeight it will save you some level of frustration. In Flash the stage.width and stage.height are determined by content (no content they equal 0) but when empty, stageWidth and stageHeight will give you proper values.  &lt;br /&gt;&lt;br /&gt;Then I add chromeWidth and chromeHeight onto the nativeWindow size to make stageWidth and stageHeight match your content to the pixel.&lt;br /&gt;&lt;br /&gt;this.stage.nativeWindow.width += chromeWidth;&lt;br /&gt;this.stage.nativeWindow.height += chromeHeight;&lt;br /&gt;&lt;br /&gt;To make this seamless and invisible to the end user, you make the nativeWindow invisible at start-up (the default) using application.xml and making it visible once you set the correct size of the nativeWindow width and height. This way the user does not see the window resize.&lt;br /&gt;&lt;br /&gt;In Flex using WindowedApplication the window is made visible when the ApplicationComplete event occurs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/download/NativeWindowSize.fxp"&gt;EXAMPLE DOWNLOAD&lt;/a&gt;&lt;br /&gt;In this Flex 4 project there are 2 apps, one is AS3 and one is Flex. Simple select one or the other to run it. Both provide a stage that is 250x250. To change the size, simple change the width/height values within the application.xml file. &lt;br /&gt;&lt;br /&gt;Go make some great apps with a properly sized nativeWindow!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-8259194995164973800?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/12/sizing-air-nativewindow-to-stage.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-4259374302725771907</guid><pubDate>Tue, 08 Dec 2009 17:53:00 +0000</pubDate><atom:updated>2009-12-08T10:01:04.210-08:00</atom:updated><title>CoolIris Express Launches - Put a 3D wall anywhere using Flash Player</title><description>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 11px; white-space: pre; "&gt;CoolIris launched their &lt;a href="http://www.cooliris.com/express/"&gt;Express&lt;/a&gt; online editing tool for making 3D walls. The app generates a Flash 3D wall with photos or videos. Here is one I made in a few seconds for MAX 2009:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.11NXC/bT*xJmx*PTEyNjAyOTUyMDY5NzEmcHQ9MTI2MDI5NTIxMDAxMSZwPTkwMjA1MSZkPSZnPTEmb2Y9MA==.gif" /&gt;&lt;div style="width: 600px; height: 400px; overflow:hidden; position:relative;"&gt;&lt;object id="ci_17173_o" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="400"&gt;&lt;param name="movie" value="http://apps.cooliris.com/embed/cooliris.swf"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="bgColor" value="#121212" /&gt;&lt;param name="flashvars" value="feed=api%3A%2F%2Fwww.flickr.com%2F%3Ftags%3DADOBEMAX&amp;numrows=5&amp;backgroundcolor=%23FFFFFF&amp;glowcolor=%23000000&amp;style=light" /&gt;&lt;param name="wmode" value="opaque" /&gt;&lt;embed id="ci_17173_e" type="application/x-shockwave-flash" src="http://apps.cooliris.com/embed/cooliris.swf" width="600" height="400" allowFullScreen="true" allowScriptAccess="always" bgColor="#121212" flashvars="feed=api%3A%2F%2Fwww.flickr.com%2F%3Ftags%3DADOBEMAX&amp;numrows=5&amp;backgroundcolor=%23FFFFFF&amp;glowcolor=%23000000&amp;style=light" wmode="opaque"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-4259374302725771907?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/12/cooliris-express-launches-put-3d-wall.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-7956581576494670366</guid><pubDate>Thu, 19 Nov 2009 17:24:00 +0000</pubDate><atom:updated>2009-11-19T14:01:36.854-08:00</atom:updated><title>Demos &amp; MAX at Adobe - A new role</title><description>Today I start a new role at Adobe focused on keynote demos and our annual conference, Adobe MAX. As a developer, I love building software and as an evangelist, I especially love highlighting the great work the community creates. Flash, as a platform, stands apart in that every day new experiences are released that shape the future of software. Over the past 5 years, Flash has moved far beyond its animation roots and now powers applications, video, ads, and gaming making both the public and private web a better experience. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My new role is focused on highlighting the work of our community, showcasing amazing uses of the Flash Platform inside and outside of the firewall, and building demos around new technology. We need to showcase great applications to move the ecosystem forward and when we have new technology to show we need to build demos in partnership with our ecosystem.  In the weeks leading up to MAX 2009, I worked in partnership with Cynergy Systems, MLB.com, EA (Pogo.com) to deliver great demos for MAX keynotes. I am looking forward to expanding this work out to Adobe's ISVs, customers, and partners to both showcase amazing work and to highlight the road ahead.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am also looking forward to another year of Adobe MAX. Although October 24-27, 2010 looks far away, work is already underway to make the event better. Having worked on MAX for 4 years in a row, things have come a very long way from the MAXUP in the hallway in Las Vegas and I know we can do better still. I look forward to working with everyone again making MAX 2010, the best one yet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is an exciting time for Flash and 2010 is looking to be one of the best years for the Flash Platform and the surrounding ecosystem. Feel free to contact me in regards to new applications and demos at &lt;a href="mailto:ted@adobe.com"&gt;ted@adobe.com&lt;/a&gt;. I look forward to working with you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ted :)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-7956581576494670366?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/11/demos-max-at-adobe-new-role.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-1606908123473048574</guid><pubDate>Tue, 27 Oct 2009 16:03:00 +0000</pubDate><atom:updated>2009-10-27T08:20:29.255-08:00</atom:updated><title>Learning Fx4 from Scratch - Update 2</title><description>Yesterday I completed 4 new pages with 10 Flex 4 samples in &lt;a href="http://onflex.org/learn/fx4/"&gt;Learn Flex 4 from Scratch&lt;/a&gt;. Now is really the time to start learning Flex 4 given the stability of &lt;a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_flashbuilder4"&gt;Flex 4 Beta 2&lt;/a&gt; and the volume of &lt;a href="http://tv.adobe.com/show/max-2009-develop/"&gt;great session content available post Adobe MAX&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;&lt;img src="http://onflex.org/images/Fx4.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;Here are the new sections in &lt;a href="http://onflex.org/learn/fx4/"&gt;Learn Flex 4 from Scratch&lt;/a&gt;:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://onflex.org/learn/fx4/index.php?page=Element+Creation"&gt;Element Creation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://onflex.org/learn/fx4/index.php?page=addElement%2C+addElementAt%2C+removeElement%2C+removeElementAt"&gt;addElement, addElementAt, removeElement, removeElementAt&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://onflex.org/learn/fx4/index.php?page=Element+Properties"&gt;Element Properties&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://onflex.org/learn/fx4/index.php?page=States"&gt;States&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have I told you that I really love &lt;a href="http://onflex.org/learn/fx4/index.php?page=States"&gt;States&lt;/a&gt;! They are my favorite feature in Flex 4 (thus far) and really make building applications much easier. The syntax change for States really makes them easy to read and use in your application. Prior to Flex 4 you placed all state property changes in &lt;mx:state&gt; tag so they were remote from the components they affected. In Flex 4, state code is added directly to the components themselves with dot notation. &lt;/mx:state&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I could go on and on about &lt;a href="http://onflex.org/learn/fx4/index.php?page=States"&gt;States&lt;/a&gt; but best to let you ready it over at &lt;a href="http://onflex.org/learn/fx4/"&gt;Learn Flex 4 from Scratch&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also I would love some feedback. If you feel I have missed something, I have enabled comments on the &lt;a href="http://onflex.org/learn/fx4/"&gt;Learn Flex 4 from Scratch&lt;/a&gt; site. So feel free to leave feedback.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ted :)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-1606908123473048574?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><enclosure type='' url='http://onflex.org/learn/fx4/' length='0'/><link>http://onflash.org/ted/2009/10/learning-fx4-from-scratch-update-2.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-4196751777963920398</guid><pubDate>Tue, 20 Oct 2009 12:45:00 +0000</pubDate><atom:updated>2009-10-22T22:29:48.183-07:00</atom:updated><title>Learning Fx4 from Scratch - Part 1 - Application</title><description>Welcome to "Learning Fx4 from Scratch", this weekly series of blog posts will attempt to cover Fx4 beginning to end from a developer perspective.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;Learning Fx4 from Scratch has MOVED!&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; "&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;&lt;span class="Apple-style-span" style="font-size: x-large; "&gt;Learning Fx4 from Scratch has MOVED!&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;&lt;span class="Apple-style-span" style="font-size: x-large; "&gt;Learning Fx4 from Scratch has MOVED!&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large; "&gt;&lt;a href="http://onflex.org/learn/fx4/"&gt;Learning Fx4 from Scratch has MOVED!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Cheers!&lt;br /&gt;&lt;br /&gt;ted ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-4196751777963920398?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/10/learning-fx4-from-scratch-part-1.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-7841766110680039591</guid><pubDate>Mon, 05 Oct 2009 21:10:00 +0000</pubDate><atom:updated>2009-10-05T14:11:39.178-07:00</atom:updated><title>SOURCE to 4 Flash iPhone Apps</title><description>Here is the source for 4 iPhone demo applications I made during the internal development of "Notus", aka iPhone export. The projects are ASProject out of Flex Builder. The first thing you will notice is that there is nothing special here, just simple AS3 apps the are cross-compiled to IPA ( iPhone ARM Binaries ). &lt;br /&gt;&lt;br /&gt;&lt;img src="http://onflash.org/iphone/max.png"/&gt;&lt;br /&gt;&lt;br /&gt;From these projects you can get started today building apps.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/iphone/Circles.zip"&gt;Circles - A simple 2.5D app&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/iphone/CirclesGLES.zip"&gt;Circles GLES - Same app hardware accelerated using GLES&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/iphone/FlashWrap.zip"&gt;FlashWrap - Bubble wrap with random sounds! (In the Adobe Booth!)&lt;/a&gt; &lt;br /&gt; &lt;br /&gt;&lt;a href="http://onflash.org/iphone/FingerPaint.zip"&gt;FingerPaint - A simple drawing app (In the Adobe Booth!)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Special thanks from Matt Snow on the UI design in FingerPaint. Also special thanks to the folks at XD for assets.&lt;br /&gt;&lt;br /&gt;Have fun, share source, and rock the iPhone!&lt;br /&gt;&lt;br /&gt;And yes this is why I haven't been blogging for 3 months!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-7841766110680039591?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/10/source-to-4-flash-iphone-apps.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>21</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-5777552015773649246</guid><pubDate>Wed, 23 Sep 2009 16:39:00 +0000</pubDate><atom:updated>2009-09-24T14:00:36.260-07:00</atom:updated><title>ADOBE MAX 2009: SESSIONS NOT TO MISS</title><description>I put this list together of sessions that I would not miss at &lt;a href="http://max.adobe.com"&gt;Adobe MAX&lt;/a&gt;. There are so many great sessions to choose from but this is my biased list:&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Flash Player Internals by Lee Thomason&lt;/span&gt;&lt;br /&gt;Tour the inner workings of Flash Player through the eyes of one of its architects and see what happens after you've written your code. You'll learn about the rendering model, text engine, new acceleration features, and how Flash Player has evolved for mobile. By knowing what is really going on with Flash Player, you'll leave with a better intuitive sense of how to build and optimize your applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Once you know how player works, you can develop far faster and accomplish the seemingly impossible. Know how player works is what this session is all about.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What's New in Flex 4 by Ely Greenfield&lt;/span&gt;&lt;br /&gt;Come hear why folks are excited about the upcoming release of Flex 4. This session will explore the new component architecture and how skinning, effects, and layouts have been enhanced as a result. Also see how you can leverage new Flash Player 10 capabilities, additional features in Flex 4 that can make you a more productive developer, and much more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Ely is a great speaker and architect. It is rare to get a glimpse inside a new release of Flex. Flex 4 has changed massively since MAX 2008 and Ely will highlight a years work on the new framework.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.fitc.ca/events/about/?event=100"&gt;FiTC Unconference by Shawn Pucknell&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Shawn Pucknell has but together an all star cast for the FiTC unconference. The speaker pool is so good that it will have a long lasting effect on MAX.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Designing Applications for Desktops and Mobile Devices with Adobe AIR by Arno Gourdol&lt;/span&gt;&lt;br /&gt;See how Adobe AIR has made it possible for web developers to build cross-platform desktop applications. Learn how the platform is expanding to enable the delivery of applications not just for desktop operating systems, but also for mobile devices.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Miss this session at your peril.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Multi-touch and the Flash Platform by Daniel Dura &amp; Matt Bugbee&lt;/span&gt;&lt;br /&gt;Discover what you can do with multi-touch and the Flash Platform. Learn how you can build your own multi-touch table for a fraction of the cost of commercial products. We'll also discuss an approach to building multi-touch applications for the Flash Platform on these tables that will open up an entire new world of possibilities not only for experimentation, but for your customers and clients as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: flash.events.TouchEvent duhhhh!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What's Coming in Adobe AIR 2 by Christian Cantrell&lt;/span&gt;&lt;br /&gt;Adobe AIR allows developers to build rich Internet applications (RIAs) that run outside the browser on multiple operating systems. In this session, you will learn about the planned capabilities of the upcoming release of Adobe AIR 2.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: AIR 2 is feature rich and hits many features developers have been asking for. Plus Christian can code like few can and his session will get knee deep into the code on all the new features.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Building Mobile Applications with Adobe AIR by Aditya Bansod&lt;/span&gt;&lt;br /&gt;Learn how Adobe is working to bring Adobe AIR development out of the desktop and onto a mobile phone near you. We will cover how the AIR SDK and platform will evolve to add capabilities to help developers mobile enable, test, and publish their content. Mobile computing and mobile applications provide publishers and developers with exciting opportunities to get their products into the pockets of millions of people.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Yup, AIR and Mobile in the same sentence. Miss at your peril!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;A Deep Dive into Flex 4 Lists and Layouts by Glenn Ruehle&lt;/span&gt;&lt;br /&gt;Explore the power of the List component in Flex 4, and dig deep into the layout mechanism that allows you to create new and interesting components displaying data. It is recommended that you have an understanding of the Spark architecture before attending this session.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Few components are as powerful as List in Flex 4. Glenn is List master and I would not miss this session.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BYOL: Down and Dirty Tricks in Photoshop by Corey Barker&lt;/span&gt;&lt;br /&gt;Discover the many design possibilities with Photoshop CS4 Extended by exploring the latest design trends from movies, television, and magazines. This hands-on session will cover using features such as masks, generating selections, and creating jaw-dropping effects the same ones used by leading photographers and designers today.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: I suck at Photoshop. Learn from a master hands on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hands-On ORM with ColdFusion 9 by Rupesh Kumar &amp; Adam Lehman&lt;/span&gt;&lt;br /&gt;One of the most significant additions to ColdFusion is the new object-relational mapping (ORM) framework built in to ColdFusion 9. Powered by the industry-leading Hibernate framework, ColdFusion 9 takes rapid application development to the next level. In this session, you'll learn the basics of ColdFusion ORM so you can build applications without having to write a single line of SQL. From there you'll move on to advanced topics like how to leverage complex joins, implement transaction management, and effectively use interceptors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: CF9 ORM kicks ass. It makes writing db apps on cf simple and bomb-proof. Learn from the team that made this happen.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Things Every Flash Developer Should Know by Grant Skinner&lt;/span&gt;&lt;br /&gt;Join Grant Skinner as he shares critical knowledge on a variety of aspects of ActionScript development, drawing from over a decade of experience working with Flash. This session will focus on techniques, workflows, philosophies, and mental models that are important to understand but difficult to learn from a book or website. While this session is targeted at beginner and intermediate attendees, experienced developers may find a lot of value in comparing approaches and learning new techniques.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Please it's Grant. You will learn a ton.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;MAX Day 1 &amp; Day 2 Keynotes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: You would be a fool to miss this years keynotes!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SNEAKS!!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thoughts: Sneaks is going to be so good. The team has been working around the clock getting demos ready. The force is strong with our team and It should be great fun. We also have a top secret special guest joining us to help sort the strong ones! Miss sneaks and you will have to answer to me! :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;So that is my biased list of sessions not to miss at &lt;a href="http://max.adobe.com"&gt;MAX&lt;/a&gt;. I am pretty sure most of these will be at capacity so make sure to add them to your scheduler!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://max.adobe.com"&gt;And if you are not registered, get it in gear and sign up today at MAX.ADOBE.COM!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See you at MAX!&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-5777552015773649246?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/09/adobe-max-2009-sessions-not-to-miss.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-566964961115949454</guid><pubDate>Mon, 21 Sep 2009 18:20:00 +0000</pubDate><atom:updated>2009-09-21T12:01:45.599-07:00</atom:updated><title>Learning Flex 4 ... from scratch!</title><description>Given I was away from Flex for a year working on Community programs, I have found myself needing to learn Flex 4 from scratch! ( I know it is hard to believe but I need to learn Flex 4 too! ). Last week and weekend I took my first steps into Flex 4 and although it is similar to Flex 2 &amp; 3 there is a ton of new things to learn. The new Spark framework, new components, layout behavior, graphics tags, styling, and states syntax can be overwhelming but they add a ton of great features to Flex. Where to start?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onflex.org/images/Fx4.png" width="500"/&gt;&lt;br /&gt;&lt;br /&gt;Instead of learning Flex 4 privately I am planning to post the things I learn and examples as I learn Flex 4. I am sure I will make mistakes and stumble through learning Flex 4 but I am in the same boat as many developers and learning the new features is really important. So here is the plan:&lt;br /&gt;&lt;br /&gt;1. Finish MAX! There is still lots to do and I am focused. No Flex 4 till after MAX!&lt;br /&gt;&lt;br /&gt;2. Starting Oct 19 the week I return I will post one demo a week focused on a particular feature(s) or component &lt;span style="font-weight:bold;"&gt;( I added a recurring calendar item to blog each Tuesday like clockwork! No missing a week! )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Until I run out of features most likely post release!&lt;br /&gt;&lt;br /&gt;It is really refreshing learning new stuff and I am very excited to be diving into Flex 4 as the release heads toward the next beta. I am looking forward to learning and sharing what I find.&lt;br /&gt;&lt;br /&gt;Go Flex 4! Woot!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;br /&gt;&lt;br /&gt;ps. yes the big flex logo is back!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-566964961115949454?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/09/learning-flex-4-from-scratch.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-7532352916264743642</guid><pubDate>Wed, 02 Sep 2009 14:40:00 +0000</pubDate><atom:updated>2009-09-02T08:26:00.410-07:00</atom:updated><title>FlexPMD - Finding worst practices in your projects</title><description>A new project at Adobe was released yesterday as Open Source Software, &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt;. The project runs a set of extensible rules over your AS3 or Flex source to detect bad coding practices and raise awareness that these issues exist. This is especially important for team development projects where code is being edited in mass and quality practices become essential.&lt;br /&gt;&lt;br /&gt;&lt;img width="600" src="http://opensource.adobe.com/wiki/download/attachments/29852444/hudson.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;The rule set within &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; is extensible and you should customize rules to fit your project. If you want to detect undocumented methods or enforce naming conventions, feel free to write a rule for that, and better still share the rule (FlexPMD is open source). &lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-ruleset-creator.html"&gt;FlexPMD Ruleset Creator&lt;/a&gt;. It is a Flex app that lets you export a set of rules custom to your app needs.&lt;br /&gt;&lt;br /&gt;Once you have run &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; against your project, you can load the output into the &lt;a href="http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html"&gt;PMD Violations viewer&lt;/a&gt; to see all the issues.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; also supports Hudson integration so with every build tests are run automatically and the team has a scorecard of quality throughout development. Seeing projects from this point of view really changes your perspective. I know on the Adobe Professional Services team &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; has enabled teams to see deep within very large projects.&lt;br /&gt;&lt;br /&gt;My favorite feature of &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; is flagging unused code. It is so easy to create a variable or method that goes unused. Detecting these within your project is hard and deleting a method always feels like a risk unless you really know it is unused. Having a tool to flag these is great and better still it gives me the confidence to delete methods and properties with impunity. &lt;br /&gt;&lt;br /&gt;I would like to thank Xavier Agnetti and the Adobe Professional Services team for making &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; possible. Also there are a vast number of people who were involved in making this project open source within Adobe. It is really great seeing so many developers explore their projects from a quality perspective today over Twitter. I know that &lt;a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD"&gt;FlexPMD&lt;/a&gt; will have a long term impact on the quality of apps on the platform and help take things to the next level.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-7532352916264743642?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/09/flexpmd-finding-worst-practices-in-your.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>19</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-7873568107249431938</guid><pubDate>Sun, 23 Aug 2009 15:17:00 +0000</pubDate><atom:updated>2009-08-23T09:35:35.778-07:00</atom:updated><title>Usage Modeling</title><description>Whenever I write a class, I typically write a usage example prior to writing the class itself. I want to understand what the class will be like to work with, its behavior/interface in development. With OOP it is so easy to hop right into building class after class but actually seeing usage really helps me get the interface right and makes development much easier. On Thursday, before writing the class version of f.net.Load, I showed &lt;a href="http://www.dougwinnie.com/main/welcome.html"&gt;Doug Winnie&lt;/a&gt; how this might work as an example. He notices I hadn't written the classes yet and that it would be a great feature to actually generate classes from usage. hmmmm...&lt;br /&gt;&lt;br /&gt;So this idea of "Usage Modelling" has been stuck in my head for a few days. How could I write usage examples with modelling classes and generate classes the support this behavior?  Instead of UML or modelling could one use usage examples to generate classes? It wouldn't generate the logic within methods but would generate a very solid start to a set of classes. Basically writing code to generate better code.&lt;br /&gt;&lt;br /&gt;This is possible with flash.utils.Proxy where you can catch all interface interaction on a class and simply send class text to the output panel. Based on the type passed in methods or get/set behavior you can type the class properties dynamically, setting a string would type a property as a string. Here is some some "Usage Modelling" usage:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;import f.model.UsageModel;&lt;br /&gt;&lt;br /&gt;UsageModel.start();&lt;br /&gt;&lt;br /&gt;//model the events Class&lt;br /&gt;LoadEvent:* = UsageModel.create( 'f.event.LoadEvent' , flash.event.Event );&lt;br /&gt;&lt;br /&gt;//consts in caps&lt;br /&gt;LoadEvent.OPEN = 'f.events.LoadEvent.OPEN';&lt;br /&gt;LoadEvent.CLOSE = 'f.events.LoadEvent.CLOSE';&lt;br /&gt;LoadEvent.PROGRESS = 'f.events.LoadEvent.PROGRESS';&lt;br /&gt;LoadEvent.SUCCESS = 'f.events.LoadEvent.SUCCESS';&lt;br /&gt;LoadEvent.FAIL = 'f.events.LoadEvent.FAIL';&lt;br /&gt;LoadEvent.INIT = 'f.events.LoadEvent.INIT';&lt;br /&gt;&lt;br /&gt;//instance use&lt;br /&gt;var loadevent:* = new LoadEvent( LoadEvent.FAIL );&lt;br /&gt;loadevent.data = {};&lt;br /&gt;loadevent.loader = {};&lt;br /&gt;loadevent.percent = 0.75;&lt;br /&gt;loadevent.bytesLoaded = 34;&lt;br /&gt;loadevent.bytesTotal = 56;&lt;br /&gt;loadevent.bytesAvailable = 56;&lt;br /&gt;loadevent.error = 'woops';&lt;br /&gt;loadevent.status = 'status 23';&lt;br /&gt;&lt;br /&gt;//denote start of Class&lt;br /&gt;Load:* = UsageModel.create( 'f.net.Load' , flash.events.EventDispatcher );&lt;br /&gt;&lt;br /&gt;//define class data&lt;br /&gt;Load._Public = true;&lt;br /&gt;&lt;br /&gt;//static use&lt;br /&gt;Load.AMF = "f.net.Load.AMF";&lt;br /&gt;Load.amf( LoadModel.AMF , "http://onflex.org/f/Load/test.amf" , function(){} );&lt;br /&gt;&lt;br /&gt;//instance use&lt;br /&gt;var load:* = new Load();&lt;br /&gt;load.url = "http://onflex.org/f/Load/test.amf";&lt;br /&gt;load.parameters = { method:'post', data:{ a:12345 }};&lt;br /&gt;load.resultFormat = Load.AMF;&lt;br /&gt;load.addEventListener( LoadEvent.SUCCESS , loadSuccess );&lt;br /&gt;load.addEventListener( LoadEvent.PROGRESS , loadProgress );&lt;br /&gt;load.addEventListener( LoadEvent.FAIL , loadFail );&lt;br /&gt;load.addEventListener( LoadEvent.OPEN , loadFail );&lt;br /&gt;load.addEventListener( LoadEvent.CLOSE , loadFail );&lt;br /&gt;load.load();&lt;br /&gt;&lt;br /&gt;UsageModel.print();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And no I haven't written any classes yet, the irony.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-7873568107249431938?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/usage-modeling.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-780425707761196045</guid><pubDate>Sat, 22 Aug 2009 18:44:00 +0000</pubDate><atom:updated>2009-08-22T12:06:30.290-07:00</atom:updated><title>FDOT BUILD 33</title><description>This morning I uploaded build 33 of FDOT with many changes including f.net.Load instance support. The library simplifies the loading of all types of data from text to binary to swf and images. Also during this release I learned Git and posted all code to GitHub. Also included is a simple app that tests all funtionality and provides some great examples to help you get started. You can find the test apps in f.tests.*, enjoy. Here are the changes:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://bit.ly/1089Tj'&gt;Download at GitHub&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  - Added instance support f.new.Load! new Load();&lt;br /&gt;  - Added simplified event types FAIL,PROGRESS,SUCCESS,OPEN,CLOSE,INIT (Thanks Ben Garney!)&lt;br /&gt;  - Added f.event.LoadEvent for typed events&lt;br /&gt;  - Added XMLDocument support in f.Load.xmldoc&lt;br /&gt;  - Added loadResult constants to Load&lt;br /&gt;  - Moved loadError constants to LoadError&lt;br /&gt;  - Renamed f.Load.xml to f.Load.e4x&lt;br /&gt;  - Added FDOT_Tests to run all tests&lt;br /&gt;  - Added f.tests to hold all test examples for instance and static use&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next in f.net.Load adding caching, queueing in build (34). Then adding more types, CSV, YAML, AMF, Serialized. (35) &lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Ted ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-780425707761196045?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/fdot-build-33.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-2764323505518261486</guid><pubDate>Fri, 21 Aug 2009 16:19:00 +0000</pubDate><atom:updated>2009-08-21T09:21:05.855-07:00</atom:updated><title>Adobe MAX Widget - Embed it on your blog now.</title><description>&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNTA4NzE1ODgxNDMmcHQ9MTI1MDg3MTU5NDM4OSZwPTc3NDM3MSZkPW1heDA5d2lkZ2V*Jmc9MiZvPWE4NzMwNmUxNGI3NDRiYWE5NzM5MTNhMWVhNDA5ZmZkJm9mPTA=.gif" /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="MaxWidget" width="400" height="400" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"&gt; &lt;param name="movie" value="http://max.adobe.com/widget/test/MaxWidget.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt; &lt;embed src="http://max.adobe.com/widget/MaxWidget.swf" quality="high" bgcolor="#869ca7" width="400" height="400" name="MaxWidget" align="middle" play="true" loop="false" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" FlashVars="crtr=1&amp;gig_lt=1250871588143&amp;gig_pt=1250871594389&amp;gig_g=2"&gt; &lt;/embed&gt; &lt;param name="FlashVars" value="crtr=1&amp;gig_lt=1250871588143&amp;gig_pt=1250871594389&amp;gig_g=2" /&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-2764323505518261486?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/adobe-max-widget-embed-it-on-your-blog.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-761514439106591487</guid><pubDate>Wed, 19 Aug 2009 22:34:00 +0000</pubDate><atom:updated>2009-08-19T16:21:06.295-07:00</atom:updated><title>FDOT - Making hard things easier.</title><description>Today I posted build 32 for public download of Project FDOT( f.* ). FDOT is a collection of ActionScript 3 classes that make hard things easier. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/f/FDOT_BUILD_032.zip"&gt;DOWNLOAD FDOT_BUILD_32&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first release includes 3 classes:&lt;br /&gt;&lt;br /&gt;f.net.Load - Load text to binary with one method call and one callback.&lt;br /&gt;f.net.Message - Simple callback messaging for classes.&lt;br /&gt;f.data.ObjectStore - Simple object database for storing anything.&lt;br /&gt;(Includes an awesome JSON lib by Darron Schall via as3corelib )&lt;br /&gt;&lt;br /&gt;The first thing that you will notice in FDOT is a sharp departure from OOP and addEventListener in preference for simpler method calls and the use of callbacks. I have long felt that addEventListener is overkill and with the addition of method closures, callbacks are a very underrated technique. Loading external data in Flash Player used to be drop dead easy, like no think easy. Today it isn't, it typically requires you to subscribe to 5 events create 5 methods all typed to catch different events and even then knowing what to do when things happen leaves many frustated. Why was this so easy before? Why do we need to do all this work just to load data or swf files?&lt;br /&gt;&lt;br /&gt;The thing is that having great low level networking classes is great but we need to build simpler code upon these. That is the intent behind f.net.Load. Simplify the loading of all types of data into Flash Player. Make it clean, orthogonal, and easy to use. Here are some samples:&lt;br /&gt;&lt;br /&gt;//note that all Load methods have the exact interface!&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.text( url:String , callback:Function , params:Object=null );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//text&lt;br /&gt;//load text via post using this.load method as callback&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.text( 'test.txt' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//json&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.json( 'test.json' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//xml&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.xml( 'test.xml' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;see a trend yet?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//querystring&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.querystring( 'test.qs' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//stream&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.stream( 'test.png' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//image&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.image( 'test.png' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//swf&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.swf( 'test.swf' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//binary&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Load.binary( 'test.png' , load , { method:'post', data:{ a:1 } } );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The best part is that you need only one method to handle all callbacks. Here is how it works. Simply define a method with a single Object as its parameter, your done. Based on the 'type' property within the object passed in the callback you get different data. Some callbacks are for Load.PROGRESS, Load.OPEN, Load.HTTPSTATUS and you can use these constants to filter like so:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public function load( event:Object ):void&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if( event.type == Load.COMPLETE ){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trace( ' &lt; loadMovie COMPLETE: ' + event.data );   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else if( event.type == Load.PROGRESS ){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trace( ' &lt; loadMovie PROGRESS: ' + event.percent ); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When Load.COMPLETE is passed, you get event.data, and when Load.PROGRESS, you get event.percent, event.bytesLoaded, etc within the passed object. I have been thinking about making a single callback Event type to make this easier still but that is for a future version.&lt;br /&gt;&lt;br /&gt;In the build there are samples of every feature of the FDOT library. I am working to add in ASDOC comments and get the initial documentation generated too along with some late breaking additions of Load.amf, Load.csv, and Load.yaml, pending massive disruptions. Also planning to expand the features within the parameters argument to support PRAGMA headers, Caching support via ObjectStore, and a server side proxy to allow for full REST support ( I might need some CF/PHP/JAVA help there).&lt;br /&gt;&lt;br /&gt;I would ask that if you find any bugs, email me at ted@adobe.com. Plans are underfoot to move this under GITHUB later today but some networking is holding me back, ugggh.&lt;br /&gt;&lt;br /&gt;The goal here is to make hard stuff simpler so you can spend your time making awesome complex stuff. Loading has been a huge barrier for Flash Player since ActionScript 3 arrived and I would hope this helps a bit. Long story short simplicity and ease of use are driving all API decisions on FDOT, and if you see a simpler path, I am all ears.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflash.org/f/FDOT_BUILD_032.zip"&gt;DOWNLOAD FDOT_BUILD_32&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It has been a blast working on FDOT and it is great to set it free as open source under a BSD License. Use it as you wish and send me feedback on what to do next.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-761514439106591487?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/fdot-making-hard-things-easier.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-9220647458624824652</guid><pubDate>Tue, 18 Aug 2009 17:32:00 +0000</pubDate><atom:updated>2009-08-18T11:13:12.552-07:00</atom:updated><title>Blog Comment Policy</title><description>My blog at onflex.org and onflash.org gets a ton of comment spam. Depending on the day I get upwards of 100 spam comments on my blog daily. I filter comments on my blog to remove the spam and publish all comments posted. As many know, I am fairly open to feedback and am very open to hearing alternative points of view even ones of violent disagreement. I thus have not and do not filter based on opinions expressed. Simple as that.&lt;br /&gt;&lt;br /&gt;The ethical line here is very important to me and to &lt;a href="http://flash.fincanon.com/archives/171"&gt;see that questioned today is disturbing&lt;/a&gt;. For the many that know me, this is something that I would never do and a line I would never cross. To be accused of wrongdoing seems amiss. &lt;strike&gt;Worse is that after publishing a comment &lt;a href="http://flash.fincanon.com/archives/171"&gt;to this blog post&lt;/a&gt;, it has not been published by the blog owner.&lt;/strike&gt;(NEW: Comment has now been published)&lt;br /&gt;&lt;br /&gt;So long story short, if you want a comment posted, post one.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-9220647458624824652?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/blog-comment-policy.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>13</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-8424916313546953532</guid><pubDate>Sat, 15 Aug 2009 15:02:00 +0000</pubDate><atom:updated>2009-08-15T09:06:15.860-07:00</atom:updated><title>Flash Platform - A Community of Sharing</title><description>Since writing &lt;a href="http://onflash.org/ted/2009/08/future-of-flash-platform.php"&gt;"The future of the Flash Platform"&lt;/a&gt; there has been a ton of new discussion on Flash and ActionScript, which is really awesome to see. One frustration expressed was that new/unknown developers feel left out of the dialog and are seemingly overlooked within the community. There is a secret to getting noticed in the Flash community and it starts with sharing code.&lt;br /&gt;&lt;br /&gt;In every single case, without exception, the thought leadership within the Flash/Flex community rests with those that share code openly. It isn't some elitist club, but rather those that share gain influence and respect with the community. When you share code you get lots in return. The quality of the software you write gets better, you learn new things from others, you begin to meet others within the community, new opportunities find you based on your contribution, and most importantly, you gain respect for your contribution. Even if your code isn't the best, mine isn't, sharing will help you improve and it will help someone learn something new.&lt;br /&gt;&lt;br /&gt;In many companies, sharing code is prohibited. Talk to your boss and ask if you can share generic examples without company specific information. Make her realize that sharing will enhance the quality of your code internally and help you become a better developer. Either that or share enough code on off hours and you will find yourself a better job. &lt;br /&gt;&lt;br /&gt;So if you want to be the next Keith Peters, Grant Skinner, Joshua Davis, or if you just want a better job or influence within the platform, share some code. It will change your career, it changed mine.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-8424916313546953532?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/flash-platform-community-of-sharing.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>17</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-1292386361289975138</guid><pubDate>Sat, 08 Aug 2009 04:43:00 +0000</pubDate><atom:updated>2009-08-07T23:12:07.116-07:00</atom:updated><title>In-App Messaging with Tubes</title><description>One issue that has always troubled me is that within class based apps communication between class instances isn't simple. I want a simple system, where you can send a single message to a named instance or broadcast a message to all listeners. Also within the message I want to send an object allowing data to be routed around the application. Today I wrote a class called Tubes that does just that. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://onflex.org/com/diverted/messaging/Tubes.as"&gt;com.diverted.messaging.Tubes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lets take a look:&lt;br /&gt;&lt;br /&gt;//import the class&lt;br /&gt;import &lt;a href="http://onflex.org/com/diverted/messaging/Tubes.as"&gt;com.diverted.messaging.Tubes&lt;/a&gt;;&lt;br /&gt;&lt;br /&gt;//to start receiving messages, simply add a name and a method&lt;br /&gt;Tubes.add( "root" , this.tube );&lt;br /&gt;&lt;br /&gt;//send an object to all receivers&lt;br /&gt;Tubes.send( { type:"paymentRecieved" , amount:34.52 } );&lt;br /&gt;&lt;br /&gt;//send an object to particular instance&lt;br /&gt;Tubes.sendTo( "accountant" , { type:"paymentRecieved" , amount:34.52 } );&lt;br /&gt;&lt;br /&gt;//to stop receiving messages&lt;br /&gt;Tubes.remove( "root" );&lt;br /&gt;&lt;br /&gt;I like the simplicity of Tubes because once you import the class, you can message within the application easily. The method passed into Tubes.add is called with a single object argument so you can structure the object as needed.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-1292386361289975138?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/in-app-messaging-with-tubes.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>10</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-7561087811569336947</guid><pubDate>Wed, 05 Aug 2009 18:19:00 +0000</pubDate><atom:updated>2009-08-05T12:35:55.290-07:00</atom:updated><title>The Future of the Flash Platform</title><description>Having been involved in the Flash Platform for many years, I have witnessed future releases being defined both inside and outside Adobe. If there is one truth, customers(designers/developers paying or not) influence everything Adobe does. Teams internally pay extremely close attention to our developer/designer/project innovation and stay constantly tuned into where innovation (your work) is headed and what problems you are having. Instead of blazing headlights(new ground) or chasing taillights(follow the leader), Adobe (and Macromedia before) is focused on real customer need.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://onflex.org/images/future.jpg" width="600"/&gt;&lt;br /&gt;&lt;br /&gt;So how does the future get defined?&lt;br /&gt;This is where YOU get involved!&lt;br /&gt;&lt;br /&gt;Truth is you are building the future today and when you are vocal about your needs, Adobe teams listen. Adobe doesn't build the product we want to build, rather we build tools and technologies to help you exceed expectations in the market. No joke. To get involved in defining the future of Flash Player, Flash, AIR, Creative Suite, Coldfusion, (NAME THAT PRODUCT HERE), you need only get public with your needs. &lt;a href="http://bugs.adobe.com/"&gt;File Enhancements&lt;/a&gt;, &lt;a href="http://bugs.adobe.com/"&gt;File Bugs&lt;/a&gt;, Blog, twitter, and lobby for your features/needs. And like clockwork you will influence the platform and its direction.&lt;br /&gt;&lt;br /&gt;Take a look at the following (small set of example):&lt;br /&gt;&lt;br /&gt;In May of 2003, &lt;a href="http://onflash.org/ted/2003/05/problems-with-movieclipdatatype.php"&gt;I was very angry at MovieClips&lt;/a&gt;&lt;br /&gt;In Nov 2004, I then started complaining about lack of a &lt;a href="http://onflash.org/ted/2004/11/proxy-class-for-flash.php"&gt;Proxy class in Flash&lt;/a&gt;&lt;br /&gt;In March 2008,&lt;a href="http://www.make-some-noise.info/about/"&gt; Andre Michelle decided to make some noise.&lt;/a&gt; Now he wants threads, awesome!&lt;br /&gt;In April 2008, &lt;a href="http://www.gskinner.com/blog/archives/2008/04/failure_to_unlo.html"&gt;Grant uncovered a bug&lt;/a&gt;, it was fixed in next player release.&lt;br /&gt;&lt;br /&gt;Some campaigns of note defining the future:&lt;br /&gt;In May 2009, &lt;a href="http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html"&gt;Grant got fed up with idle CPU use&lt;/a&gt;.&lt;br /&gt;In Feb 2009, &lt;a href="http://bugs.adobe.com/jira/browse/ASC-2583"&gt;many want private constructors in AS3!&lt;/a&gt;&lt;br /&gt;in March2009, &lt;a href="http://www.getmicrophone.com/?p=22"&gt;Chuck Freedman had enough and wants Microphone!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In every case above, work has been done to fix these and make Flash a better platform. Many times key external developers work directly with engineering to get these problems identified and solved. The thing is we are just not public about it. The road to getting things fixed is a windy road balanced by priority and limited by time and resources, that aside, the teams listen if you get vocal and if you file enhancements. But only IF YOU DO...&lt;br /&gt;&lt;br /&gt;So this is my official call for you to step up get involved. Get vocal and define the future!  I can tell you firsthand that it works every time. The future of Flash Platform is defined by you, not in some conference room in some Adobe office.&lt;br /&gt;&lt;br /&gt;WARNING: If you complain too much and log enough bugs, you might find yourself working here too. :)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-7561087811569336947?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/08/future-of-flash-platform.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>66</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5403941.post-432246266293120768</guid><pubDate>Wed, 29 Jul 2009 20:29:00 +0000</pubDate><atom:updated>2009-07-29T14:38:00.246-07:00</atom:updated><title>Back in Black - Returning to Platform Evangelism at Adobe</title><description>I am very excited to return to the Platform Evangelism team at Adobe to pursue my passion of writing and exploring the world of software development.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.youtube.com/watch?v=tXaZmY52gHM"&gt;&lt;img src="http://onflex.org/images/helloworld.jpg"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I started writing software at age 9 on an Apple II+ at our neighbors house in Houston, Texas and if it hadn't been for my grandfather buying me an Apple IIE, I might have moved into our neighbors house. I love software, I love writing it, learning new things about it, and I especially love sharing what I learn about it with others. It is an interesting time to return to evangelism as the Flash Platform is in the midst of a very large transition. We are in the middle of Flex 4 development,  progress on Catalyst, Mobile runtimes, and Flash Collaboration Services are full steam ahead.  In the overall market, RIA purpose driven apps are going mainstream vs traditional browser based apps. I don't go to Twitter.com, I use Destroy Twitter; I don't go to Facebook.com, rather I have an app for that on my phone; and services/apis are appearing for just about everything. Times have changed.&lt;br /&gt;&lt;br /&gt;For the last 12 months I have worked on the community team at Adobe focused on growing our designer and developer ecosystem through our community leaders and Adobe User Groups. The community has grown dramatically over the past year and I want to thank each and every community leader who made that growth possible. Although our work is far from complete, I know that the passionate leadership within the community merged with new team leadership under Rachel Luxemburg (New Team Leader) &amp; Ben Forta (Evangelism Honcho) can only result in a world class program for Adobe in the years ahead. Long story short community is in great hands. The year of management experience has been eye opening for me as I had to learn a very different toolset, and honestly, I could not have asked for a better team.&lt;br /&gt;&lt;br /&gt;During my time on the community team I started writing software in my spare time. I would stay up late to writing code and learn new platforms. I certainly didn't see it initially but after my wife Linda mentioned it, I really needed to make writing and exploring software my full time job. So today I am headed back to the Evangelism team to pursue that passion.&lt;br /&gt;&lt;br /&gt;I was chatting with Ryan Stewart today on IM and this chat sums up my feeling well:&lt;br /&gt;&lt;br /&gt;12:00:56 PM Ted Patrick: tis humbling to return to evangelism&lt;br /&gt;12:01:00 PM Ryan Stewart: hahah&lt;br /&gt;12:01:02 PM Ryan Stewart: why?&lt;br /&gt;12:01:06 PM Ryan Stewart: you were the Flex evangelist king!&lt;br /&gt;12:01:12 PM Ryan Stewart: now you're &lt;a href="http://www.youtube.com/watch?v=tXaZmY52gHM"&gt;back in black&lt;/a&gt;&lt;br /&gt;12:01:24 PM Ted Patrick: oh just after all the projects&lt;br /&gt;12:01:34 PM Ted Patrick: and management&lt;br /&gt;12:01:45 PM Ted Patrick: It is nice to return to code&lt;br /&gt;&lt;br /&gt;Well I am not sure about "Flex evangelist king", yikes, but I am very happy to be back. It is an amazing team and there is no better job for someone that loves software development.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Ted :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5403941-432246266293120768?l=onflash.org%2Fted%2Findex.php' alt='' /&gt;&lt;/div&gt;</description><link>http://onflash.org/ted/2009/07/back-in-black.php</link><author>noreply@blogger.com (Ted Patrick)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>12</thr:total></item></channel></rss>