<?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>Gilluminate &#187; Flash</title>
	<atom:link href="http://www.gilluminate.com/tag/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gilluminate.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 Jun 2010 02:50:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>copy/paste deterrent no longer works in Flash Player 10</title>
		<link>http://www.gilluminate.com/2009/02/19/copypaste-deterrent-no-longer-works-in-flash-player-10/</link>
		<comments>http://www.gilluminate.com/2009/02/19/copypaste-deterrent-no-longer-works-in-flash-player-10/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 01:53:03 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.gilluminate.com/?p=5329</guid>
		<description><![CDATA[Thanks to Robert who gave me this bit of information. Apparently in Flash Player 10 the clipboard can only be invoked by user interaction. My copy/paste deterrent&#8212;that I previously blogged about and subsequently became my most popular and most frequently visited post&#8212;was based on the idea that the clipboard would be written to several times [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to Robert who gave me this bit of information.</p>
<p>Apparently in Flash Player 10 the clipboard can only be invoked by user interaction. My <a href="http://blog.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/">copy/paste deterrent</a>&mdash;that I previously blogged about and subsequently became my most popular and most frequently visited post&mdash;was based on the idea that the clipboard would be written to several times per second because it was fired in the EnterFrame event. So, needless to say, it will not work in the latest version of the Flash Player Plugin.</p>
<p>Here&#8217;s what Adobe has to say about it on <a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes_02.html#head31">their website</a>:</p>
<blockquote><p>&#8220;In Flash Player 9, ActionScript could set data on the system Clipboard at any time. With Flash Player 10, the System.setClipboard() method may be successfully called only through ActionScript that originates from user interaction. This includes actions such as clicking the mouse or using the keyboard. This user interaction requirement also applies to the new ActionScript 3.0 Clipboard.generalClipboard.setData() and Clipboard.generalClipboard.setDataHandler() methods.&#8221;</p></blockquote>
<p>Maybe someone will be able to take my idea and figure out a way to detect &#8220;user interaction&#8221; outside the 1px by 1px flash file I was using to accomplish the task. Then maybe we can get it working again.</p>
<p>Oh well, it was fun while it lasted!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2009/02/19/copypaste-deterrent-no-longer-works-in-flash-player-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe MAX 2007</title>
		<link>http://www.gilluminate.com/2007/10/02/adobe-max-2007/</link>
		<comments>http://www.gilluminate.com/2007/10/02/adobe-max-2007/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 00:50:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Fireworks]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/10/03/adobe-max-2007</guid>
		<description><![CDATA[I&#8217;m at Adobe MAX this week. I&#8217;m currently sitting in the sneak peek session and blogging it with my phone (so forgive any typos or misunderstandings). Out of over 600 entries, the MAX award&#8217;s people&#8217;s choice was given to eBay Desktop. Now for the sneaks: Adobe Visual Communicator is new to Adobe. We all got [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at Adobe MAX this week. I&#8217;m currently sitting in the sneak peek session and blogging it with my phone (so forgive any typos or misunderstandings).</p>
<p>Out of over 600 entries, the MAX award&#8217;s people&#8217;s choice was given to eBay Desktop.</p>
<p>Now for the sneaks:</p>
<p>Adobe Visual Communicator is new to Adobe. We all got a copy when we got here but had no idea what it was until the session explained that its pretty much a way to create video as though you are in a TV studio with teleprompter and effects. You can also do live streaming. It handles green screening, multiple cameras etc. with just a single simple laptop. This is the first time we&#8217;ve been able to play with a sneak peek at home!</p>
<p>An online diary service called Coconiki (or something) being used internally at Adobe is a tool to create an online diary for close knit friends. I guess it&#8217;s more than blogging software because it has voice, video, photos, music, etc., etc.</p>
<p>Flash Home for Mobile wants to change poor usability in cell phones. This will boot the phone directly into flash instead of the native interface. It contains a slick interface with animations, etc. It can also connect to the web. Flash Home is similar to AIR in that it&#8217;s integrated with the phone, not the phone&#8217;s browser. You can make it show a custom image based on the area code of the person calling.</p>
<p>Photoshop Express is a consumer *online* version of photoshop. Not intended to replace Photoshop for hardcore users, but rather a consumer product for the average joe. Uses Flash player as the delivery platform. Red eye removal, rubber stamping, color replacement, distort, and a pretty cool &#8220;timeline&#8221; history (undo) interface were demonstrated.</p>
<p>Some new (or not) features in FireWorks &#8220;Next&#8221; will allow you to actually export Flex (or AIR) app code directly from Fireworks using built in Flex Components.</p>
<p>ColdFusion can be used to create AIR apps. Or something&#8230;not only am I not a ColdFusion user, the guy presenting barely spoke English. No offence Hemant.</p>
<p>Web to print apps will be possible using Flex and Indesign servers(?) where a user can update a document online and it can be spit out beautifully via PDF.</p>
<p>Future version of Flash may include a new stage core which will allow you to play flv video on the stage during development  time. You could tweak the videos while they are playing! New tweening tools will allow you to monkey with a tween visually on the stage rather than on the timeline and is transferable with the object. Flash will also have IK capabilities!!! Killer!</p>
<p>Flash and PDF can now talk to each other using JavaScript and ActionScript. Therefore Acrobat collaboration can happen over connect.</p>
<p>Building Flex applications on linux will now be possible (not just using a text editor) using a Flex Builder for Linux. This is  available *right now* on Adobe labs as an Alpha product (very early version).</p>
<p>An experimental technology that allows you to use C/C++ to do some XSLT stuff with Flash was demonstrated. Essentially you could extend ActionScript with C++, Python, Ruby, etc. in Flash for many uses, and use the libs or protocals for those inside of Flash.</p>
<p>The final presentation was by Shai Avadan showing off his now YouTube made famous technology which allows you do to lossless image resizing. If you haven&#8217;t seen his video yet, it&#8217;s well worth it. Your jaw will drop to the floor. Adobe immediately hired the guy ans are planning to use his idea in future versions of Photoshop.</p>
<p>That&#8217;s about it. I&#8217;m going to the party now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/10/02/adobe-max-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight Sucks Already</title>
		<link>http://www.gilluminate.com/2007/09/07/silverlight-sucks-already/</link>
		<comments>http://www.gilluminate.com/2007/09/07/silverlight-sucks-already/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 21:28:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/09/07/silverlight-sucks-already</guid>
		<description><![CDATA[I decided to give the so called &#8220;Flash Killer&#8221; [Silverlight](http://silverlight.net/) a whirl and see what all the so called &#8220;hype&#8221; is about. As a huge fan of halo, I ended up attempting to view the [Halo 3 videos](http://silverlight.net/showcase/) on the showcase page. Only one problem: The video itself asked me for my birthdate (I assume [...]]]></description>
			<content:encoded><![CDATA[<p>I decided to give the so called &#8220;Flash Killer&#8221; [Silverlight](http://silverlight.net/) a whirl and see what all the so called &#8220;hype&#8221; is about. As a huge fan of halo, I ended up attempting to view the [Halo 3 videos](http://silverlight.net/showcase/) on the showcase page. Only one problem: The video itself asked me for my birthdate (I assume to make sure I&#8217;m over 13, but probably also MS way of tracking demographic) which absolutely would not accept *any* input in my Firefox Browser. I switched over to IE7 and sure enough, it worked like a charm. Lame, Microsoft, just lame!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/09/07/silverlight-sucks-already/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Flash text boxes being outlined unintentionally</title>
		<link>http://www.gilluminate.com/2007/06/27/flash-text-boxes-being-outlined-unintentionally/</link>
		<comments>http://www.gilluminate.com/2007/06/27/flash-text-boxes-being-outlined-unintentionally/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 15:10:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/06/27/flash-text-boxes-being-outlined-unintentionally</guid>
		<description><![CDATA[I have a flash animation being used on the homepage of one of my websites that has a few text boxes that rotate/fade in and out of each other. For the longest time, when I publish this movie to the web, the text box has been showing up with a faint line at the top [...]]]></description>
			<content:encoded><![CDATA[<p>I have a flash animation being used on the homepage of one of my websites that has a few text boxes that rotate/fade in and out of each other. For the longest time, when I publish this movie to the web, the text box has been showing up with a faint line at the top and bottom; sort of a lighter colored line than the actual background color. I tried all sorts of things to get rid of it including moving the box to different locations, resizing the box, changing colors, embedding text&#8230;..anything I could think of!</p>
<p>Well today I finally stumbled across the answer to the problem and it appears to be a bug in Flash. If the text box is set to &quot;Anti-alias for readability&quot; the problem appears, but if it is set to &quot;Anti-alias for animation&quot; it goes away. Go figure. Since the two do not seem to change the way the text looks at all, it works just fine as the latter. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/06/27/flash-text-boxes-being-outlined-unintentionally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash hangs while loading standard profiles</title>
		<link>http://www.gilluminate.com/2007/05/03/flash-hangs-while-loading-standard-profiles/</link>
		<comments>http://www.gilluminate.com/2007/05/03/flash-hangs-while-loading-standard-profiles/#comments</comments>
		<pubDate>Thu, 03 May 2007 21:04:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/05/03/flash-hangs-while-loading-standard-profiles</guid>
		<description><![CDATA[Whenever I try to load Macromedia Flash lately it takes for EVER to load. You know how the splash screen gives updated text as to what is currently loading? Mine is hanging on loading standard profiles. Anyone out there know what might be causing such a disturbance in the force? A google search tells me [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I try to load Macromedia Flash lately it takes for EVER to load. You know how the splash screen gives updated text as to what is currently loading? Mine is hanging on <em>loading standard profiles</em>. Anyone out there know what might be causing such a disturbance in the force? A <a href="http://www.google.com/search?q=flash+%22loading+standard+profiles%22">google search</a> tells me nothing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/05/03/flash-hangs-while-loading-standard-profiles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using SWFObject for Flash Version Tracking</title>
		<link>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/</link>
		<comments>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 16:28:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Omniture]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/03/09/using-swfobject-for-flash-version-tracking</guid>
		<description><![CDATA[At my company, we use Omniture SiteCatalyst for our web analytics/tracking. Unfortunately, Omniture does not give user&#8217;s Flash Version statistics in their standard reports like Google Analytics does. On the other hand, Omniture gives you the freedom to create custom reports that you can determine on your own using their provided JavaScript code. I am [...]]]></description>
			<content:encoded><![CDATA[<p>At my company, we use <a href="http://www.omniture.com/">Omniture</a> <a href="http://www.omniture.com/products/web_analytics/sitecatalyst">SiteCatalyst</a> for our web analytics/tracking. Unfortunately, Omniture does not give user&#8217;s Flash Version statistics in their standard reports like <a href="http://www.google.com/analytics/">Google Analytics</a> does. On the other hand, Omniture gives you the freedom to create <a href="http://www.omniture.com/services/custom">custom reports</a> that you can determine on your own using their provided JavaScript code.</p>
<p>I am already using <a href="http://blog.deconcept.com/swfobject/">SWFObject</a> to load the flash piece on our homepage to users with a specified version. So I figured I could hack that code a bit in order to pull the version it was already determining for me, and plug it into the Omniture code.</p>
<p>After mulling through the SWFObject code, I finally was able to run this page successfully, which will alert the exact version of flash I am using:</p>

<div class="wp_codebox"><table><tr id="p3212"><td class="code" id="p321code2"><pre class="xml" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;html</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=iso-8859-1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;swfobject.js&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;script</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/javascript&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
alert(deconcept.SWFObjectUtil.getPlayerVersion().major+
&quot;.&quot;+deconcept.SWFObjectUtil.getPlayerVersion().minor+
&quot;.&quot;+deconcept.SWFObjectUtil.getPlayerVersion().rev);
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Basically, you can use deconcept.SWFObjectUtil.getPlayerVersion().major to get the major version, etc.</p>
<p>Once I got that working, I was able to use that same concept to plug it into my tracking code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/03/09/using-swfobject-for-flash-version-tracking/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Prevent copy/paste and Print Screen online</title>
		<link>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/</link>
		<comments>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 12:33:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2006/04/25/prevent-copy-paste-and-print-screen-online</guid>
		<description><![CDATA[NOTE: This script is no longer supported in Flash Player 10. (It was fun while it lasted!) Let&#8217;s face it, there is such a thing as sensitive material on the web. I was recently put to the task of protecting a certain page on our company&#8217;s intranet from being redistributed outside the company. In other [...]]]></description>
			<content:encoded><![CDATA[<div style="border: 1px solid #333333; padding: 3px; width: 375px; text-align: center;">
<h3 style="font-size: 14pt; color: red; margin-bottom: 0px; padding-bottom: 0px;">NOTE: This script is no longer supported in Flash Player 10.</h3>
<p style="margin-top: 0px; padding-top: 0px;">(It was fun while it lasted!)</p>
</div>
<p>Let&#8217;s face it, there is such a thing as sensitive material on the web. I was recently put to the task of protecting a certain page on our company&#8217;s intranet from being redistributed outside the company. In other words, we have a page on the intranet that is so sensitive, upper managment doesn&#8217;t want our employees to be capable of sending it to anyone outside the company.</p>
<p>So, I started thinking, what are the ways an average, non-techie employee, could reproduce this information? Since it&#8217;s on our password/firewall protected intranet, the risk of someone just emailing the link isn&#8217;t an issue. Of course the obvious is that they could copy and paste the text into an email and send it that way. They could also press the <em>Print Screen</em> button and paste a snapshot of the page as an email attachment or whatever.</p>
<p>I decided that beyond more &#8220;advanced&#8221; measures (like <em>view source</em> then <em>save as</em>), the clipboard was the method most people know how to use. So, the question became &#8220;how to disable the clipboard?&#8221;</p>
<p>I started tinkering around with <a href="http://www.htmlgoodies.com/beyond/javascript/article.php/3458851">JavaScript</a> <a href="http://www.geekpedia.com/tutorial126_Clipboard-cut-copy-and-paste-with-JavaScript.html">solutions</a>, attempting to intercept any ctrl+c or PrintScreen commands and over-ride them with a call to write a message to the clipboard: &#8220;You&#8217;re fired! Pack your things and go home.&#8221; which would in turn be pasted into their email if they attempted it. But this was klugy at best. First, JavaScript really needs a form field to have focus in order to fire an onClick type event. I figured the best way around that was to run as an onBlur and onFocus in the &lt;body&gt; tag and just over-ride the clipboard whether they tried to copy or not. This seemed to be a great solution until I realized that for some unknown reason, when you select text and then blur (remove focus) a browser window, it doesn&#8217;t actually fire any onBlur commands. Not only that, but it&#8217;s <a href="http://www.mozilla.org/xpfe/xptoolkit/introClipDD.html">a big mess</a> to add anything to the clipboard with Firefox (IE makes it really, really <a href="http://msdn.microsoft.com/en-us/library/ms535220%28VS.85%29.aspx">easy</a>). I suppose that Firefox doesn&#8217;t make writing to the clipboard easy due to security issues, and I&#8217;m not going to complain about any attempt to make my <a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=18286&amp;t=75">favorite browser</a> more secure.  ;)</p>
<p>Then I remembered an Adobe Flash (that still sounds weird, doesn&#8217;t it?) application that I worked on a few years ago that used Flash&#8217;s built in clipboard functions. Booya! I cranked up Flash and wrote the following simple and very easy actionscript in the first line of the first frame:</p>
<p class="box">this.onEnterFrame = function(){<br />
System.setClipboard(&#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);<br />
}</p>
<p class="box"><em>(Added 08/28/2007: for the new <strong>CS3</strong> use:)</em></p>
<p>addEventListener(Event.ENTER_FRAME, onEnterFrame);<br />
function onEnterFrame(E){</p>
<p>System.setClipboard(&#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);<br />
}</p>
<p>I then set the movie size to 1px wide and 1px high and published. I then placed the Flash somewhere on the sensitive document.</p>
<p>Since I left my movie at the default 12 frames per second, the text &#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221; will be set on the clipboard 12 times per second. Go ahead, try to beat that time with ctrl+c and then ctrl+v!</p>
<p>As invasive as this method is, it works. As long as that page is open <em>even in the background</em>, it will prevent any copying and pasting and even Print Screen and paste. The only problem is, that it requires Flash v6 or higher, which is required in my company to use many of our Flash based applications. But just in case, I left the following IE only code as a backup:</p>
<p class="box">&lt;body onBlur=&#8217;window.clipboardData.setData(&#8220;Text&#8221;, &#8220;As long as this page is open your copy/paste functionality has been disabled.&#8221;);&#8217;&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2006/04/25/prevent-copy-paste-and-print-screen-online/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>AOL vs. Flash Pre-Loader</title>
		<link>http://www.gilluminate.com/2005/07/06/aol-vs-flash-pre-loader/</link>
		<comments>http://www.gilluminate.com/2005/07/06/aol-vs-flash-pre-loader/#comments</comments>
		<pubDate>Wed, 06 Jul 2005 11:43:07 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2005/07/06/aol-vs-flash-pre-loader</guid>
		<description><![CDATA[I&#8217;ve been using an image pre-loader that I wrote myself for several years now, whenever I need to load an external jpeg into my movie. I&#8217;ve also been in the habbit of re-naming my .jpg images to .jjj in order to trick AOL&#8217;s image compression &#8220;feature.&#8221; What I never expected is that AOL would also [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using an image pre-loader that I wrote myself for several years now, whenever I need to load an external jpeg into my movie. I&#8217;ve also been in the habbit of re-naming my <a href="http://groups-beta.google.com/group/macromedia.flash/browse_thread/thread/529356d257462a09/b4e95cac886c0dea?q=.jjj+aol&amp;rnum=1#b4e95cac886c0dea">.jpg images to .jjj</a> in order to trick AOL&#8217;s image compression &#8220;feature.&#8221;</p>
<p>What I never expected is that AOL would also find a way to break my pre-loader! As far as I can tell, AOL is somehow and for some reason tacking on an extra kilobyte or so to the actual size of my images.</p>
<p>Like most pre-loaders, I am looping through looking at the total bytes loaded and comparing that with the total bytes. The problem is that in AOL (I&#8217;ve only tested 9.0 &#8220;Security Edition&#8221;) when the image has loaded what appears to be 100% of the image, the total bytes loaded is larger than the total bytes. Since my pre-loader was set to fade in the image when total kilobytes loaded was equal to total kilobytes (kbl==tkb), my pre-loader would hang waiting for them to be equal when in fact they were not. I assume that more than one kilobyte was loading everytime my script would loop, and therefore never registered the exact number equal to tkb it just skipped on past.</p>
<p>To fix this problem, I changed my script to fade the image in when the total kilobytes loaded was equal to <strong>or greater than</strong> the total kilobytes (kbl&gt;=tkb) and the problem went away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2005/07/06/aol-vs-flash-pre-loader/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>using &#8216;set variable&#8217; to store a new array in a sharedObject BUG</title>
		<link>http://www.gilluminate.com/2005/03/25/using-set-variable-to-store-a-new-array-in-a-sharedobject-bug/</link>
		<comments>http://www.gilluminate.com/2005/03/25/using-set-variable-to-store-a-new-array-in-a-sharedobject-bug/#comments</comments>
		<pubDate>Fri, 25 Mar 2005 10:31:15 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2005/03/25/using-set-variable-to-store-a-new-array-in-a-sharedobject-bug</guid>
		<description><![CDATA[PROBLEM&#160; Today I ran into a rather perplexing bug in Flash when I tried to create/write to a shared object. I needed to create an array named after an ID and then store 3 values into that array. The idea is that each ID would have its own array with its own 3 values. Since [...]]]></description>
			<content:encoded><![CDATA[<p><strong>PROBLEM</strong>&nbsp; Today I ran into a rather perplexing bug in Flash when I tried to create/write to a <a href="http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary648.html">shared object</a>. I needed to create an array named after an ID and then store 3 values into that array. The idea is that each ID would have its own array with its own 3 values. Since the name of the array would depend on which ID we were dealing with, I resorted to using the <a href="http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary645.html">set variable</a> command in order to use a variable as the name of the array like this:</p>
<p class="box">myData = sharedobject.getLocal(&quot;myData&quot;, &quot;/&quot;);<br />set(&quot;myData.data.&quot;+ID, new Array());<br />eval(&quot;myData.data.&quot;+ID)[0] = value1;<br />eval(&quot;myData.data.&quot;+ID)[1] = value2;<br />eval(&quot;myData.data.&quot;+ID)[2] = value3;</p>
<p>But to my dismay, not only was nothing being written to the shared object, the shared object wasn&#8217;t even being created!</p>
<p><strong>SOLUTION:</strong>&nbsp; The solution that I came up with isn&#8217;t great, but it works. I figured out through much trial and error that unless something else is written to the shared object without using Set Variable, Set Variable won&#8217;t work. Not only that but if you set, for example:</p>
<p class="box">myPersonalData.data.test = true</p>
<p>you will only be able to write to the shared object a single time because next time, since myPersonalData.data.test is already set to true, nothing changes. In order to work around this I used the following solution:</p>
<p class="box">myData = sharedobject.getLocal(&quot;myData&quot;, &quot;/&quot;);<br />myData.data.lastIDStored=ID;<br />set(&quot;myData.data.&quot;+ID, new Array());<br />eval(&quot;myData.data.&quot;+ID)[0] = value1;<br />eval(&quot;myPersonalData.data.&quot;+ID)[1] = value2;<br />eval(&quot;myData.data.&quot;+ID)[2] = value3;</p>
<p>The reason this works so well is because if I&#8217;m creating a new array, I&#8217;m sure the ID has never been used before and therefore will never be the last ID stored.</p>
<p>The problem only exists when creating a new array, not for changing the array, so if the last ID is the same as the new ID it won&#8217;t matter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2005/03/25/using-set-variable-to-store-a-new-array-in-a-sharedobject-bug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Embedding Flash While Supporting Standards (and without javaScript)</title>
		<link>http://www.gilluminate.com/2004/12/08/embedding-flash-while-supporting-standards-and-without-javascript/</link>
		<comments>http://www.gilluminate.com/2004/12/08/embedding-flash-while-supporting-standards-and-without-javascript/#comments</comments>
		<pubDate>Wed, 08 Dec 2004 12:08:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2004/12/08/embedding-flash-while-supporting-standards-and-without-javascript</guid>
		<description><![CDATA[An even better improvement to the Flash Satay and Flash Javay methods I&#8217;ve been looking at the Flash Satay method of maintaining valid markup using flash (the &#60;embed&#62; tag commonly used for non-IE browsers is no longer supported by current versions of HTML and XHTML). It always seemed a little wacky and time consuming to [...]]]></description>
			<content:encoded><![CDATA[<h3>An even better improvement to the Flash Satay and Flash Javay methods</h3>
<p>I&#8217;ve been looking at the <a href="http://www.alistapart.com/articles/flashsatay/">Flash Satay</a> method of maintaining valid markup using flash (the &lt;embed&gt; tag commonly used for non-IE browsers is no longer supported by current versions of HTML and XHTML). It always seemed a little wacky and time consuming to have to load your flash content into a container .swf and was not appealing to me at all. The <a href="http://www.alistapart.com/comments/flashsatay/P250/#258">Flash Javay</a> method tries to address this problem, but I never liked the idea of using that much javaScript either. I mean, haven&#8217;t we spent the past few years trying to come up with a Flash detection that doesn&#8217;t use javaScript? The Javay method seems like a step backward, not forward.</p>
<p>Before I share my newly found solution to both problems, let me share this little newly found secret about Internet Explorer that might be useful to you in many other applications other than embedding Flash. Using the following code will only show up in Internet Explorer browsers:</p>
<p><code>&lt;!--[if IE]&gt;You are using IE!&lt;![endif]--&gt;</code></p>
<p>Now that we&#8217;ve got that out of the way, lets discuss what I&#8217;ve dubbed the Flash Gillay method. (Because everyone who comes up with a modified version of the Satay method has given it a new name, I&#8217;ve decided to name this one after myself in hopes for fame and fortune!) The general idea is to use the &lt;object&gt; tag exactly as it is commonly used, but to replace the &lt;embed&gt; tag with the Satay formatted &lt;object&gt; tag. Putting the Satay format inside the common format will work fine for browsers that would otherwise need the &lt;embed&gt; tag without any other code to help it out. For example, the following code will work in FireFox/Mozilla/Netscape without any problems:</p>
<p><code>&lt;object</p>
<p>classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"</p>
<p>codebase="http://download.macromedia.com</p>
<p>/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"</p>
<p>width="400" height="300" id="movie" align=""&gt;</p>
<p>&lt;param name="movie" value="movie.swf" /&gt;</p>
<p>&lt;object type="application/x-shockwave-flash"</p>
<p>data="movie.swf"  width="400" height="300"&gt;</p>
<p>&lt;/object&gt;</p>
<p>&lt;/object&gt;</code></p>
<p>Notice that there&#8217;s no need for a container movie.</p>
<p>Now of course, IE browsers are going to CHOKE on this trying endlessly to load the second object. Here&#8217;s where the above mentioned trick comes in handy. Without using any Javascript at all, we can hide the second object from IE browsers by using the following:</p>
<p><code>&lt;object</p>
<p>classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"</p>
<p>codebase="http://download.macromedia.com</p>
<p>/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"</p>
<p>width="400" height="300" id="movie" align=""&gt;</p>
<p>&lt;param name="movie" value="movie.swf" /&gt;</p>
<p>&lt;!--[if !IE]&gt; &lt;--&gt;</p>
<p>&lt;object type="application/x-shockwave-flash"</p>
<p>data="movie.swf"  width="400" height="300"&gt;</p>
<p>&lt;/object&gt;</p>
<p>&lt;!--&gt; &lt;![endif]--&gt;</p>
<p>&lt;/object&gt;</code></p>
<p>And as for the need for an alternate image or text to appear if Flash is not installed, you can now take it a step further and be even more standards compliant than the Satay method by making your alt text readable by screen readers:</p>
<p><code>&lt;object</p>
<p>classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"</p>
<p>codebase="http://download.macromedia.com</p>
<p>/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"</p>
<p>width="400" height="300" id="movie" align=""&gt;</p>
<p>&lt;param name="movie" value="movie.swf" /&gt;</p>
<p>&lt;!--[if !IE]&gt; &lt;--&gt;</p>
<p>&lt;object type="application/x-shockwave-flash"</p>
<p>data="movie.swf"  width="400" height="300"&gt;<br />
Description of Flash Content for screen readers</p>
<p>&lt;/object&gt;</p>
<p>&lt;!--&gt; &lt;![endif]--&gt;</p>
<p>&lt;!--[if IE]&gt;</p>
<p>Description of Flash Content for screen readers</p>
<p>&lt;![endif]--&gt;</p>
<p>&lt;/object&gt;</code></p>
<p>Notice the use of &lt;&#8211;&gt; and &lt;!&#8211;&gt; to trick non IE browsers into thinking that their respective lines end the comment and continue to render what&#8217;s inside the IF statement.</p>
<p>Now you can use the latest recommended <a href="http://www.macromedia.com/software/flash/download/detection_kit/">Flash detection</a> methods making it un-necessary to have your alt content point to a flash download page.</p>
<p>I have tested this method on IE 6.0, IE 5.5, Firefox 1.0, Mozilla 1.5, Netscape 7.0, Opera 7.1, Safari 1.0.2, IE 5.2 Mac, and yes, even Netscape 4.8. If you see any flaws in this method, I&#8217;d love to hear about it via email (I apologize for the lack of commenting capabilities on this blog, I&#8217;m still working on it).</p>
<p>This method can be seen in practice at <a href="http://www.gilluminate.com/">http://www.gilluminate.com/</a></p>
<p><em>(12-21-2004 NOTE: Thanks to <a href="http://www.striderweb.com/">Stephen Rider</a> for pointing out to me that about 8 months prior to this blog this method already existed as the <a href="http://ln.hixie.ch/?start=1081798064&amp;count=1">Hixie Method</a>. I maintain that I wasn&#8217;t aware of the Hixie Method at the original writing of this blog and apologize for the repeat.)</em></p>
<p><em>(01-17-2005 NOTE: If you plan to use the SetVariable command, you can still use id=&#8221;" for the IE version but you should use name=&#8221;" for the other version.)</em></p>
<p><em>(02-01-2005 NOTE: Comments are now turned on.)</em></p>
<p><em>(05-17-2005 NOTE: For information on why this method is <em>more</em> standards compliant than the Satay method, see the W3C <a href="http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.3.1">Rules for rendering objects</a>. Also, if IE followed these rules completely, they would not choke on the inner object tag, but only render the outter, and there would be no need for the extra IE only code.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2004/12/08/embedding-flash-while-supporting-standards-and-without-javascript/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
	</channel>
</rss>
