<?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; flashobject</title>
	<atom:link href="http://blog.deconcept.com/category/flashobject/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>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>SWFObject, née FlashObject 1.4 released</title>
		<link>http://blog.deconcept.com/2006/04/24/swfobject-nee-flashobject-1-4-released/</link>
		<comments>http://blog.deconcept.com/2006/04/24/swfobject-nee-flashobject-1-4-released/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 21:18:24 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/04/24/swfobject-nee-flashobject-1-4-released/</guid>
		<description><![CDATA[New version is out! The new version is 1.4, and there are only a few small changes/additions: Go get it! Changes: [updated] SWFObject.write() now returns true or false depending on whether the SWF content was written to the page or &#8230; <a href="http://blog.deconcept.com/2006/04/24/swfobject-nee-flashobject-1-4-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>New version is out! The new version is 1.4, and there are only a few small changes/additions:</p>
<p><a href="/swfobject/">Go get it!</a></p>
<p>Changes:</p>
<ol>
<li>[updated] SWFObject.write() now returns true or false depending on whether the SWF content was written to the page or not (true if it is, false if it is not)</li>
<li>[changed] The &#8216;com&#8217; namespace has been removed, now everything lives in the &#8216;deconcept&#8217; namespace only, instead of &#8216;com.deconcept&#8217; namespace</li>
<li>[updated] I made a couple of very small changes to get rid of warnings in the mozilla script debugger when the debugger was in strict mode</li>
<li>added &#8216;the mark of the web&#8217; to the examples pages to (hopefully) prevent the ActiveX bar from appearing at the top of the page when viewing these files locally in IE on Windows.</li>
<li>[changed] And last, but certainly not least: FlashObject is now known as SWFObject because of legal reasons</li>
</ol>
<p>The namespace change is significant if you are directly accessing any of the internal functions inside SWFObject, like the <code>getPlayerVersion()</code> call. This should be easy enough to modify. I&#8217;ve also left in the reference to &#8216;FlashObject&#8217; so if you want to upgrade, but don&#8217;t want to update your HTML pages just yet, you should be able to just drop in the new swfobject.js file, update the references to that script, and your SWF files will still show up.</p>
<p>As for the name change: Yes, it has been a pain in the ass, but not as painful as I thought it would be. So far the renaming of the functions / documentations has only consumed a few hours. Changing <a href="http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com">the mailing list</a> from FlashObject to SWFObject was a bit trickier, and I&#8217;m considering just moving it to Google groups instead of the current mailman setup I&#8217;m using now.</p>
<p>As for the overall effect of the renaming, I&#8217;ve come to think that it may actually be a good thing for SWFObject once the dust settles. There was a small blog blitz about the subject, which caused a small spike in traffic to the blog, which will probably just end up informing more people about the script. Current users will have a few small changes when they want to upgrade to the newest version, but it&#8217;s nothing that will take a huge amount of time. And since I was in Toronto at FITC when it happened, I had the chance to hang out with a few Adobe people and discuss the issue with them. They all agreed that it wasn&#8217;t really a good thing, but that there&#8217;s no reasoning with that feral beast that is the Adobe Legal Team®™.</p>
<p>I do, however, have concerns for other open source projects out there with the word &#8220;Flash&#8221; in the name. For them, changing names may not be so easy.</p>
<p>As for an update on the entire &#8220;using the word Flash&#8221; situation, Adobe (I&#8217;m told) is working on a response to everything, so hopefully in the next couple of weeks we&#8217;ll get a more comprehensive official statement from them that will clarify any outstanding questions.</p>
<p><a href="/swfobject/#download">Download SWFObject now.</a></p>
<p>UPDATE: As always, you&#8217;ll probably get a faster response to your support questions if you join and mail the <a href="http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com">SWFObject mailing list</a> instead of mailing me directly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/04/24/swfobject-nee-flashobject-1-4-released/feed/</wfw:commentRss>
		<slash:comments>130</slash:comments>
		</item>
		<item>
		<title>FlashObject to become SWFObject</title>
		<link>http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/</link>
		<comments>http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/#comments</comments>
		<pubDate>Fri, 21 Apr 2006 05:35:06 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flashobject]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/</guid>
		<description><![CDATA[A couple of months ago I was asked by Adobe to write an article about FlashObject for their Devnet site. I happily agreed, as the Devnet site is pretty high visibility in the Flash community, and it would really get &#8230; <a href="http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago I was asked by Adobe to write an article about <a href="">FlashObject</a> for their <a href="http://www.macromedia.com/devnet/" rel="external">Devnet site</a>. I happily agreed, as the Devnet site is pretty high visibility in the Flash community, and it would really get the word out about FlashObject.</p>
<p>So I wrote the article &#8211; nothing too spectacular, just a spiffed up version of the existing FlashObject page. Then I waited. Then came a very odd e-mail: their legal department didn&#8217;t like that I used the word &#8220;Flash&#8221; in the project name, and asked if I would be averse to changing it. Well, I&#8217;m not really attached to the name, so I considered it for a bit, but decided that changing the name would be too much hassle, especially since so many people are already using the script and it&#8217;s gained quite a word of mouth following. So I imagined that all the people that know about it would hear all about this new great script called SWFObject and think it was some new thing. I can see the conversation now. &#8220;No thanks, I don&#8217;t need to use SWFObject, I already use FlashObject, and it&#8217;s just fine.&#8221;</p>
<p>Well I asked Adobe to compromise, and possibly give me permission to use the Flash name. I offered to place a little tag-line along with all the information about it, something like &#8220;Flash is a registered trademark of the Adobe Corporation, used with permission.&#8221; (Or something like that, you get the point).</p>
<p>Well, a few weeks have gone by, and tonight I finally got the response back: No deal. Apparently Adobe is really clamping down on the people using the word &#8220;Flash&#8221; in their projects, even if they are open source. I&#8217;m not sure how this will affect other projects, or Flash communities (My guess is that communities like <a href="http://www.osflash.org/" rel="external">OSFlash</a> and <a href="http://chattyfig.figleaf.com/mailman/listinfo/flashcoders" rel="external">Flashcoders</a> will be fine, but anything that distributes a product with the name &#8220;Flash&#8221; will need to change &#8211; but this is just a guess).</p>
<p>Needless to say, I&#8217;m slightly annoyed by all of this, but in the end it shouldn&#8217;t really affect the project all that much (I hope). Soooo <strong>starting immediately, and as I find time to update the documentation and code downloads, FlashObject is now known as SWFObject.*</strong> I&#8217;ll be updating the main page to redirect to <a href="/swfobject/">http://blog.deconcept.com/swfobject/</a> in the next day or so. If you have links pointing to the old page, feel free to update the links and change your link text/other info to SWFObject.</p>
<p><small>* I&#8217;m not really a huge fan of the name SWFObject, but I want to keep the &#8216;Object&#8217; part in there to at least keep some semblance of recognition in there for the users who are already using the script, or have already heard about it. I also hate when people pronounce SWF as &#8220;swiff&#8221;, but since this is the internet, it will be hard to force people to call it S.W.F. Object. And that takes more time to say than &#8220;S.W.F. Object&#8221; anyway. So feel free to call it &#8220;Swiff Object&#8221; when talking about it &#8220;in real life.&#8221;</small></p>
<p><strong>UPDATE (4-27-2006):</strong> John Dowdell posted <a href="http://weblogs.macromedia.com/jd/archives/2006/04/adobe_trademark_1.cfm" rel="external">a bit more info about this</a> on his blog. <a href="http://www.adobe.com/misc/trade.html" rel="external">Go read the Adobe Trademark guidelines</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/feed/</wfw:commentRss>
		<slash:comments>73</slash:comments>
		</item>
		<item>
		<title>FlashObject Breeze presentation</title>
		<link>http://blog.deconcept.com/2006/04/20/flashobject-breeze-presentation/</link>
		<comments>http://blog.deconcept.com/2006/04/20/flashobject-breeze-presentation/#comments</comments>
		<pubDate>Thu, 20 Apr 2006 17:28:06 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/04/20/flashobject-breeze-presentation/</guid>
		<description><![CDATA[I gave a presentation to the Minnesota Flash Users Group last night all about FlashObject and the benefits of using it. It went really well aside from my technical issues &#8211; When I first logged in, it worked fine, but &#8230; <a href="http://blog.deconcept.com/2006/04/20/flashobject-breeze-presentation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I gave a presentation to the Minnesota Flash Users Group last night all about FlashObject and the benefits of using it. It went really well aside from my technical issues &#8211; When I first logged in, it worked fine, but after I adjusted my microphone, my browser crashed and then wouldn&#8217;t work at all after that. Firefox and Safari both would just hang when I tried to log in to the breeze room.</p>
<p>I ended up switching to my new Intel Mac Mini at the list minute and presented on that. But I guess Adobe hasn&#8217;t updated the Breeze screen sharing plugin to support the Intel macs yet, so I was stuck copy/pasting code into the whiteboard. I think it still turned out pretty well, so if you are new to FlashObject, this presentation might be a good overview of the advantages of using it.</p>
<p><a href="http://mmusergroup.breezecentral.com/p64707124/" rel="external">You can view the presentation here</a>. Enjoy! And thanks to the Minnesota User Group for asking me to present.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/04/20/flashobject-breeze-presentation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Today is ActiveX Black Tuesday</title>
		<link>http://blog.deconcept.com/2006/04/11/today-is-activex-black-tuesday/</link>
		<comments>http://blog.deconcept.com/2006/04/11/today-is-activex-black-tuesday/#comments</comments>
		<pubDate>Tue, 11 Apr 2006 14:46:19 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/04/11/today-is-activex-black-tuesday/</guid>
		<description><![CDATA[Today Microsoft will release their &#8216;Active Content&#8217; patch for Internet Explorer 6. From a recent blog post on the MS Security Response Center: The second issue is that we have a number of security vulnerabilities in IE that are scheduled &#8230; <a href="http://blog.deconcept.com/2006/04/11/today-is-activex-black-tuesday/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today Microsoft will release their &#8216;Active Content&#8217; patch for Internet Explorer 6. From a recent blog post on the <a href="http://blogs.technet.com/msrc/archive/2006/03/29/423560.aspx" rel="external">MS Security Response Center</a>:</p>
<blockquote cite="http://blogs.technet.com/msrc/archive/2006/03/29/423560.aspx"><p>The second issue is that we have a number of security vulnerabilities in IE that are scheduled to be addressed in our next release of security bulletins on Tuesday April 11, 2006.   <strong>As you know, in order to reduce the complexity of updates and to improve quality, we ship all IE updates as cumulative updates.  As a result, the April security updates will include the non-security ActiveX change to respond to the Eolas case.</strong></p></blockquote>
<p>If you&#8217;ve been following this at all since <a href="/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/">back in December</a>, you&#8217;ll already know that you can use <a href="/flashobject/">FlashObject</a> to get around these changes and your users won&#8217;t need to &#8216;activate&#8217; anything. But for those of you who are new to this issue, you can read an <a href="/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/">old blog post of mine</a> that covers all the details and links out to all the important sites you might need to check out. It also covers a small bug in the update that I&#8217;m hoping has been fixed in this latest release (the script debugging issue).</p>
<p>Hope everyone enjoys the update!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/04/11/today-is-activex-black-tuesday/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>A modern approach to Flash SEO</title>
		<link>http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/</link>
		<comments>http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/#comments</comments>
		<pubDate>Mon, 13 Mar 2006 12:37:37 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/</guid>
		<description><![CDATA[Search engine optimization is one of the most popular subjects when nerds sit around and talk about Flash. &#8220;Does Google index your swf files?&#8221; seems to be the most popular question, usually garnering plenty of &#8216;yes&#8216; and &#8216;no&#8217; and &#8216;maybe&#8217; &#8230; <a href="http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Search engine optimization is one of the most popular subjects when nerds sit around and talk about Flash. &#8220;Does Google index your swf files?&#8221; seems to be the most popular question, usually garnering plenty of &#8216;<a href="http://www.informit.com/articles/article.asp?p=454163&#038;seqNum=1" rel="external">yes</a>&#8216; and &#8216;no&#8217; and &#8216;maybe&#8217; answers. The real answer to this question, once and for all, is this: </p>
<p><em>It doesn&#8217;t matter</em>.</p>
<p>To understand this answer, you need to understand what Flash <em>is</em>. And to do that, you need to understand modern web development philosophy. First off, you need to embrace web standards. Semantic markup and separating content from style and behavior is the only way you should be building your sites. Many web standardistas have been recommending this method of web development for years, and rightly so. However, this post isn&#8217;t the place to go into the whys of this type of development, so I&#8217;ll skip that part and just say this about how it&#8217;s done: There are three areas of front-end web development: Content, Style, and Behavior. You should always keep these three things separated as much as possible.</p>
<p>That brings up the question: &#8220;Where does Flash fit into this three pillar method of web development?&#8221; Is it content? Is it behavior? Is it style? While it could be considered all three, most professional Flash developers will remove the content from their Flash movies and load it in using Flash remoting or XML files. That leaves us with style and behavior.</p>
<p>Style is added using CSS. Generally when you add images to your HTML that are purely presentational (no text or required content in them) you should add them in using CSS. In most cases you don&#8217;t want Google to index them because people don&#8217;t search the web for &#8216;top left rounded corner gif.&#8221; They search for content. Even if Google upgrades their crawler someday to read CSS files and index the images, they probably wouldn&#8217;t use the information for more than statistical analysis because of this.</p>
<p>Behavior is generally added using Javascript. Maybe you want a new window to open set to a certain size, or you want to use some fancy Ajax to let users rate something without refreshing the page. This should all be added <a href="http://www.onlinetools.org/articles/unobtrusivejavascript/" rel="external">unobtrusively</a>, and if the browser doesn&#8217;t support Javascript, it will hopefully still work. Unfortunately, not everyone considers this, and these days Javascript is becoming more and more of a requirement to use most websites. So you should always provide some sort of alternative for non-Javascript users. When it comes to indexing behavior, Google will for the most part not index your Javascript files. Even if it did, most web users would have no idea what the .js file they are looking at actually does. When using Javascript to change your document, Google will not read the &#8216;final&#8217; page, but only the raw HTML file. Google does not render Javascript <sup><a href="#note1">1</a></sup>.</p>
<p>Now that you know all of this, it&#8217;s time to look at how to treat your Flash content. Since we&#8217;ve determined we <em>don&#8217;t</em> want Google to index our swf files, but we <em>do</em> want it to index the content displayed inside them, what is the best way to go about this?</p>
<p>As stated before, if you are building Flash sites professionally, you probably move all your content out of your Flash movie and into an XML file or keep it in a database. This makes it much easier to allow Google to index this content by using progressive enhancement.</p>
<p>Progressive enhancement is a method of web development that goes hand in hand with Web Standards. You start with your HTML (your content), then add CSS (your look and feel), then add in additional behavior (Javascript, Ajax, Flash, any other interactivity that isn&#8217;t handled automatically by the browser).</p>
<p>The best way to add Flash progressively is by using Javascript, or more specifically, a script like <a href="/flashobject/">FlashObject</a>. First you lay out your page as if you aren&#8217;t using Flash. If you are using a database for your content, you can spit out that data as HTML where the Flash movie will go on the page (or maybe just a preview of the content, it&#8217;s up to you to show Google the content you would like indexed). Then you use FlashObject to replace this content only if the user has Javascript enabled and the required Flash plugin version.</p>
<p>Here&#8217;s a small example of what that might look like:</p>
<pre><code>&lt;div id="flashcontent"&gt;
    This is replaced by the Flash content if the user has the correct version of the Flash plugin installed.
    Place your HTML content in here and Google will index it just as it would normal HTML content (because it <em>is</em> HTML content!)
    Use HTML, embed images, anything you would normally place on an HTML page is fine.
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
    // &lt;![CDATA[
    var fo = new FlashObject("flashmovie.swf", "flashmovie", "300", "300", "8", "#FF6600");
    fo.write("flashcontent");
    // ]]&gt;
&lt;/script&gt;</code></pre>
<p>This causes Google to skip the Flash swf files and only index the HTML (the content!) you place on the page. You can place links to other pages, images, whatever you want Google to index, and when a viewer with a browser that supports Flash visits your site, they will then see the Flash content. This gives you full control and much greater predictability over what content Google will index. And if your content is pulled from a database that is editor controlled, your pages will update and be re-indexed as the content changes without the need to re-publish all your swf files.</p>
<p><small id="note1"><sup>1</sup> Currently Google does not render the Javascript on a page, but there are rumors that they are developing a new crawler based on Firefox (they employ a number of Mozilla foundation members) that will index pages based on how the browser sees them, instead of the raw HTML content. This means HTML hidden by CSS may not be indexed, and pages that are altered by Javascript after they load will be indexed how they appear to the user. <em>However</em>, this is all rumors and until it happens Google will ignore your Javascript content.</p>
<p>Note: In this article I use the &#8216;Google&#8217; name often, but it can be interchanged with any search engine, as they all work roughly the same way.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/feed/</wfw:commentRss>
		<slash:comments>517</slash:comments>
		</item>
		<item>
		<title>Using alternate content as content in Flash</title>
		<link>http://blog.deconcept.com/2006/02/27/using-alternate-content-flash/</link>
		<comments>http://blog.deconcept.com/2006/02/27/using-alternate-content-flash/#comments</comments>
		<pubDate>Mon, 27 Feb 2006 13:34:49 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/02/27/using-alternate-content-flash/</guid>
		<description><![CDATA[I&#8217;ve been going on and on about using progressive enhancement on your pages that use Flash ever since I released FlashObject. The idea is that you build your pages without Flash, then add in the Flash parts later using Javascript &#8230; <a href="http://blog.deconcept.com/2006/02/27/using-alternate-content-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been going on and on about using progressive enhancement on your pages that use Flash ever since I released <a href="/flashobject/">FlashObject</a>. The idea is that you build your pages without Flash, then add in the Flash parts later using Javascript if the user has the correct version of the Flash player. One of the really cool side effects of doing this is that Google will then index your alternate content (Google doesn&#8217;t know Javascript).</p>
<p><a href="http://www.ericwebster.net/2006/02/content_injection_in_flash_wit.php" rel="external">Today I saw somone taking this a bit further</a>: They were using <a href="http://www.mikeindustries.com/sifr/" rel="external">sIFR</a> to embed a Flash movie on the page, and then passing in the replaced HTML content into the Flash movie as a flashvar.</p>
<p>Now this is nothing new &#8211; Claus Wahlers created <a href="http://wahlers.com.br/claus/blog/seffs-to-flash-or-not-to-flash/" rel="external">SEFFS</a> a while back that does just this (I think in his example he loaded the entire XHTML document), and sIFR does this but on a very small scale.</p>
<p>Up until today I never really saw much of a benefit to doing something like this. Usually your site would be run from a database anyway, so you could output your navigation and page content from your database as alternate content, and then use that same data again for the XML file that your Flash movies would read. But today I think I finally realized how cool this might be: Imagine removing all the server calls from your Flash movies when they request their XML configuration files, or imagine saving the user&#8217;s bandwidth by not loading all that content twice.</p>
<p>So I came up with a proof of concept of this technique using FlashObject:</p>
<h3>How it works</h3>
<p>First, embed your Flash movie just as you normally would using FlashObject. Then, to pass the data into you Flash movie, you just need to add one line of code. The whole thing looks like this:</p>
<pre><code>var fo = new FlashObject("passdata.swf", "passdata", "300", "300", "8", "#ffffff");
fo.addVariable("xmlData", encodeURIComponent(document.getElementById("flashcontent").innerHTML));
fo.write("flashcontent");</code></pre>
<p>You can see that I&#8217;m simply taking the same element that I target with FlashObject, grabbing the <code>innerHTML</code> of that element, URL encoding it* and then passing it into Flash as the variable <code>xmlData</code>.</p>
<p>Once the data is in the Flash movie &#8211; It&#8217;s available on the first frame as <code>_root.xmlData</code>, we take that string, and create an XML object out of it. That code is very simple, and looks like this:</p>
<pre><code>var xml = new XML();
xml.ignoreWhite = true;
xml.parseXML(unescape(_root.xmlData));</code></pre>
<p>That&#8217;s it! You now have a nice and tidy XML object you can use to generate your Flash content, and it will always match your alternate content perfectly. Your users don&#8217;t have to download the content twice (once in the HTML, once in the XML file Flash would load, or duplicated in the swf) and you saved your server an extra call from the Flash movie.</p>
<p><a href="/code/passflashxml/flashdata.html">View a working example here</a>, and you can download all the files in the example <a href="/code/passflashxml/passflashxml.zip">here</a>.</p>
<p><small>* Using <code>encodeURIComponent</code> to support double byte characters.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/02/27/using-alternate-content-flash/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>FlashObject mailing list</title>
		<link>http://blog.deconcept.com/2006/02/01/flashobject-mailing-list/</link>
		<comments>http://blog.deconcept.com/2006/02/01/flashobject-mailing-list/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 03:15:24 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/02/01/flashobject-mailing-list/</guid>
		<description><![CDATA[Please note that the FlashObject mailing list has been retired, and the SWFObject mailing list has replaced it. FlashObject has been gaining a lot more popularity lately, and with it the number of requests for help has gone up steadily &#8230; <a href="http://blog.deconcept.com/2006/02/01/flashobject-mailing-list/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p class="note">Please note that the FlashObject mailing list has been retired, and the <a href="http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com">SWFObject mailing list</a> has replaced it.</p>
<p>FlashObject has been gaining a lot more popularity lately, and with it the number of requests for help has gone up steadily (what, my tutorials aren&#8217;t good enough? ;)). So I created a mailing list just for FlashObject related questions!</p>
<p>Sign up now by going <a href="http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com">here and filling out the form</a>.  (And make sure you watch your spam folder for the confirmation e-mail!)</p>
<p>Once you are signed up, send any problems or issues you might be having (it&#8217;s ALWAYS  better if you include code samples or a link to the page you are having issues with) or even new feature requests.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/02/01/flashobject-mailing-list/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>FlashObject 1.3 Released</title>
		<link>http://blog.deconcept.com/2006/01/17/flashobject-1-3-released/</link>
		<comments>http://blog.deconcept.com/2006/01/17/flashobject-1-3-released/#comments</comments>
		<pubDate>Tue, 17 Jan 2006 17:37:21 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2006/01/17/flashobject-1-3-released/</guid>
		<description><![CDATA[I have just released version 1.3 of FlashObject. Changes are as follows: [Changed] When calling FlashObject.write() you can now pass an HTMLElement reference. Previously you needed to pass a string (the Id of the element to write the Flash content &#8230; <a href="http://blog.deconcept.com/2006/01/17/flashobject-1-3-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just released version 1.3 of <a href="/flashobject/">FlashObject</a>. Changes are as follows:</p>
<ul>
<li>[Changed] When calling FlashObject.write() you can now pass an HTMLElement reference. Previously you needed to pass a string (the Id of the element to write the Flash content to)</li>
<li>[Changed] Made changes to the plugin detection routine that would cause a crash in browsers running certain versions of the Flash plugin. Read <a href="/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/">a comprehensive description of the issue and the fix</a>.</li>
<li>[New] You may now specify a specific URL to redirect the user to after they complete an ExpressInstall process. Previously the script would always redirect them to the page the Flash movie was embedded in, but when using a popup window this is not always the best solution. See the <a href="/flashobject/#expressinstall">ExpressInstall section of the FlashObject page</a> for more information.</li>
<li>[New] FlashObject now integrates seamlessly with the <a href="http://weblogs.macromedia.com/flashjavascript/" rel="external">Javascript Integration Kit</a>. More information on this is forthcoming in a new blog post.</li>
<li>[New] I&#8217;ve used <a href="http://alex.dojotoolkit.org/shrinksafe/">Dojo Shrinksafe</a> to strip out the extra space in the flashobject.js file. FlashObject now weighs in at just a hair over 6kb. Super tiny! The FlashObject &#8216;source code&#8217; (un-shunken Javascript) is included in the FlashObject zip file in the &#8216;source&#8217; folder. I also made a number of small syntax changes to reduce the size even more.</li>
</ul>
<p>I&#8217;ve updated the <a href="/flashobject/">FlashObject page</a> to reflect these changes. I recommend that everyone should upgrade if you are using any older version of FlashObject. If you are upgrading from v. 1.2, you can simply replace your flashobject.js file and you should be ready to go. Versions earlier than 1.2, you may need to make minor adjustments to your embed code (see the <a href="/2005/07/24/flashobject-1-2/">changes to v. 1.2</a> for help with that)</p>
<p><strong>UPDATE (1-25-2006):</strong> Found a small bug in this latest version that caused the Flash movie to not load on IE 5.01 on PC. The bug has been fixed and the zip/source has been updated. Please update to the latest version if you are using 1.3 and have a lot of users using IE 5.01 (does anyone have a high number of those anymore?). The new version number is 1.3b.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2006/01/17/flashobject-1-3-released/feed/</wfw:commentRss>
		<slash:comments>191</slash:comments>
		</item>
		<item>
		<title>Internet Explorer Eolas changes and the Flash plugin</title>
		<link>http://blog.deconcept.com/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/</link>
		<comments>http://blog.deconcept.com/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/#comments</comments>
		<pubDate>Thu, 15 Dec 2005 19:30:56 +0000</pubDate>
		<dc:creator>Geoff</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[flashobject]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.deconcept.com/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/</guid>
		<description><![CDATA[Microsoft recently announced (again) that they will be changing the way Internet Explorer handles plugins (more info here). So how does all of this affect you being a web developer? Basically, the functionality changes work like this: When using an &#8230; <a href="http://blog.deconcept.com/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Microsoft <a href="http://msdn.microsoft.com/ieupdate/default.aspx" rel="external">recently announced</a> (<a href="http://www.microsoft.com/presspass/press/2003/oct03/10-06eolaspr.mspx" rel="external">again</a>) that they will be changing the way Internet Explorer handles plugins (<a href="http://www.webstandards.org/buzz/archive/2005_12.html#a000594" rel="external">more info here</a>).</p>
<h3>So how does all of this affect you being a web developer?</h3>
<p>Basically, the functionality changes work like this:</p>
<p>When using an <code>applet</code>, <code>object</code>, or <code>embed</code> tag to insert a plugin into an HTML document, that plugin will not allow user interaction until the user clicks on it. Microsoft calls this process &#8220;<a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp" rel="external">Activating an ActiveX Control&#8217;s Interface.</a>&#8221;</p>
<p>In the case of the Flash plugin, it means that your Flash movies will not work until a user &#8216;activates&#8217; it first by clicking on it. <s>The details are still a bit fuzzy, and I can&#8217;t find a developer preview of IE 6 or IE 7 that include this new functionality to test this new functionality (If you find one, please <a href="mailto:geoff@deconcept.com">let me know</a>)</s> (see below). This is a slight improvement over the previous &#8216;fix&#8217; which was a small dialog prompt for each ActiveX control on a page. Now you just have to click on each control to activate it (if you want to interact with it).</p>
<p>Microsoft says &#8220;<a href="http://news.com.com/Microsoft+tweaks+browser+to+avoid+liability/2100-1012_3-5980658.html" rel="external">We believe over the next six months, most customers will be running copies of Internet Explorer with this behavior.</a>&#8221; The changes will be rolled into IE 6 through security updates to Windows, and included in IE 7.</p>
<h3>But that&#8217;s so stupid! How do I fix it?</h3>
<p>Thankfully, Micosoft offers a fairly easy way around all this nonsense: Embed your Flash movies using Javascript. Head over to the <a href="/flashobject/">FlashObject page</a>* and start using it (you should be using it anyway, <a href="/2005/10/18/flashobject-turns-1/">everyone else is</a>!). You may also want to retrofit your old websites that don&#8217;t use Javascript since this change will affect every website. If you are using quicktime, you can always use my <a href="/2005/01/26/web-standards-compliant-javascript-quicktime-detect-and-embed/">QTObject script</a> which works the same way that FlashObject does, but for the Quicktime plugin.</p>
<p><strong>UPDATE (1-22-2006):</strong> <a href="http://developer.apple.com/internet/ieembedprep.html" rel="external">Apple has recently released a new script</a> that is similar to my QTObject script to prepare people for the upcoming IE changes.</p>
<p><strong>* UPDATE (2-21-2006):</strong> After testing with a <a rel="external" href="http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp">patch</a> (search the page for &#8216;English&#8217; to find the download link) that Microsoft released recently released (and with some help from Dan Freeman) it turns out that you must have &#8216;Disable Script Debugging&#8217; checked in the Advanced options of IE in order for the controls to be activated as they are embedded. If you have Script debugging on (it&#8217;s off by default) then you will still need to activate each ActiveX control on the page.</p>
<p>Also: Macromeida/Adobe has a new <a href="http://www.macromedia.com/devnet/activecontent/" rel="external">Active Content Developer Center</a>.</p>
<p><strong>UPDATE (3-1-2006):</strong> Microsoft has released the update. There&#8217;s more information and a nice list of possible issues you might have after installing the update on this <a href="http://support.microsoft.com/kb/912945/en-us/" rel="external">Microsoft KB article page</a>.</p>
<p><strong>UPDATE (3-24-2006):</strong> Looks like <a href="http://www.cio.com/blog_view.html?CID=19468" rel="external">Microsoft is set to roll out the Eolas changes to everyone around April 11th</a>. Get ready.</p>
<p><strong>UPDATE (3-29-2006)</strong> Microsoft <a href="http://blogs.technet.com/msrc/archive/2006/03/29/423560.aspx" rel="external">announced their future plans</a> for releasing the patch to customers today.</p>
<p><strong>UPDATE (5-9-2006):</strong> Adobe posted what looks like a very rare edge case regarding an <a href="http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=4f91f9b8" rel="external">out of date jscript.dll</a> causing users to always activate ActiveX controls, even if they are embedded using Javascript in the proper way.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deconcept.com/2005/12/15/internet-explorer-eolas-changes-and-the-flash-plugin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

