<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>deconcept &#187; javascript</title>
	<atom:link href="http://blog.deconcept.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.deconcept.com</link>
	<description>You&#039;ve got your good thing, and I&#039;ve got mine</description>
	<lastBuildDate>Mon, 30 Jan 2012 16:14:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Flash is dead. Long live the internet.</title>
		<link>http://blog.deconcept.com/2011/11/12/flash-is-dead-long-live-the-internet/</link>
		<comments>http://blog.deconcept.com/2011/11/12/flash-is-dead-long-live-the-internet/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 15:40:14 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[web stuff]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/?p=291</guid>
		<description><![CDATA[When I was in high school I didn&#8217;t own a computer. I used to read the occasional Popular Mechanics magazine and would linger for a while on the articles about the internet or HTML, fascinated by this new technology that &#8230; <a href="http://blog.deconcept.com/2011/11/12/flash-is-dead-long-live-the-internet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I was in high school I didn&#8217;t own a computer. I used to read the occasional Popular Mechanics magazine and would linger for a while on the articles about the internet or HTML, fascinated by this new technology that I had barely even used. I don&#8217;t know why, but for some reason I&#8217;ve always been drawn toward computers, but more specifically, computers connected to other computers. Whether it was playing a video game online or browsing through the millions of websites, I could always spend hours every day in front of a computer soaking up information and experiences, interacting with people on the other side of the world.</p>
<p>Soon after I bought my first computer I started building simple websites. I had all of the best animated gifs you could find, along with those awesome water ripple java applets and whatever other bells and whistles I could find. It was awesome. I wanted to push the boundaries of this new thing. To make something unique that nobody had seen before. This led me to Macromedia Flash 4. My new hobby slowly taught me how to program, and over time I got pretty good at it. Eventually I landed in New York City and found a job at a tiny little web design shop, building websites for big corporations and loving every minute of it.</p>
<p>During this time the internet was recovering from the big crash at the end of the 90&#8242;s and as browsers slowly evolved, so were the websites we were building. But browsers were slow to update back then, so Flash filled a need to move faster and give us more options to explore and new technology to use (and abuse!). Around this time I wrote <a href="http://blog.deconcept.com/2005/03/31/proper-flash-embedding-flashobject-best-practices/">a little javascript utility</a> to detect the presence of the Flash plugin and conditionally inject Flash into a website or not, and I watched as it grew over the years and became one of the most used utilities on the internet.</p>
<p>Flash was huge. Everyone wanted a flashy website and the only way to get one that any meaningful number of people could see was to use Flash. As browsers struggled to keep up, Flash charged ahead allowing us to build some truly amazing websites. Admittedly, there was some abuse of this technology, but we still charged ahead, trying to discover and build the next generation of user interfaces. Most older companies still thought of the internet as just another medium to advertise on. They wanted a flashy website to show off to their investors and clients and cared less about building something useful. The ubiquity of the Flash plugin made it an easy choice to build these new kinds of websites. We weren&#8217;t held back by the limitations of HTML any more, and that let us all explore wild ideas and try things that wouldn&#8217;t be possible with HTML or Javascript for years to come.</p>
<p>But now, years later, the browsers are catching up. Mobile devices are becoming more important than desktop computers (a trend I expect to continue for years to come). As more people use the internet in their day to day lives, businesses have realized that having a useful website is more powerful than just a flashy animated advertisement.</p>
<p>A few months ago I noticed that <a href="http://trends.builtwith.com/javascript/SWFObject">SWFObject usage on the top 10,000 websites was declining</a> for the first time ever (I believe usage peaked in the summer of 2010). Last week, <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">Adobe announced</a> that they would halt development of Flash player for mobile devices, and refocus their efforts on HTML. Since this news was announced, I&#8217;ve seen many sad and nostalgic tweets from friends and colleagues. Some seem to be taking the news better than others, and it&#8217;s understandable that some people are sad to see Flash go. But it&#8217;s important to remember that no single technology is responsible for this awesome thing we call the internet.</p>
<p>This brings us back to my younger self sitting at home in Arizona playing with Flash and Photoshop, building new things. I&#8217;ve always loved making things, and I suspect many web developers feel the same. <strong>The pleasure of making something great is what drives us, not a specific technology.</strong> So don&#8217;t be too sad about Flash evolving, or even dying. Just keep making awesome things with whatever tools you have at your disposal.</p>
<p>Discuss this post here: <a href="http://news.ycombinator.com/item?id=3227994">http://news.ycombinator.com/item?id=3227994</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2011/11/12/flash-is-dead-long-live-the-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powered by YouTube event this Thursday, July 10th 2008</title>
		<link>http://blog.deconcept.com/2008/07/07/powered-by-youtube-event-thursday/</link>
		<comments>http://blog.deconcept.com/2008/07/07/powered-by-youtube-event-thursday/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 23:04:07 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nerdery]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/?p=195</guid>
		<description><![CDATA[Are you interested in the various API services that YouTube offers? Are you going to be in the bay area this Thursday? Then why not stop by Powered by YouTube? It&#8217;s taking place at the San Bruno YouTube office this &#8230; <a href="http://blog.deconcept.com/2008/07/07/powered-by-youtube-event-thursday/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Are you interested in the various API services that YouTube offers? Are you going to be in the bay area this Thursday? Then why not stop by <strong><a href="http://code.google.com/events/poweredbyyoutube/index.html" rel="external">Powered by YouTube</a></strong>?</p>
<p>It&#8217;s taking place at the <a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=901+Cherry+Ave,+San+Bruno,+CA+94066&#038;sll=37.774153,-122.413327&#038;sspn=0.009295,0.018046&#038;ie=UTF8&#038;ll=37.62929,-122.425804&#038;spn=0.009313,0.018046&#038;t=h&#038;z=16&#038;iwloc=addr" rel="external">San Bruno YouTube office</a> this Thursday, July 10th from 10:30am to 5:30pm.</p>
<p>Here&#8217;s the blurb about it:</p>
<blockquote cite="http://code.google.com/events/poweredbyyoutube/index.html"><p><a href="http://code.google.com/events/poweredbyyoutube/index.html" rel="external">Powered By YouTube</a> is a developer gathering focused on bringing together developers to learn more about the YouTube APIs and Tools. Spend the day at YouTube&#8217;s headquarters and learn how to bring YouTube to your website, share best practices, and get hands-on with the APIs. Meet fellow YouTube API developers across a wide range of companies, YouTube engineers and product managers, and leave inspired to enhance your user experience with the YouTube APIs.</p></blockquote>
<p><small>Also: It&#8217;s free, and you get a free lunch.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2008/07/07/powered-by-youtube-event-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube + Google Maps API Mashup</title>
		<link>http://blog.deconcept.com/2008/03/25/youtube-google-maps-api-mashup/</link>
		<comments>http://blog.deconcept.com/2008/03/25/youtube-google-maps-api-mashup/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 15:21:25 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2008/03/25/youtube-google-maps-api-mashup/</guid>
		<description><![CDATA[I put this little demo together in preparation for the hack-a-thon this Thursday. It uses the YouTube player Javascript API to synchronize a Google Maps widget with the video (based on the current time of the video). It was pretty &#8230; <a href="http://blog.deconcept.com/2008/03/25/youtube-google-maps-api-mashup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I put <a href="/ytmapmashup/">this little demo</a> together in preparation for the <a rel="external" href="http://code.google.com/events/hackathons/ytpicasa.html">hack-a-thon</a> this Thursday.</p>
<p>It uses the <a rel="external" href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube player Javascript API</a> to synchronize a Google Maps widget with the video (based on the current time of the video). It was pretty easy to throw together, it took maybe 4 hours from start to finish, and I&#8217;ve never used the Google Maps Javascript API before.</p>
<p><a href="/ytmapmashup/">Check it out.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2008/03/25/youtube-google-maps-api-mashup/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>YouTube / Picasa Hackathon @ Google</title>
		<link>http://blog.deconcept.com/2008/03/18/youtube-picasa-hackathon-google/</link>
		<comments>http://blog.deconcept.com/2008/03/18/youtube-picasa-hackathon-google/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 18:22:25 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nerdery]]></category>
		<category><![CDATA[san francisco]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2008/03/18/youtube-picasa-hackathon-google/</guid>
		<description><![CDATA[Would you like to come to the Googleplex and learn about the new YouTube APIs directly from the engineers that built them? Yes? Then head over to this signup page and let us know you&#8217;re coming. The event is on &#8230; <a href="http://blog.deconcept.com/2008/03/18/youtube-picasa-hackathon-google/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Would you like to come to the Googleplex and learn about the new <a rel="external" href="http://code.google.com/apis/youtube/overview.html">YouTube APIs</a> directly from the engineers that built them?</p>
<p>Yes? Then head over to this <a rel="external" href="http://code.google.com/events/hackathons/ytpicasa.html">signup page</a> and let us know you&#8217;re coming. The event is on March 27th, 2008 and will be held at the <a rel="external" href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=1600+Amphitheatre+Pkwy,+Mountain+View,+CA+94043&amp;sll=37.774153,-122.413327&amp;sspn=0.008701,0.018926&amp;ie=UTF8&amp;ll=37.4244,-122.085035&amp;spn=0.008742,0.018926&amp;t=h&amp;z=16&amp;iwloc=addr">Google Mountain View campus</a>.</p>
<p><small>p.s. free punch and pie</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2008/03/18/youtube-picasa-hackathon-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SWFObject 2.0 released!</title>
		<link>http://blog.deconcept.com/2008/03/14/swfobject-20-released/</link>
		<comments>http://blog.deconcept.com/2008/03/14/swfobject-20-released/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 02:25:24 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2008/03/14/swfobject-20-released/</guid>
		<description><![CDATA[After months of work, we are pleased to present SWFObject 2.0. The project has moved over to the code.google.com website instead of my blog, so go over there and check out the docs and consider upgrading, as the new version &#8230; <a href="http://blog.deconcept.com/2008/03/14/swfobject-20-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After months of work, we are pleased to present <a rel="external" href="http://code.google.com/p/swfobject/">SWFObject 2.0</a>.</p>
<p>The project has moved over to the <a rel="external" href="http://code.google.com/p/swfobject/">code.google.com</a> website instead of my blog, so go over there and check out the docs and consider upgrading, as the new version is a lot more flexible than v1.5.</p>
<p>I&#8217;d like to give a huge thank you to all of the people who contributed and helped us test out the new release, those <a rel="external" href="http://www.swffix.org/devblog/?p=28">no longer with us</a>, and of course to <a rel="external" href="http://www.bobbyvandersluis.com/">Bobby</a> who is easily the biggest contributor to this new version (and has a new design up on his blog!) and has kept the project pushing forward at a good pace.</p>
<p>Moving foward, we&#8217;ll be continuing to work with Adobe to get the word out about SWFObject 2.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2008/03/14/swfobject-20-released/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>SWFObject 2.0 Beta</title>
		<link>http://blog.deconcept.com/2007/10/02/swfobject-2-0-beta/</link>
		<comments>http://blog.deconcept.com/2007/10/02/swfobject-2-0-beta/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 16:12:27 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swffix]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2007/10/02/swfobject-2-0-beta/</guid>
		<description><![CDATA[Today at Adobe MAX I&#8217;ll be giving a presentation with Michael Williams on the next version of SWFObject (previously the SWFFix project). As most of you probably know, I&#8217;ve been working on a project with Bobby van der Sluis and &#8230; <a href="http://blog.deconcept.com/2007/10/02/swfobject-2-0-beta/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today at Adobe MAX I&#8217;ll be giving a presentation with Michael Williams on the next version of SWFObject (previously the SWFFix project). As most of you probably know, I&#8217;ve been working on a project with <a href="http://www.bobbyvandersluis.com/" rel="external">Bobby van der Sluis</a> and Michael Williams (From Adobe) that was going to become the de-facto standard for embedding Flash/Flex content. Well we decided that we didn&#8217;t like the new name all that much, so we are adopting the SWFObject name for the project.</p>
<p>The new version is a complete rewrite from SWFObject 1.5, so we&#8217;ll need lots of testing before we officially launch it and replace the older SWFObject and UFO scripts, and since we have Adobe involved, they will be including this embed system in the Adobe authoring tools in the future.</p>
<p>The SWFObject project is moving to <a href="http://code.google.com/p/swfobject/" rel="external">Google Code</a>, where you can download the source from svn, grab the latest build, or file bugs or read documentation.</p>
<p>I&#8217;ve also created a new <a href="http://groups.google.com/group/swfobject/" rel="external">Google Group for SWFObject</a> support questions and discussion.</p>
<p>If you are at MAX today, our presentation is at 2:45pm in room W-196c and it&#8217;s called &#8220;Flash Detection and Embedding: An open source solution&#8221;.</p>
<p>If you can&#8217;t make it today, we&#8217;ll be doing it again tomorrw (Wednesday) at 11am in room W-185d.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2007/10/02/swfobject-2-0-beta/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>The SWFFix alpha is up</title>
		<link>http://blog.deconcept.com/2007/07/25/the-swffix-alpha-is-up/</link>
		<comments>http://blog.deconcept.com/2007/07/25/the-swffix-alpha-is-up/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 04:47:45 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[swffix]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2007/07/25/the-swffix-alpha-is-up/</guid>
		<description><![CDATA[Bobby put up the SWFFix alpha earlier today &#8211; I&#8217;ve been at the Ajax experience (with no wireless internet access, wtf?!) so haven&#8217;t had time to put together a post about it, but here&#8217;s a quick one. We also announced &#8230; <a href="http://blog.deconcept.com/2007/07/25/the-swffix-alpha-is-up/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bobbyvandersluis.com/" rel="external">Bobby</a> put up the <a href="http://www.swffix.org/devblog/?p=8" rel="external">SWFFix alpha</a> earlier today &#8211; I&#8217;ve been at the <a href="" rel="external">Ajax experience</a> (with no wireless internet access, wtf?!) so haven&#8217;t had time to put together a post about it, but here&#8217;s a quick one.</p>
<p>We also announced that we are now working with Micheal Williams from Adobe &#8211; the author of the Adobe Flash Detection kit to make sure SWFFix can cover all the bases and be used by anyone. Very cool!</p>
<p>Go check out the <a href="http://www.swffix.org/devblog/?p=8" rel="external">dev blog</a> and grab the files, then read <a href="http://www.swffix.org/documentation/" rel="external">the docs</a> and try it out. Feedback is very welcome, so soak it in and let us know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2007/07/25/the-swffix-alpha-is-up/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Speaking at the Ajax Experience</title>
		<link>http://blog.deconcept.com/2007/06/05/speaking-at-the-ajax-experience/</link>
		<comments>http://blog.deconcept.com/2007/06/05/speaking-at-the-ajax-experience/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 19:54:35 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[web stuff]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2007/06/05/speaking-at-the-ajax-experience/</guid>
		<description><![CDATA[I just found out the other day that the Ajax Experience has invited me to come talk about Flash to a bunch of Ajax nerds this July. This should be a really fun one (no, really!). My talk will be &#8230; <a href="http://blog.deconcept.com/2007/06/05/speaking-at-the-ajax-experience/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just found out the other day that the <a href="http://ajaxexperience.techtarget.com/west/index.html" rel="external">Ajax Experience</a> has invited me to come talk about Flash to a bunch of Ajax nerds this July. This should be a really fun one (no, really!). My talk will be on how to use Flash *with* that fancy Ajax app you are building, so enhance it and give it that little extra kick. Think of it as an introduction to using Flash happily with Ajax techniques.</p>
<p>It&#8217;s got a fantastic lineup if you are into the whole Ajax thing, so I definitely suggest checking it out.</p>
<p>Check out <a href="http://ajaxexperience.techtarget.com/west/html/sessions.html#GStearnsFlash" rel="external">my session outline</a> for more info.</p>
<p>Also: <a href="http://www.flashbelt.com/" rel="external">Flashbelt</a> is only 2 weeks away! It&#8217;s JUNE already. Time to hit the upper midwest and talk Flash with all the cool Flash nerds again. If you haven&#8217;t looked at Flashbelt and are itching for a conference, this will be a nice one to check out.</p>
<p><strong>UPDATE:</strong> Apparently, there&#8217;s only 50 tickets left for Flashbelt, so get your tickets now if you are planning on going!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2007/06/05/speaking-at-the-ajax-experience/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Speaking at Flashbelt</title>
		<link>http://blog.deconcept.com/2007/03/01/speaking-at-flashbelt/</link>
		<comments>http://blog.deconcept.com/2007/03/01/speaking-at-flashbelt/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 18:54:42 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[webstandards]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2007/03/01/speaking-at-flashbelt/</guid>
		<description><![CDATA[While I was at Flash on the Beach back in December, I met Dave and didn&#8217;t even realize he was the dave from Pilotvibe and the organizer of Flashbelt. Schematic sent a few people up there last year to give &#8230; <a href="http://blog.deconcept.com/2007/03/01/speaking-at-flashbelt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While I was at Flash on the Beach back in December, I met Dave and didn&#8217;t even realize he was the dave from Pilotvibe and the organizer of <a href="http://www.flashbelt.com/" rel="external">Flashbelt</a>. Schematic sent a few people up there last year to give presentations, and they all said it was fantastic, so I was very excited when Dave invited me to speak at this year&#8217;s conference.</p>
<p>I&#8217;ll be giving a talk called <strong>Progressive Enhancement with Flash</strong> that will cover stuff like:</p>
<ul>
<li>Using SWFObject (maybe SWFFix by then) to embed Flash content</li>
<li>Using progressive enhancement to allow search engines to properly index your content and increase SEO for Flash websites</li>
<li>Flash content vs. Flash style, and how to treat them differently</li>
<li>Deep linking and back button support in Flash</li>
</ul>
<p>And a few other areas. I should also be able to talk about SWFFix a bit (hopefully it will be fully released by then, but who knows).</p>
<p>Go check out the <a href="http://www.flashbelt.com/" rel="external">Flashbelt</a> page for more info. I can&#8217;t give you a direct link to my session, but it&#8217;s listed there in the session list. Hopefully I&#8217;ll see some of you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2007/03/01/speaking-at-flashbelt/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Announcing the SWFFix project</title>
		<link>http://blog.deconcept.com/2007/02/06/announcing-the-swffix-project/</link>
		<comments>http://blog.deconcept.com/2007/02/06/announcing-the-swffix-project/#comments</comments>
		<pubDate>Tue, 06 Feb 2007 15:20:12 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[webstandards]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2007/02/06/announcing-the-swffix-project/</guid>
		<description><![CDATA[SWFFix is a new joint project from myself and Bobby van der Sluis. The project&#8217;s goal is to replace SWFObject and UFO with a single method that is (hopefully) more standards compliant and doesn&#8217;t rely entirely on Javascript. We&#8217;ve put &#8230; <a href="http://blog.deconcept.com/2007/02/06/announcing-the-swffix-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.swffix.org/" rel="external">SWFFix</a> is a new joint project from myself and <a href="http://www.bobbyvandersluis.com/" rel="external">Bobby van der Sluis</a>. The project&#8217;s goal is to replace SWFObject and UFO with a single method that is (hopefully) more standards compliant and doesn&#8217;t rely entirely on Javascript.</p>
<p>We&#8217;ve put up a <a href="http://www.swffix.org/devblog/" rel="external">dev blog</a> on the site, and will be asking for help and feedback throughout the development cycle, so head over and watch the blog for updates in the coming weeks.</p>
<p>Bobby also has a great <a href="http://www.alistapart.com/articles/flashembedcagematch" rel="external">A List Apart article</a> out today that talks about the problems with current Flash embed techniques.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2007/02/06/announcing-the-swffix-project/feed/</wfw:commentRss>
		<slash:comments>82</slash:comments>
		</item>
		<item>
		<title>SWFUpload</title>
		<link>http://blog.deconcept.com/2006/11/17/swfupload/</link>
		<comments>http://blog.deconcept.com/2006/11/17/swfupload/#comments</comments>
		<pubDate>Fri, 17 Nov 2006 15:55:34 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/11/17/swfupload/</guid>
		<description><![CDATA[SWFUpload is a neat little tool that alows you to use Flash as a file uploader in your web forms. If your users have Flash, the script writes out a Flash uploader, and if they don&#8217;t, they get a nice &#8230; <a href="http://blog.deconcept.com/2006/11/17/swfupload/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://labb.dev.mammon.se/swfupload/" rel="external">SWFUpload</a> is a neat little tool that alows you to use Flash as a file uploader in your web forms. If your users have Flash, the script writes out a Flash uploader, and if they don&#8217;t, they get a nice HTML upload form field. Very nice, and it uses SWFObject for the plugin detection + embedding.</p>
<p>This is a great example of using Flash where Flash can do something better than HTML. And doing it in a way that uses progressive enhancement so it doesn&#8217;t <em>require</em> Flash. It&#8217;s just that Flash makes it better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/11/17/swfupload/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>SWFMacMouseWheel SWFObject add-on</title>
		<link>http://blog.deconcept.com/2006/11/08/swfmacmousewheel-swfobject-add-on/</link>
		<comments>http://blog.deconcept.com/2006/11/08/swfmacmousewheel-swfobject-add-on/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 01:11:34 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/11/08/swfmacmousewheel-swfobject-add-on/</guid>
		<description><![CDATA[Ever wanted to have mouse wheel support for your Flash movies in OS X? Now you can! And it&#8217;s really easy: SWFMacMouseWheel is another addon for SWFObject that listens for mouse events and passes in the mouse wheel events to &#8230; <a href="http://blog.deconcept.com/2006/11/08/swfmacmousewheel-swfobject-add-on/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to have mouse wheel support for your Flash movies in OS X? Now you can! And it&#8217;s really easy:</p>
<p>SWFMacMouseWheel is another addon for SWFObject that listens for mouse events and passes in the mouse wheel events to your Flash movie using ExternalInterface. Very cool solution to a problem that has annoyed many Flash developers. Go check it out.</p>
<p><a href="http://blog.pixelbreaker.com/2006/11/08/flash/swfmacmousewheel/">SWFMacMouseWheel</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/11/08/swfmacmousewheel-swfobject-add-on/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>SWFAddress</title>
		<link>http://blog.deconcept.com/2006/10/25/swfaddress/</link>
		<comments>http://blog.deconcept.com/2006/10/25/swfaddress/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 18:54:31 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/10/25/swfaddress/</guid>
		<description><![CDATA[SWFAddress is a fantastic little utility that allows you to easily add deep linking and back button support to your Flash websites. From the SWFAddress website: SWFAddress is a small script that sits on top of SWFObject and provides deep &#8230; <a href="http://blog.deconcept.com/2006/10/25/swfaddress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.asual.com/swfaddress/" rel="external">SWFAddress</a> is a fantastic little utility that allows you to easily add deep linking and back button support to your Flash websites. From the SWFAddress website:</p>
<blockquote cite="http://www.asual.com/swfaddress/"><p>
SWFAddress is a small script that sits on top of SWFObject and provides deep linking for Flash websites and applications. In other words it enables the Back, Forward and Refresh buttons of the browser and creates unique URLs with page titles that can be sent over email or IM.</p>
<p>SWFAddress uses the ExternalInterface functionality introduced in Flash Player 8. It has been tested on the following browsers:</p>
<p>    * Internet Explorer 6.0 and 7.0<br />
    * Mozilla Firefox 1.5<br />
    * Safari 2.04<br />
    * Opera 9.02
</p></blockquote>
<p>It&#8217;s a great little script, and something I&#8217;ve wanted to put together for a long time. Even better: It was designed to work with SWFObject, so if you are already using <a href="/swfobject/">SWFObject</a> to embed your movies, it&#8217;s really really easy to just slap in some deep link and back button support.</p>
<p><a href="http://www.asual.com/swfaddress/" rel="external">Go check it out.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/10/25/swfaddress/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Using progressive enhancement with Flash</title>
		<link>http://blog.deconcept.com/2006/09/12/using-progressive-enhancement-flash/</link>
		<comments>http://blog.deconcept.com/2006/09/12/using-progressive-enhancement-flash/#comments</comments>
		<pubDate>Tue, 12 Sep 2006 15:59:48 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[webstandards]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/09/12/using-progressive-enhancement-flash/</guid>
		<description><![CDATA[There&#8217;s a fantastic article on Adobe&#8217;s devnet site that Bobby wrote (he&#8217;s the guy who wrote SWFObject&#8217;s biggest competition, UFO*). All about progressive enhancement with Flash. It includes helping your Flash content get picked up by search engines, supporting people &#8230; <a href="http://blog.deconcept.com/2006/09/12/using-progressive-enhancement-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a <a href="http://www.adobe.com/devnet/flash/articles/progressive_enhancement.html" rel="external">fantastic article</a> on Adobe&#8217;s devnet site that <a href="http://www.bobbyvandersluis.com/" rel="external">Bobby</a> wrote (he&#8217;s the guy who wrote SWFObject&#8217;s biggest competition, <a href="http://www.bobbyvandersluis.com/ufo/">UFO</a>*). All about progressive enhancement with Flash. It includes helping your Flash content get picked up by search engines, supporting people without the Flash player, and a ton of other good info. <a href="http://www.adobe.com/devnet/flash/articles/progressive_enhancement.html" rel="external">Go have a read</a>.</p>
<p><small>* But hey, it&#8217;s not really a competition, use whatever works best for you.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/09/12/using-progressive-enhancement-flash/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>On embedding Flash content using Web Standards (yes, again)</title>
		<link>http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/</link>
		<comments>http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 17:21:42 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[webstandards]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/</guid>
		<description><![CDATA[Lately there&#8217;s been a bit of buzz around embedding plugins while adhering to Web Standards™. First this ALA article came out and said &#8220;bye bye embed&#8221;, then yesterday one of the WaSP nerds posted something about &#8220;Valid Flash, video and &#8230; <a href="http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lately there&#8217;s been a bit of buzz around embedding plugins while adhering to Web Standards™. First this ALA article came out and said <a href="http://alistapart.com/articles/byebyeembed" rel="external">&#8220;bye bye embed&#8221;</a>, then yesterday one of the WaSP nerds posted something about <a href="http://www.webstandards.org/2006/08/15/valid-flash-video-and-audio-embed-object-markup/" rel="external">&#8220;Valid Flash, video and audio embed (object) markup&#8221;</a>.</p>
<p>It&#8217;s understandable to want to try and force browsers to display your plugin content in a way that adheres to &#8220;Web Standards&#8221;. It&#8217;s a very popular subject, and it&#8217;s been covered <a href="http://alistapart.com/articles/flashsatay/" rel="external">a few</a> <a rel="external" href="http://ln.hixie.ch/?start=1081798064&#038;count=1">times</a> <a href="http://joeclark.org/access/captioning/bpoc/embed-object.html" rel="external">before</a>. These two recent articles don&#8217;t uncover anything new, other than bringing to light (via the comments on them) that Javascript is the only viable method of embedding Flash (and other plugin based) content on the web today.</p>
<p>Now I&#8217;m going to say something here that might seem a little controversial, but I really want to get the point across, so I&#8217;m going to use some &#8216;shock and awe&#8217; tactics:</p>
<h3>Using <em>only</em> the object tag to embed your plugin content (especially Flash content) is fucking stupid.</h3>
<p>There. I said it.</p>
<p>You may say that I&#8217;m a bit biased because I wrote some <a href="/swfobject/">fancy pants Javascript Flash embed script</a>. Maybe I have a hidden agenda of world domination based on plugin detection. So while I no doubt would like to dominate the world, let me say that my reasons for advocating the use of Javascript are much more mundane.</p>
<p>This post was originally going to be titled &#8220;Flash Satay considered harmful,&#8221; and since the main topic are these &#8220;Web Standards&#8221; compliant ways of only using the object tag to embed plugin content, I&#8217;ll focus on the issues with doing so:</p>
<ul>
<li>&#8220;Click to activate&#8221; in IE. The only way to get around this is to use Javacript.</li>
<li>No plugin detection. While Ben says &#8216;meh&#8217; to this, it&#8217;s a very important aspect of the user experience. If I have Flash Player 6 installed, and I visit a site that uses Flash 9 content, my player will go ahead and try to play that swf anyway. I could end up seeing half of the content, or broken content, or who knows what. Do you really want to show your users broken content?</li>
<li>Issues in older Safari versions: Safari pre 1.2 will completely ignore param tags, which are often used to pass information to the plugin. This means broken content for your users.</li>
<li>Support for the object tag varies widely from browser to browser. Do you think that just because you work around all the quirks in the 3 main browsers today, it will still work when the next new browser is released?</li>
<li>A bug in Flash Player 9 can cause the browser to crash if you have more than one swf on the page and are using ExternalInterface to communicate with Javacsript. While this isn&#8217;t specifically related to how the swf is embedded, SWFObject does include a fix for this issue.</li>
<li>Using Flash Satay or other &#8216;object only&#8217; methods will not stream your Flash movies to the user &#8211; this means extra work for you in creating a &#8216;loader&#8217; swf</li>
<li><a href="http://weblogs.macromedia.com/accessibility/archives/2005/08/in_search_of_a.cfm" rel="external">JAWS will ignore it</a>.</li>
</ul>
<p>It&#8217;s a pretty long list, right? Now if you compare that to the user experience when using SWFObject (or other Javascript based techniques), you can see a noticable difference:</p>
<ul>
<li> The only time a user doesn&#8217;t see Flash is if they have Javascript turned off, or they don&#8217;t have the required version of the Flash Plugin. This one is a two parter: One, do you think that people really turn off Javascript but leave Flash on? Consider the type of person who turns Javascript off. They are probably the über nerd user who considers anything that isn&#8217;t text to be completely evil. They browse the web using Lynx. They probably stay a mile away from the Flash Plugin anyway. The beauty of the way SWFObject works is that even these people get content if you set it up right. Since you put alternate content &#8216;under&#8217; your swf, they will just see the alternate content. As long as you set it up right (you do, don&#8217;t you?) they may never even know they are missing out on Flash content.</li>
<li>They don&#8217;t have to click your movie once to &#8216;activate&#8217; it</li>
<li>Their browser doesn&#8217;t crash just because you had two swfs on the same page that use ExternalInterface</li>
<li>They only see Flash content if their browser and plugin support it.</li>
</ul>
<p>Taking all of the above into account, the choice is very clear: Javascript wins hands down. Any questions?</p>
<p>Now that all of that is taken care of, I wanted to address a couple of things:</p>
<p>First, these types of posts are not good for the Web Standards community. Basically what&#8217;s happening is highly visible people (even if they aren&#8217;t that well known, they still carry the WaSP name, or have articles on well respected online publications like A List Apart) are posting information that is bad for your users. Even worse is that they are doing it in the name of &#8220;Web Standards&#8221; and not taking into consideration any of the other options outside of pure HTML. <strong>This is extremely bad for the Web Standards movement.</strong> It makes the standards advocates look like crazed zealots who don&#8217;t care about user experience, but only care about adhering to the written rules exactly how they are stated even if it hurts them.</p>
<p>Second, you may be saying &#8220;well, if I can&#8217;t use the object tag, then what good is it?&#8221; and that is a FANTASTIC question. What good is it? Beats me, because the object tag is completely and utterly broken in nearly every web browser out there. Want to do something about it? <a href="/2006/04/18/where-is-web-browser-plug-in-task-force/">Maybe you could join WaSP and create a task force to fix how browsers handle plugins?</a></p>
<p><strong>UPDATE:</strong> I added this as a comment below, but wanted to put it in the main post as well: I want to say that as for Flash Satay: It was fantasic for the people who use(d) it, and in it’s time it was great. But now that certain big issues with it have been discovered, and Flash has changed over time, it’s time for it to retire. This is something I’ve been meaning to mention for a while, and it was sort of implied on the SWFObject page. So, since we are on the subject, it’s time to give it up.</p>
<p><strong>UPDATE (8-17-2006):</strong> Ben has posted <a href="http://www.webstandards.org/2006/08/17/flash-javascript-and-web-standards-like-sodium-and-water/" rel="external">a follow up</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/08/16/embedding-flash-content-using-web-standards-yes-again/feed/</wfw:commentRss>
		<slash:comments>161</slash:comments>
		</item>
		<item>
		<title>SWFObject 1.4.4 released</title>
		<link>http://blog.deconcept.com/2006/08/03/swfobject-144-released/</link>
		<comments>http://blog.deconcept.com/2006/08/03/swfobject-144-released/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 17:38:46 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/08/03/swfobject-144-released/</guid>
		<description><![CDATA[There was a new bug intruduced in the 1.4.3 release of SWFObject, so if you are using 1.4.3, you should upgrade to 1.4.4 immidiately. The issue is that onbeforeunload is being triggered even when a user clicks a link that &#8230; <a href="http://blog.deconcept.com/2006/08/03/swfobject-144-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There was a new bug intruduced in the 1.4.3 release of SWFObject, so if you are using 1.4.3, you should upgrade to 1.4.4 immidiately.</p>
<p>The issue is that onbeforeunload is being triggered even when a user clicks a link that contains a javascript link, which causes the cleanup routine to trigger, which makes all your swfs on the page dissapear in IE.</p>
<p>This has now been fixed, and 1.4.4 includes all of the &#8216;fixes&#8217; that are needed to date, including the <a href="http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/">streaming media fix</a>, and the <a href="http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/#comment-14544">Flash Player 9 &#8216;out of memory&#8217; errors</a>.</p>
<p><a href="/swfobject/swfobject1-4.zip">Download Now</a></p>
<p>* One new issue that can arise with the addition of the cleanup routines, is if you are including the swfobject.js script in your pages more than once, you will cause more &#8216;out of memory&#8217; errors. If this happens, make sure you only insert the swfobject.js file in your page only one time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/08/03/swfobject-144-released/feed/</wfw:commentRss>
		<slash:comments>159</slash:comments>
		</item>
		<item>
		<title>SWFObject 1.4.3 released</title>
		<link>http://blog.deconcept.com/2006/07/28/swfobject-143-released/</link>
		<comments>http://blog.deconcept.com/2006/07/28/swfobject-143-released/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 19:45:52 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/07/28/swfobject-143-released/</guid>
		<description><![CDATA[Please note that there is an issue with this version of SWFObject. When clicking links that use href=&#8221;javascript:&#8221; in them, it triggers the new onbeforeunload, which makes all your swf files dissapear. All users should upgrade to 1.4.4. This release &#8230; <a href="http://blog.deconcept.com/2006/07/28/swfobject-143-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p class="note">Please note that there is an issue with this version of SWFObject. When clicking links that use href=&#8221;javascript:&#8221; in them, it triggers the new onbeforeunload, which makes all your swf files dissapear. All users should upgrade to 1.4.4.</p>
<p>This release only contains a single fix for a new issue that occurs when using Flash Player 9.</p>
<p>If you have multiple swf files embedded in a single HTML page, and at least one of those files uses ExternalInterface to add a callback, when you leave the page you will get an error that says &#8220;Line 56: Out of Memory&#8221;.</p>
<p>This only occurs in IE &#8211; no other browsers are affected, and it only happens when using Flash Player 9 whether you are using SWFObject or not.</p>
<p>The problem is in some new Javascript code that was inserted into Flash Player 9 to fix a bug in the IE browser. This IE bug affected swf files that connected to streaming media servers &#8211; to learn more about it you can <a href="/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/">read this blog post</a>.</p>
<p>After working with Adobe, we came up with a Javascript fix for the streaming media issue and I used a variant of this code in the 1.4.2 version of SWFObject. All was fine then, until Flash Player 9 was released, and it turns out Adobe included their own Javascript (that is very similar to the fix in SWFObject) to fix the streaming media problems in IE. The only problem is that the code they used doesn&#8217;t like it when there is more than one swf embedded in a page.</p>
<p>So to get to the point, this new version of SWFObject just removes the &#8216;bad&#8217; code that Flash Player 9 inserts into the page and instead uses the cleanup code from the previous version of SWFObject that has been working fine for Flash Player 8.</p>
<p>Go grab a copy now &#8211; anyone using ExternalInterface needs to be aware of this issue and should upgrade their SWFObject script immediately if you have any pages with more than one swf embedded in it.</p>
<p>Here&#8217;s a <a href="/swfobject/swfobject1-4.zip">direct download link</a>, or you can get it out of the <a href="http://svn.deconcept.com/swfobject/tags/1.4.3/">SVN repository</a>, or visit the <a href="/swfobject/">SWFObject page</a> and get it from there.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/07/28/swfobject-143-released/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>SWFObject 1.4.2 update</title>
		<link>http://blog.deconcept.com/2006/06/09/swfobject-142-update/</link>
		<comments>http://blog.deconcept.com/2006/06/09/swfobject-142-update/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 14:46:37 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/06/09/swfobject-142-update/</guid>
		<description><![CDATA[I&#8217;ve just packaged up SWFObject 1.4.2. (Direct download link) This is a general maintenance release that fixes a couple of bugs, and improves version detection in Internet Explorer. Here&#8217;s the changelog: [updated] added one more fix for a related issue &#8230; <a href="http://blog.deconcept.com/2006/06/09/swfobject-142-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just packaged up SWFObject 1.4.2. (<a href="/swfobject/swfobject1-4.zip">Direct download link</a>)</p>
<p>This is a general maintenance release that fixes a couple of bugs, and improves version detection in Internet Explorer. Here&#8217;s the changelog:</p>
<ul>
<li>[updated] added one more fix for a related issue to the audio streaming bug listed below, thanks to Ben Longoria for the fix &#8211; this should take care of all the streaming audio issues, if you are still having problems after this update, please let me know</li>
<li>[updated] updated the detection code for IE/ActiveX browsers to fix a crash that could occur when the user had Flash Player 6.0.21 or 6.0.23 installed (Thanks to Michael Williams at Adobe for the code to fix this (and the Adobe detection kit))</li>
<li>[fixed] updated the getQueryParamValue method to fix a bug that would return the wrong value if you had two variables that ended with the same string (Thanks to Aran Rhee for discovering the issue and providing a fix)</li>
<li>[fixed] fixed a couple of strict js warnings that crept back in sometime after the 1.4 update</li>
</ul>
<p>I&#8217;ve also created a Subversion repository for SWFObject. If you are familiar with SVN, you can do a checkout from http://svn.deconcept.com/swfobject/.</p>
<p><a href="/swfobject/">Go get it!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/06/09/swfobject-142-update/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Flash Player bug with streaming content and innerHTML in IE</title>
		<link>http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/</link>
		<comments>http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/#comments</comments>
		<pubDate>Thu, 18 May 2006 12:15:05 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/</guid>
		<description><![CDATA[A few weeks back some Schematic developers were working on a video player for NBC Universal*. They found a very odd bug: when watching a video, if they hit F5 to reload the page, or closed the popup window, if &#8230; <a href="http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few weeks back some <a href="http://www.schematic.com/" rel="external">Schematic</a> developers were working on a video player for NBC Universal*. They found a very odd bug: when watching a video, if they hit F5 to reload the page, or closed the popup window, if they were using IE, the audio would keep playing until the video ended or until they closed all their open Internet Explorer windows.</p>
<p>After spending a few hours investigating, <a href="http://www.dannypatterson.com/" rel="external">Danny</a> noticed that when they weren&#8217;t using SWFObject to embed the swf, they didn&#8217;t have the problem. So they called me late on a Sunday night to help figure out what the problem was. To make a long story short, the issue was this:</p>
<p>When you embed a swf using <code>innerHTML</code> in IE 6, and stream content to the Flash Player, when the user leaves the page (either by reloading it, hitting the back button, or closing the browser window with another browser window open), the audio will keep playing until the video ends or until the user closes all of their open IE windows.</p>
<p>Working with another developer, we found a very odd resolution at first &#8211; if we removed the <code>Id</code> attribute from the <code>object</code> tag, it would fix the problem &#8211; no more ghosted audio. The downside to this was that it also broke ExternalInterface calls going into the swf. I tried many other ways to reference the swf, but it seemed that without that <code>Id</code> attribute there, Flash Player wasn&#8217;t able to add the Javascript hooks to the page when the plugin was loaded.</p>
<p>After that I started playing with all kinds of different methods including using <code>document.write</code> instead of <code>innerHTML</code>, (which fixed the issue) but the drawback of using this was so great I kept looking for another way to fix it. Without innerHTML, I would have to change the way SWFObject works, move the placement of the Javascript code on the page, and then add more code to clear the alternate content before writing the swf to the page. All of this made that option unacceptable. I also tried using DOM methods to embed the swf file, but that ended up being such a headache I quickly gave up on that as well. Using the DOM to embed plugins is the fastest way to a headache: you think CSS is bad cross browser? Try getting plugins to work&#8230;</p>
<p>At this point I gave up, and e-mailed a couple of Adobe contacts. Luckily I&#8217;ve had a lot of contact with them lately because of the <a href="http://www.adobe.com/devnet/flash/articles/swfobject.html" rel="external">Devnet article</a> and the whole <a href="/2006/04/21/flashobject-to-become-swfobject/">FlashObject name change thing</a>, so I figured they owed me anyway ;).</p>
<p>I put together a test case (HUGE thanks to Gene Dymarskiy at <a href="http://www.ibctv.com/" rel="external">IBCTV</a> for setting me up with a stream from one of their servers to test against &#8211; Gene sent an e-mail to the <a href="http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com">SWFObject mailing list</a> the day after we found this bug, so was also eager to find an answer to it) and sent the details over to Adobe and waited for them to check it out. A while later, I got some Javascript code back from a Flash Player engineer that with a little tweaking, fixed the problem. Here&#8217;s the code that I&#8217;ve added to SWFObject:</p>
<pre><code>/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
  var objects = document.getElementsByTagName("OBJECT");
  for (var i=0; i &lt; objects.length; i++) {
    for (var x in objects[i]) {
      if (typeof objects[i][x] == 'function') {
        objects[i][x] = null;
      }
    }
  }
}
if (typeof window.onunload == 'function') {
  var oldunload = window.onunload;
  window.onunload = function() {
    deconcept.SWFObjectUtil.cleanupSWFs();
    oldunload();
  }
} else {
  window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
}</code></pre>
<p>As you can see, it simply checks the page for <code>object</code> tags when the page unloads and loops through their properties looking for functions, and if it finds one, it sets it to <code>null</code>. I&#8217;m assuming this is cleaning up some leftovers Flash Player inserts because of the new ExternalInterface stuff, but I haven&#8217;t looked too deep into the cause of it.</p>
<p>I&#8217;ve just updated <a href="/swfobject/">SWFObject</a> to v1.4.1 to include this code. If you are using streaming content, this update is a must &#8211; if not, you can hold off as this was the only change to the code.</p>
<p><strong>UPDATE:</strong> I realized this morning that the title of this post is slightly misleading &#8211; this is not a Flash Player bug, but a bug in Internet Explorer 5 and 6 in the way the browser handles the Flash Player. The issue doesn&#8217;t exist in IE 7.</p>
<p><strong>UPDATE 2:</strong> It seems that there is still one issue remaining with this that can&#8217;t be solved. I haven&#8217;t tested it extensively, but it appears that when you leave a page using a link from within a Flash movie, the audio will continue, but if you leave the page using the back button or using an HTML link, the audio will be stopped. The bug was introduced when Microsoft introduced the Eolas changes, so it may be fixable in a future update. I&#8217;ll post more info here as I get it.</p>
<p><strong>UPDATE:</strong> The latest SWFObject (v1.4.2) fixes all of the known isues with this, so if you are still seeing the problem, go update and you should be fine.</p>
<p>* If you want to check out the player, which has TONS of great content loaded into it, you can try these urls:</p>
<ul>
<li><a href="http://www.nbc.com/Late_Night_with_Conan_O'Brien/videos/" rel="external">http://www.nbc.com/Late_Night_with_Conan_O&#8217;Brien/videos/</a></li>
<li><a href="http://www.accesshollywood.com/accessvideo/" rel="external">http://www.accesshollywood.com/accessvideo/</a></li>
<li><a href="http://www.bravotv.com" rel="external">http://www.bravotv.com</a></li>
<li><a href="http://www.scifi.com" rel="external">http://www.scifi.com</a> (click on any video)</li>
<li><a href="http://www.usanetwork.com" rel="external">http://www.usanetwork.com</a> (click &#8216;lauch video player&#8217; in top right corner)</li>
</ul>
<p>The player was built so it can be re-skinned on the fly for all the different networks or shows. Dig around a bit, there&#8217;s so much great content in there &#8211; especially some of the Conan and SNL stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/05/18/flash-player-bug-streaming-content-innerhtml-ie/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>SWFObject on Adobe Developer Center (Devnet)</title>
		<link>http://blog.deconcept.com/2006/05/09/flashobject-on-adobe-developer-center-devnet/</link>
		<comments>http://blog.deconcept.com/2006/05/09/flashobject-on-adobe-developer-center-devnet/#comments</comments>
		<pubDate>Tue, 09 May 2006 19:04:43 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/05/09/flashobject-on-adobe-developer-center-devnet/</guid>
		<description><![CDATA[Well, after a couple of months of waiting on Adobe Legal to decide that I couldn&#8217;t use &#8216;FlashObject&#8217; any more, here&#8217;s the Devnet article on SWFObject. If you are already familiar with the script, you probably won&#8217;t get anything new &#8230; <a href="http://blog.deconcept.com/2006/05/09/flashobject-on-adobe-developer-center-devnet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, after a couple of months of waiting on Adobe Legal to decide that I couldn&#8217;t use &#8216;FlashObject&#8217; any more, here&#8217;s the Devnet article on SWFObject.</p>
<p>If you are already familiar with the script, you probably won&#8217;t get anything new from the article, but if you are new to it, you should head over and give it a read. It&#8217;s basically the <a href="/swfobject/">SWFObject page</a>, only profesionally edited and tidied up.</p>
<p><a href="http://adobe.com/devnet/flash/articles/swfobject.html" rel="external">Go have a look.</a></p>
<p>Also, in case you missed it, <a href="http://www.adobe.com/" rel="external">Adobe.com</a> now uses a <a href="http://adobe.com/js/global.js">slighly customized</a> version of SWFObject for their site wide Flash Player detection and embedding.</p>
<p><small>Also, notice the <a href="http://threadless.com/product/157/Afternoon_Delight" rel="external">humping unicorns</a> on my t-shirt I&#8217;m wearing in the photo I gave them ;)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/05/09/flashobject-on-adobe-developer-center-devnet/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

