<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>daklab</title>
	
	<link>http://derekknox.com/daklab</link>
	<description>Design and Development Tips, Tricks, and Experiments</description>
	<lastBuildDate>Sat, 05 May 2012 05:12:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/daklab" /><feedburner:info uri="daklab" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Quick Tip: Step by Step Screen Capture Made Easy</title>
		<link>http://derekknox.com/daklab/2012/05/05/quick-tip-step-by-step-screen-capture-made-easy/</link>
		<comments>http://derekknox.com/daklab/2012/05/05/quick-tip-step-by-step-screen-capture-made-easy/#comments</comments>
		<pubDate>Sat, 05 May 2012 05:12:00 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[capture utility]]></category>
		<category><![CDATA[easy capture]]></category>
		<category><![CDATA[easy screen cap]]></category>
		<category><![CDATA[easy screen capture]]></category>
		<category><![CDATA[pc recorder]]></category>
		<category><![CDATA[problems recorder]]></category>
		<category><![CDATA[problems step recorder]]></category>
		<category><![CDATA[screen cap]]></category>
		<category><![CDATA[screen cap utility]]></category>
		<category><![CDATA[screen capture]]></category>
		<category><![CDATA[screen record]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[step capture]]></category>
		<category><![CDATA[step recorder]]></category>
		<category><![CDATA[step utility]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=814</guid>
		<description><![CDATA[I was recently informed of a very handy tool for recording and easily sharing instructions on how to accomplish a task (or set of tasks), step by step, on a PC. Specifically the tool comes pre-installed with the Window 7 OS and it is called the Problem Steps Recorder. You can simply use Windows Search [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently informed of a very handy tool for recording and easily sharing instructions on how to accomplish a task (or set of tasks), step by step, on a PC. Specifically the tool comes pre-installed with the Window 7 OS and it is called the <em>Problem Steps Recorder</em>. You can simply use Windows Search and type &#8220;Problem Steps Recorder&#8221; to access and launch the tool. Once launched you simply do the following&#8230;</p>
<ol>
<li>Hit the <em>Start Record</em> button</li>
<li>Use your PC, program, or set of programs (each mouse click will register with the application and take both a screen capture of your monitor(s) as well as record meta data involving the context of the click)</li>
<li>Hit the <em>Stop Record</em> button</li>
<li>Save the output file</li>
</ol>
<p>&nbsp;<br />
The output file is saved as a zipped folder which contains a .mht (<a href="http://en.wikipedia.org/wiki/MHTML">MHTML</a>) file. This file can then be viewed in a browser. This makes the instructions both accessible, easy to share, and easy to digest (as the file contains step-by-step screen captures). I think this is a very cool and easy to use utility. Despite the fact that this utility is inferior to video screen capture software, it is much cheaper, lighter, and accessible. I see many use cases for this tool, but I know PC help desk and PC customer service agents could benefit greatly from its use (for both providing instructions to clients and capturing steps from them). A simple Google search can lead you to stand alone versions that work on XP or Vista (I&#8217;m unsure if any versions of OSX have a similar product or even a better solution for that matter). Hope you find some good uses for it, peace. </p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/05/05/quick-tip-step-by-step-screen-capture-made-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: How to Find Your IP Address</title>
		<link>http://derekknox.com/daklab/2012/04/19/quick-tip-how-to-find-your-ip-address/</link>
		<comments>http://derekknox.com/daklab/2012/04/19/quick-tip-how-to-find-your-ip-address/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 04:02:21 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[address]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[internet ip]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[ip address]]></category>
		<category><![CDATA[phone ip address]]></category>
		<category><![CDATA[tablet ip address]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=800</guid>
		<description><![CDATA[If you are on an internet connected device, be that a smart phone, tablet, or your computer; you can easily find out the IP Address of the device like so&#8230; Google it! Google will provide you with the IP Address of the device you are using by simply querying Google search with one of the [...]]]></description>
			<content:encoded><![CDATA[<p>If you are on an internet connected device, be that a smart phone, tablet, or your computer; you can easily find out the IP Address of the device like so&#8230; Google it! Google will provide you with the IP Address of the device you are using by simply querying Google search with one of the following&#8230;</p>
<ul>
<li>ip address</li>
<li>my ip address</li>
<li>get ip address</li>
<li>what is my ip address</li>
</ul>
<p>&nbsp;<br />
I think you get the idea. Anyway, just a cool trick I stumbled upon.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/04/19/quick-tip-how-to-find-your-ip-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: How to Create Transparent Apps in Android</title>
		<link>http://derekknox.com/daklab/2012/04/18/tutorial-how-to-create-invisible-apps-in-android/</link>
		<comments>http://derekknox.com/daklab/2012/04/18/tutorial-how-to-create-invisible-apps-in-android/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 08:06:50 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[android arduino]]></category>
		<category><![CDATA[android invisible]]></category>
		<category><![CDATA[android transparent]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[app destroys itself]]></category>
		<category><![CDATA[invisible]]></category>
		<category><![CDATA[invisible android]]></category>
		<category><![CDATA[invisible app]]></category>
		<category><![CDATA[invisible style]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java for android]]></category>
		<category><![CDATA[styles.xml]]></category>
		<category><![CDATA[transparent app]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=681</guid>
		<description><![CDATA[*This post assumes an intermediate knowledge of Android Development.  Introduction I&#8217;ve had some ideas for personal apps floating around my head the past few months, but I hadn&#8217;t gotten around to building any of them until now. There were numerous times I found myself using an app on my phone to execute a single task [...]]]></description>
			<content:encoded><![CDATA[<p><em>*This post assumes an intermediate knowledge of Android Development. </em></p>
<p><strong>Introduction</strong></p>
<p>I&#8217;ve had some ideas for personal apps floating around my head the past few months, but I hadn&#8217;t gotten around to building any of them until now. There were numerous times I found myself using an app on my phone to execute a single task or two, but I felt as though I didn&#8217;t need to actually launch the app and use a UI (I just wanted to execute a small subset of functionality within the app). I wanted to simply click a button to execute some action within an app, but not launch the app visibly and then have to manually exit out and destroy it. Call me lame, but I felt as though I was clicking/touching buttons more than I really needed to. This led me to the idea of an <em>invisible</em> app. I knew of Widgets obviously, but they didn&#8217;t fit my requirements. I was unsure if my idea was even possible, but I knew I wanted my app to abide (yes, The Dude does) by two things&#8230;</p>
<ol>
<li>Lightweight in memory consumption (must use minimal resources <u>and</u> it must kill itself &#8211; to free up system resources)</li>
<li>Invisible/transparent (no UI)</li>
</ol>
<p>&nbsp;<br />
Basically, I wanted to click an app icon on one of my home screens and have the app do the following, in order&#8230;</p>
<ol>
<li>Launch app (invisible/transparent)</li>
<li>Execute some action(s)</li>
<li>Destroy itself (to free up memory)</li>
</ol>
<p>&nbsp;<br />
I am aware that Android Widgets provide similar functionality, but <em>Step 3</em> was not possible (correct me if I&#8217;m wrong here). Again, my specs require the app to destroy itself, not run in the background like Widgets can. As a result of these requirements, I figured out a way to achieve my goal. I leave you with <em>How to Create Transparent Apps with Android</em>.</p>
<p><span id="more-681"></span></p>
<p><strong>Step 1 &#8211; Styles.xml</strong></p>
<p>The first thing you need to do is create a custom style to apply to your app. This custom style is what will allow your app to be <em>invisible</em>. To accomplish this, simply create a new XML file in your <em>res/values</em> folder and name it <em>styles.xml</em>. The full code for the file is below&#8230;</p>
<p>[xml]<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<resources></p>
<style name="Invisible" parent="@android:style/Theme">
	    <item name="android:windowBackground">@android:color/transparent</item>
		<item name="android:windowIsTranslucent">true</item>
	    <item name="android:windowIsFloating">true</item>
	    <item name="android:windowNoTitle">true</item>
	    <item name="android:windowContentOverlay">@null</item>
	    <item name="android:backgroundDimEnabled">false</item>
	</style>
<p></resources><br />
[/xml]</p>
<p><strong>Step 2 &#8211; Update the AndroidManifest.xml</strong></p>
<p>Now that we have our <em>styles.xml</em> created and saved we need to update our <em>AndroidManifest.xml</em> file. Updating this file ensures our app will use the <em>invisible</em> style we just created. To accomplish this, simply add the <em>android:theme=&#8221;@style/Invisible&#8221;</em> definition to your launch <em>activity</em> element. Here is an example&#8230;</p>
<p>[xml]<br />
<activity<br />
	android:name=".MyActivity"<br />
	android:label="@string/app_name"<br />
	android:theme="@style/Invisible"<br />
><br />
&#8230;<br />
</activity><br />
[/xml]</p>
<p><strong>Step 3 &#8211; Execute Action(s)</strong></p>
<p>Now that we&#8217;ve correctly ensured our Activity can launch invisibly, we will want to execute some action(s). In the <em>onCreate()</em> method of your launch Activity class you can trigger the methods that will execute your desired actions. Here is an example&#8230;</p>
<p>[java]<br />
@Override<br />
public void onCreate(Bundle savedInstanceState)<br />
{<br />
	super.onCreate(savedInstanceState);<br />
	setContentView(R.layout.main);</p>
<p>	//execute your app actions<br />
	executeActions();</p>
<p>	//trigger the app onDestroy() method (the last step in the Activity Lifecycle)<br />
	finish();</p>
<p>	//officially kill the process, and thus your app and its resources in memory<br />
	Process.killProcess(Process.myPid());<br />
}<br />
[/java]</p>
<p>When replacing the <em>executeActions()</em> with your own method(s) it may be wise to implement the snippet below. It enables your app to be &#8220;click through-able&#8221;. Basically, touches aren&#8217;t registered by your app so UI&#8217;s below your app can still be interacted with. Pretty cool if you ask me.</p>
<p>[java]<br />
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); // click through-able<br />
[/java]</p>
<p><strong>Step 4 &#8211; Kill Your App</strong></p>
<p>Once your app has executed the desired action(s) you call <em>finish()</em> (line 11 above), which triggers the <em>onDestroy()</em> method to execute. This method correlates to the last step in the <a href="http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle" target="_blank">Activity Lifecycle</a>. Then you call <em>Process.killProcess(Process.myPid());</em> which officially kills the process your app runs in (line 14 above). Having executed this last method ensures your app has officially been destroyed. You can go into <em>Settings > Applications > Manage Applications</em> and go to your app to see that it is no longer running. Success!</p>
<p><strong>Step 5 &#8211; Conclusion</strong></p>
<p>In retrospect this is a pretty easy thing to accomplish. Taking this concept a step further, you could easily not call <em>finish()</em> or <em>Process.killProcess(Process.myPid());</em> until after a time delay or after getting confirmation from a service that a specific request went through. Here are some examples ideas I came up with&#8230;</p>
<ul>
<li>Use your phone as a remote to turn on an application on your laptop/desktop</li>
<li>Use your phone as a remote/detonator to send a command(s) to an Arduino project</li>
<li>Send an SMS message (or any message for that matter) with a prefilled body and recipient with a single click/touch</li>
<li>Query a server for the current status of an account (and have it automatically send you a formatted email or SMS message) with a single click/touch</li>
</ul>
<p>&nbsp;<br />
You could also show a <a href="http://developer.android.com/reference/android/widget/Toast.html" target="_blank">Toast</a> or post a <a href="http://developer.android.com/reference/android/app/Notification.html" target="_blank">Notification</a> as confirmation that your app launched and executed your desired actions. Let me know of any cool ideas or use cases you come up with. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/04/18/tutorial-how-to-create-invisible-apps-in-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Setting Up AIR 3.2 for Mobile in FlashDevelop</title>
		<link>http://derekknox.com/daklab/2012/04/12/tutorial-setting-up-air-3-2-for-mobile-in-flashdevelop/</link>
		<comments>http://derekknox.com/daklab/2012/04/12/tutorial-setting-up-air-3-2-for-mobile-in-flashdevelop/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 04:58:10 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[AIR 3.2]]></category>
		<category><![CDATA[AIR Development]]></category>
		<category><![CDATA[AIR for Mobile]]></category>
		<category><![CDATA[AIR Mobile]]></category>
		<category><![CDATA[AIR SDK]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Flash Mobile]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[FlashDevelop AIR Settings]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Mobile Programming]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=644</guid>
		<description><![CDATA[Introduction If you are interested in setting up AIR 3.2 in FlashDevelop, I highly recommend checking out this document created by Rosario Azzarello of http://www.gamedesign.ch/. The directions worked great for the most part, though there were three things I needed to change to make it work. I would suggest trying his directions first, but if [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>If you are interested in setting up AIR 3.2 in FlashDevelop, I highly recommend checking out <a title="FlashDevelop + Starling + Air 3.2 + Stage3D + Android = Love!" href="https://docs.google.com/document/pub?id=1j1bnaHEQNAVy0mieRi0kHhrMOoXEzEGDv3kjV0GvgWE" target="_blank">this document</a> created by Rosario Azzarello of <a href="http://www.gamedesign.ch/"  target="_blank">http://www.gamedesign.ch/</a>. The directions worked great for the most part, though there were three things I needed to change to make it work. I would suggest trying his directions first, but if it doesn&#8217;t work you can try what I did. There were three core things I had to do to get it working&#8230;</p>
<p><span id="more-644"></span></p>
<p><strong>First</strong></p>
<p><strong></strong>In <em>Step 5</em> of the document I instead made a copy of my <em>flexsdk </em>directory (found in <em>C:/FlashDevelop/Tools) </em>and I renamed it <em>flexsdk_air3_2</em>. I then overwrote the <em>flexsdk_air3_2 </em>directory with the downloaded AIR 3.2 SDK. As a result I have both the AIR 3.1 SDK (which came installed with FlashDevelop 4.0.1 RTM) and my currently setup AIR 3.2 SDK as targets.</p>
<p><strong>Second</strong></p>
<p><strong></strong>I had to change what was done in <em>Step 9.b.</em> Here I instead selected the <em>Manage&#8230; </em>button. Next I did the following&#8230; (reference the image below)</p>
<ol>
<li>Selected the <em>&#8230;</em> button in the <em>Settings</em> dialog</li>
<li>Selected the <em>Add</em> button in the <em>InstalledSDK Collection Editor</em> dialog</li>
<li>Selected the <em>&#8230;</em> button in the <em>InstalledSDK Collection Editor</em> dialog and updated the path to the  <em>flexsdk_air3_2</em> directory (mentioned above)</li>
</ol>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/04/flashdevelop_flexsdk_setup.jpg"><img class="alignleft size-full wp-image-654" style="margin: 15px 0px;" title="flashdevelop_flexsdk_setup" src="http://derekknox.com/daklab/wp-content/uploads/2012/04/flashdevelop_flexsdk_setup.jpg" alt="" width="780" height="500" /></a></p>
<p><strong>Third (Last)</strong></p>
<p>I opened up the <em>SetupSDK.bat</em> file in FlashDevelop (for editing, not running it) and updated the path to point to my <em>flexsdk_air3_2</em> directory as opposed to the default <em>flexsdk</em> directory. The change looks like this&#8230;</p>
<pre><strong>From:</strong></pre>
<blockquote>
<pre>:: Path to Flex SDK
set FLEX_SDK=C:\Program Files (x86)\FlashDevelop\Tools\flexsdk</pre>
</blockquote>
<pre><strong>To:</strong></pre>
<blockquote>
<pre>:: Path to Flex SDK
set FLEX_SDK=C:\Program Files (x86)\FlashDevelop\Tools\flexsdk_air3_2</pre>
</blockquote>
<p><strong>Conclusion</strong></p>
<p>After doing those three things I was able to publish to my Android phone. Incorporating Captive Runtime worked as well (which is sweet excluding the increase in file size). FlashDevelop makes it super easy to get up and running with its <em>AIR Mobile AS3 App</em> template, and this fact just adds to my respect of FlashDevelop. It is a rad programming IDE!</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/04/12/tutorial-setting-up-air-3-2-for-mobile-in-flashdevelop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: How to Target Flash Player 11.2 in Flash Professional CS5</title>
		<link>http://derekknox.com/daklab/2012/03/09/tutorial-how-to-target-flash-player-11-2-in-flash-professional-cs5/</link>
		<comments>http://derekknox.com/daklab/2012/03/09/tutorial-how-to-target-flash-player-11-2-in-flash-professional-cs5/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 07:32:13 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Flash CS5]]></category>
		<category><![CDATA[Flash CS5.5]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash Player 11]]></category>
		<category><![CDATA[Flash Player 11.2]]></category>
		<category><![CDATA[Flash Professional CS5]]></category>
		<category><![CDATA[Flash Professional CS5.5]]></category>
		<category><![CDATA[Flash Professional target 11.2]]></category>
		<category><![CDATA[FP11]]></category>
		<category><![CDATA[FP11.2]]></category>
		<category><![CDATA[FP11.2 target]]></category>
		<category><![CDATA[target Flash Player 11.2]]></category>
		<category><![CDATA[target FP11.2]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=418</guid>
		<description><![CDATA[* These directions are for Windows machines but they should work for Mac as well. The only difference should be the file system paths. Introduction I&#8221;ve been testing the new capabilities of Flash Player 11.2 (and FP11 for that matter) and the addition of Stage3D is sick. You can get a breakdown of all the new [...]]]></description>
			<content:encoded><![CDATA[<p>* <em>These directions are for Windows machines but they should work for Mac as well. The only difference should be the file system paths.</em></p>
<p><strong>Introduction</strong></p>
<p>I&#8221;ve been testing the new capabilities of Flash Player 11.2 (and FP11 for that matter) and the addition of Stage3D is sick. You can get a breakdown of all the new additions from the release notes found <a title="FP11.2 Release Notes" href="http://download.macromedia.com/pub/labs/flashplatformruntimes/shared/air3-2_flashplayer11-2_p6_releasenotes.pdf" target="_blank">here</a>.</p>
<p>Anyway, I&#8217;ve noticed on forums that &lt;many&gt;some&lt;/many&gt; people don&#8217;t use Flash Builder (I use/love <a title="FlashDevelop" href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a> by the way) and have a hard time targeting newer runtimes of the Flash Player in Flash Professional. As a result I want to show you how to target newer Flash Player runtimes (specifically FP11.2) using Flash Professional CS5. I can attest that this solution works for both Flash Pro CS5 and CS5.5. It may just as easily work for Flash Pro CS4 and earlier, I just haven&#8217;t tested it (let me know if you get it to work). This also is not specific to targeting FP11.2, you should be able to do this for any new Flash Player release. Let&#8217;s get started.</p>
<p><span id="more-418"></span></p>
<p><strong>Step 1 &#8211; Get the Goods</strong></p>
<p>First you need to download the following from <a title="Plugin and SWC" href="http://labs.adobe.com/downloads/flashplayer11-2.html" target="_blank">Adobe Labs</a>. Reference the image below.</p>
<ol>
<li>Flash Player 11.2 Plugin for your Browser.</li>
<li>Flash Player 11.2 playerglobal.swc.</li>
</ol>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-1.jpg"><img class="alignleft size-full wp-image-508" style="margin: 15px 0px;" title="Step-1" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-1.jpg" alt="" width="780" height="500" /></a></p>
<p>The first download is important because it enables you to view what you&#8217;ve created targeting Flash Player 11.2 in a browser. Currently, Stage3D content cannot be viewed through publishing in Flash Professional, it must be viewed in a browser.</p>
<p>The second download is important because the playerglobal.swc is what provides the new API&#8217;s in Flash Player 11.2 for you to publish against. In essence, it is the new code available to you to compile into your SWF.</p>
<p><strong>Step 2 &#8211; Hook Up Flash Professional &#8211; Place the playerglobal.swc</strong></p>
<p>Now you need to make some quick changes so you can prep Flash Professional for <strong>Step 3</strong>. Reference the images below.</p>
<ol>
<li>Go to your &#8220;Actionscript 3.0&#8243; folder for Flash Professional, for me on Windows 7 it is <em>C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\ActionScript 3.0. </em>This folder is responsible for providing the &#8220;playerglobal.swc&#8221; files (which again contain the AS3 code to publish against for a specific Flash Player target) to Flash Professional. Now create a new folder in this directory, I named mine <em>FP11_2</em>.</li>
<li>Now place your downloaded playerglobal.swc in this folder you just created. If when you downloaded the SWC its name was not <em>playerglobal.swc</em> rename it so.</li>
</ol>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-2_1.jpg"><img class="alignleft size-full wp-image-521" style="margin: 15px 0px;" title="Step-2_1" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-2_1.jpg" alt="" width="780" height="500" /></a></p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-2_2.jpg"><img class="alignleft size-full wp-image-522" style="margin: 15px 0px;" title="Step-2_2" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-2_2.jpg" alt="" width="780" height="500" /></a></p>
<p><strong>Step 3 &#8211; Hook Up Flash Professional &#8211; Target the playerglobal.swc</strong></p>
<p>Now you need to set up an XML file so Flash Professional knows where to look to publish against the Flash Player 11.2 playerglobal.swc you just set up. Reference the images below.</p>
<ol>
<li>So go into your &#8220;Players&#8221; folder for Flash Professional, for me on Windows 7 it is <em>C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\Configuration\Players. </em>Here you should duplicate the XML file with the highest Flash Player target (the file I copied was <em>FlashPlayer10_1.xml</em>) and rename it. I renamed mine to match the folder I created in <strong>Step 2</strong>, I named it <em>FlashPlayer11_2.xml.</em></li>
<li>Now open this new file in any text editor you&#8217;re comfortable with and change the following XML elements to match what is italicized below.</li>
<li>Change the XML player element to <em>&lt;player id=&#8221;FlashPlayer11.2&#8243; version=&#8221;15&#8243; asversion=&#8221;3&#8243;&gt;. </em>Version 15 is Flash Player 11.2, Version 14 is Flash Player 11.1, Version 13 is Flash Player 11, Version 12 is Flash Player 10.2, Version 11 is Flash Player 10.1, and Version 10 is Flash Player 10 &#8211; FYI.</li>
<li>Change the <em>&lt;name&gt; </em>element to <em>&lt;name&gt;Flash Player 11.2&lt;/name&gt;. </em>This name shows up in Flash Professional when choosing your .FLA project target.</li>
<li>Finally change the <em>as3 </em>attribute of the <em>&lt;playerDefinitionPath&gt; </em>element to <em>&lt;playerDefinitionPath as3=&#8221;$(AppConfig)/ActionScript 3.0/FP11_2/playerglobal.swc&#8221; /&gt;. </em>This is what tells Flash Professional where to find the Flash Player 11.2 <em>playerglobal.swc </em>you set up in <strong>Step 2</strong> above. Just make sure the folder name matches, again I named my folder <em>FP11_2</em> and this is defined in the <em>as3 </em>attribute of the <em>&lt;playerDefinitionPath&gt; </em>element you must change.</li>
</ol>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-3_1.jpg"><img class="alignleft size-full wp-image-528" style="margin: 15px 0px;" title="Step-3_1" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-3_1.jpg" alt="" width="780" height="500" /></a></p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-3_2-5.jpg"><img class="alignleft size-full wp-image-530" style="margin: 15px 0px;" title="Step-3_2-5" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-3_2-5.jpg" alt="" width="780" height="500" /></a></p>
<p><strong>Step 4 &#8211; Open Flash Professional (Restart if Open)</strong></p>
<p>Simply create a new AS3 project and go to <em>File &gt; Publish Settings</em> and select the drop down for the player version. Select <em>Flash Player 11.2</em> as highlighted below.<br />
<a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-41.jpg"><img class="alignleft size-full wp-image-543" style="margin: 15px 0px;" title="Step-4" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-41.jpg" alt="" width="780" height="500" /></a></p>
<p><strong>Step 5 &#8211; Create a Test .FLA</strong></p>
<p>Save this FLA and follow the directions below to set up a quick test. Reference the image below.</p>
<ol>
<li>Name the current layer <em>txt</em>, create a TextField instance on this layer, and ensure in the Properties Panel that it is a <em>Classic </em>TextField instance and that it has an instance name of <em>txt.</em></li>
<li>Create a new layer and title it <em>actions</em> (normally I would use a Document class but for this tutorial I will use an Actions layer).</li>
<li>Open the Actions Panel (<em>Window &gt; Actions </em>or use the shortcut <em>F9</em>) and paste the following code on Frame 1 of the <em>actions</em> layer.</li>
</ol>
<p>[as3]<br />
import flash.system.Capabilities;<br />
import flash.events.MouseEvent;</p>
<p>//have your txt TextField instance print the Flash Player version that is currently running your SWF<br />
txt.text = &#8220;Version = &#8221; + Capabilities.version;</p>
<p>//try to use the new MouseEvent.RIGHT_CLICK event introduced in FP11.2<br />
stage.addEventListener(MouseEvent.RIGHT_CLICK, onClick, false, 0, true );<br />
function onClick(e:MouseEvent):void<br />
{<br />
    txt.x = Math.random() * stage.stageWidth;<br />
    txt.y = Math.random() * stage.stageHeight;<br />
}<br />
[/as3]</p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-5_1-2.jpg"><img class="alignleft size-full wp-image-563" style="margin: 15px 0px;" title="Step-5_1-2" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-5_1-2.jpg" alt="" width="780" height="500" /></a></p>
<p><strong>Step 6 &#8211; Publish</strong></p>
<p>Now we will publish a SWF and an HTML page to test in the browser. Make sure you run this test in a browser where you&#8217;ve downloaded the Flash Player 11.2 plugin mentioned in <strong>Step 1</strong> above. Remember, Flash Professional currently does not allow you to preview your SWF content (that targets new APIs) without running it in a browser. As a result when you hit <em>Ctrl + Enter</em> (<em>Control &gt; Test Movie &gt; Test</em>) in Flash Professional you may get this error.</p>
<p>[as3]<br />
TypeError: Error #2007: Parameter type must be non-null.<br />
    at flash.events::EventDispatcher/addEventListener()<br />
    at flash.display::Stage/addEventListener()<br />
    at FlashPlayer11_fla::MainTimeline/frame1()<br />
[/as3]</p>
<p>This error can be ignored. Again the real test is when you run your content in the browser. Reference the image below.</p>
<ol>
<li>Now publish your test by selecting <em>File &gt; Publish</em>. A SWF and an HTML file should be created. Now simply open the HTML file in a text editor and replace <em>&lt;param name=&#8221;wmode&#8221; value=&#8221;window&#8221; /&gt; </em>with <em>&lt;param name=&#8221;wmode&#8221; value=&#8221;direct&#8221; /&gt;</em> (notice that you need to define this change in two places). By changing the <em>wmode </em>to <em>direct</em> you are giving the Flash Player plugin permission to allow your content to be rendered with the GPU of the machine (if possible, check <a title="Supported GPU List" href="http://kb2.adobe.com/cps/921/cpsid_92103.html" target="_blank">here</a> to see if your GPU is supported).</li>
<li>Now simply run this HTML file in a browser where you have the Flash Player 11.2 plugin installed.</li>
</ol>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-6_1.jpg"><img class="alignleft size-full wp-image-579" style="margin: 15px 0px;" title="Step-6_1" src="http://derekknox.com/daklab/wp-content/uploads/2012/03/Step-6_1.jpg" alt="" width="780" height="500" /></a><br />
You can download the test I created <a title="FP11.2 Test" href="http://www.derekknox.com/downloads/Flash Player 11.2 Test.zip" target="_blank">here</a>.</p>
<p><strong>Conclusion</strong></p>
<p><strong></strong>Now when you test your HTML file you should see the version printed out in your <em>txt</em> TextField. You can also use the right button of your mouse to position the <em>txt</em> TextField instance randomly on the stage. Congrats! You&#8217;ve officially targeted FP11.2 with Flash Professional. Now dig into the new APIs and create some Stage3D content!</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/03/09/tutorial-how-to-target-flash-player-11-2-in-flash-professional-cs5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Quickly Viewing and Disabling Plugins in Google Chrome</title>
		<link>http://derekknox.com/daklab/2012/03/03/quick-tip-quickly-viewing-and-disabling-plugins-in-google-chrome/</link>
		<comments>http://derekknox.com/daklab/2012/03/03/quick-tip-quickly-viewing-and-disabling-plugins-in-google-chrome/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 04:24:11 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[disabling plugins]]></category>
		<category><![CDATA[enabling plugins]]></category>
		<category><![CDATA[flash player plugin]]></category>
		<category><![CDATA[google chrome browser]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugin disable]]></category>
		<category><![CDATA[plugin enable]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[running plugins]]></category>
		<category><![CDATA[viewing plugins]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=423</guid>
		<description><![CDATA[* This post assumes you are using the Google Chrome browser. If you use the Chrome browser (which I highly recommend) you can quickly see what version of Flash Player, Unity3D, QuickTime, Java, and all other plugins you are running in your browser. You can also quickly disable or enable these plugins with a single click. This comes in [...]]]></description>
			<content:encoded><![CDATA[<p>* <em>This post assumes you are using the Google Chrome browser.</em></p>
<p>If you use the <a title="Chrome Browser Download" href="https://www.google.com/chrome" target="_blank">Chrome</a> browser (which I highly recommend) you can quickly see what version of Flash Player, Unity3D, QuickTime, Java, and <span style="text-decoration: underline;">all</span> other plugins you are running in your browser. You can also quickly disable or enable these plugins with a single click. This comes in handy personally as I have numerous versions of the Flash Player installed for testing and experimenting purposes. You simply enter &#8220;<em>chrome://plugins/&#8221;</em> in the address bar of Google Chrome and hit enter. I&#8217;d also recommend right-clicking this tab once opened and selecting &#8220;Pin Tab&#8221;. This way you can quickly access the list of your plugins to enable/disable them.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/03/03/quick-tip-quickly-viewing-and-disabling-plugins-in-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Tracking Browser Content Window Size with Google Analytics (2 of 2)</title>
		<link>http://derekknox.com/daklab/2012/02/04/tutorial-tracking-browser-content-window-size-with-google-analytics-2-of-2/</link>
		<comments>http://derekknox.com/daklab/2012/02/04/tutorial-tracking-browser-content-window-size-with-google-analytics-2-of-2/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 21:11:41 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Browser Content Window]]></category>
		<category><![CDATA[GA]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Sizing]]></category>
		<category><![CDATA[Tracking]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=344</guid>
		<description><![CDATA[* This post assumes you have a Google Analytics account. Introduction This is a follow up to my previous post Tutorial: Tracking Browser Content Window Size with Google Analytics (1 of 2) where I explained how to incorporate a tracking scheme to read and record your site&#8217;s visitors browser dimensions (as opposed to screen resolution). This is powerful because [...]]]></description>
			<content:encoded><![CDATA[<p>* <em>This post assumes you have a Google Analytics account.</em></p>
<p><strong>Introduction</strong></p>
<p>This is a follow up to my previous post <em><a title="Tracking Browser Content Window Size with Google Analytics (1 of 2)" href="http://derekknox.com/daklab/2012/01/25/tutorial-tracking-browser-content-window-size-with-google-analytics/">Tutorial: Tracking Browser Content Window Size with Google Analytics (1 of 2)</a></em> where I explained how to incorporate a tracking scheme to read and record your site&#8217;s visitors browser dimensions (as opposed to screen resolution). This is powerful because you get data which informs you of the viewing area of the browsers of your visitors. You can come to your own conclusions with how to use your data, but you can quickly get an idea if certain content is out of your visitors viewing area and/or if your layout and design are as efficient as they could be. That said, I will now explain how to view this data in Google Analytics.</p>
<p><span id="more-344"></span></p>
<p><strong>Icon</strong></p>
<p><em><a href="http://derekknox.com/daklab/wp-content/uploads/2012/02/ArrowDot.jpg"><img class="alignleft size-full wp-image-359" title="ArrowDot" src="http://derekknox.com/daklab/wp-content/uploads/2012/02/ArrowDot.jpg" alt="" width="60" height="69" /></a></em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>This icon is used in the images below and it highlights the areas of focus referenced in the steps.</p>
<p><strong>Step 1 &#8211; Log In and Standard Reporting</strong></p>
<p>First you need to log in to your Google Analytics account that you&#8217;ve synced with the Tracking ID that you set up via the previous post. Then you need to ensure you are viewing the <em>Standard Reporting </em>(<em>icon 1</em>) tab as shown below.</p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step1.jpg"><img class="alignleft size-full wp-image-390" title="GA_Tracking_2_of_2_step1" src="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step1.jpg" alt="" width="780" height="500" /></a></p>
<p>&nbsp;</p>
<p><strong>Step 2 &#8211; Content and Overview</strong></p>
<p>Then you need to select the <em>Content (<em>icon 1</em>) </em>drop down and select <em>Overview (<em>icon 2</em>)</em>.  Again here is an image for reference.</p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step2.jpg"><img class="alignleft size-full wp-image-393" title="GA_Tracking_2_of_2_step2" src="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step2.jpg" alt="" width="780" height="500" /></a></p>
<p>&nbsp;</p>
<p><strong>Step 3 &#8211; Event Category and Browser Dimensions</strong></p>
<p>Next you need to select <em>Event Category (<em>icon 1</em>) </em>followed by the selection of <em>Browser Dimensions (<em>icon 2</em>). </em>From here you will be able to view the stats of the Event Actions that have been tracked. Again, these are <em>Initial Size</em> and <em>Resize.</em></p>
<p><a href="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step3.jpg"><img class="alignleft size-full wp-image-394" title="GA_Tracking_2_of_2_step3" src="http://derekknox.com/daklab/wp-content/uploads/2012/02/GA_Tracking_2_of_2_step3.jpg" alt="" width="780" height="193" /></a></p>
<p>&nbsp;</p>
<p>That is it. If you have any questions feel free to comment. Peace.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/02/04/tutorial-tracking-browser-content-window-size-with-google-analytics-2-of-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Tracking Browser Content Window Size with Google Analytics (1 of 2)</title>
		<link>http://derekknox.com/daklab/2012/01/25/tutorial-tracking-browser-content-window-size-with-google-analytics/</link>
		<comments>http://derekknox.com/daklab/2012/01/25/tutorial-tracking-browser-content-window-size-with-google-analytics/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 03:40:19 +0000</pubDate>
		<dc:creator>dknox</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Browser Content Window]]></category>
		<category><![CDATA[GA]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Sizing]]></category>
		<category><![CDATA[Tracking]]></category>

		<guid isPermaLink="false">http://derekknox.com/daklab/?p=287</guid>
		<description><![CDATA[* This post assumes you are familiar with Google Analytics. It also assumes you are familiar with HTML and Javascript. Introduction Google Analytics is super powerful and the fact it is free is amazing. If you don&#8217;t know what it is and you work in Web Development it is a must that you introduce yourself to [...]]]></description>
			<content:encoded><![CDATA[<p>* <em>This post assumes you are familiar with Google Analytics. It also assumes you are familiar with HTML and Javascript.</em></p>
<p><strong>Introduction</strong></p>
<p>Google Analytics is super powerful and the fact it is free is amazing. If you don&#8217;t know what it is and you work in Web Development it is a must that you introduce yourself to it (or some other form of analytic strategy). Check it out at <a href="http://www.google.com/analytics/" target="_blank">http://www.google.com/analytics/</a>. If you are here because you want to add Browser Size (as opposed to Screen Resolution) tracking to your Google Analytics account(s) then you&#8217;ve come to the right place. Enjoy.</p>
<p><span id="more-287"></span></p>
<p><strong>Step 1 &#8211; Download resizeTracker.js</strong></p>
<p>First you need to download <a title="resizeTracker.js" href="http://derekknox.com/downloads/resizeTracker.zip">resizeTracker.js</a>.</p>
<p><strong>Step 2 &#8211; Update resizeTracker.js with your Google Analytics Tracking ID</strong></p>
<p>Next you need to open the downloaded resizeTracker.js file and update it. To update it simply do a <em>Find and Replace f</em>or &#8220;YOUR_TRACKING_ID&#8221; and replace it with your actual Google Analytics tracking id. Simple.</p>
<p><strong>Step 3 &#8211; Upload resizeTracker.js and Update your HTML page(s) </strong></p>
<p>Next you need to add the following script tags just under your &lt;title&gt; element of your HTML page(s). Like so&#8230;</p>
<p>[javascript]<br />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><br />
<script type="text/javascript" src="http://YOUR_WEBSITE.com/YOUR_PATH_TO_RESIZETRACKER.JS/resizeTracker.js"></script><br />
[/javascript]</p>
<p>Line 1 is important because resizeTracker.js uses jQuery and this line ensures it is loaded in the page. Line 2 is responsible for ensuring resizeTracker.js gets loaded in the page.</p>
<p>* Make sure your correctly set up the <em>src</em> attribute on Line 2 to reflect where you&#8217;ve actually uploaded your resizeTracker.js copy. In other words make sure you replace the strings YOUR_WEBSITE and YOUR_PATH_TO_RESIZETRACKER with their respective string values.</p>
<p>Finally you drop the following script after your closing &lt;/body&gt; tag of your HTML page(s). This checkInitialSize() call is what tracks the Browser Content Window size when the page first loads. Any subsequent resizes will be tracked via resizeTracker.js. Here is the script example.</p>
<p>[javascript]<br />
<script>		
	//initial check call
	$(function()
	{
		checkInitialSize();
	});
</script><br />
[/javascript]</p>
<p>That&#8217;s it. Simple eh? In part 2 I will show you how to access the results in Google Analytics.</p>
]]></content:encoded>
			<wfw:commentRss>http://derekknox.com/daklab/2012/01/25/tutorial-tracking-browser-content-window-size-with-google-analytics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

