<?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>Derek J Entringer &#124; Interactive Media, Web, and Mobile App Developer &#187; Flex</title>
	<atom:link href="http://www.derekentringer.com/blog/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.derekentringer.com/blog</link>
	<description>Interactive Media Development, Web Application Development, Mobile App Development, Flash, Flash Media Server, Flex, Flash Component Creation, Game Programming &#38; Design, Blog, CMS, eCommerce Setup &#38; Styling, Search Engine Optimization, Social Networking Strategies, Website Interface &#38; Template Creation, Windows Vista Gadget Development, Apple Widget Development, Email Marketing, Code Samples, Tutorials</description>
	<lastBuildDate>Wed, 06 Oct 2010 23:09:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Augmented Reality Using Flex, AS3, And A WebCam</title>
		<link>http://www.derekentringer.com/blog/augmented-reality-using-flex-as3-and-a-webcam/</link>
		<comments>http://www.derekentringer.com/blog/augmented-reality-using-flex-as3-and-a-webcam/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 01:15:27 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[General Discussion]]></category>
		<category><![CDATA[New Developments]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[augmented]]></category>
		<category><![CDATA[reality]]></category>
		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.derekentringer.com/blog/?p=400</guid>
		<description><![CDATA[
Augmented reality (AR) on the Flash and Flex platform is really quite a new technology, but there are a large amount of developers and businesses that are embracing the use of AR online. Media companies such as Esquire, and technology companies such as GE are using the tech to engage their users both through print media as well as online media.
AR research explores the application of computer-generated imagery in live-video streams as a way to expand the real-world.
The possibilities of how you could use Augmented Reality (AR) are endless. Picture ...]]></description>
			<content:encoded><![CDATA[<p><!--PLAIN_TEXT--><br />
Augmented reality (AR) on the Flash and Flex platform is really quite a new technology, but there are a large amount of developers and businesses that are embracing the use of AR online. Media companies such as <a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL21hc2hhYmxlLmNvbS8yMDA5LzEwLzMwL2VzcXVpcmUtYXVnbWVudGVkLXJlYWxpdHkv">Esquire</a>, and technology companies such as <a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dlLmVjb21hZ2luYXRpb24uY29tL3NtYXJ0Z3JpZC8/Y19pZD1nb29nYXVncmVhbCYjMDM4O2djbGlkPUNQei0wXzJJOHAwQ0ZjbU41d29kRkdSTXhRIy9hdWdtZW50ZWRfcmVhbGl0eQ==">GE</a> are using the tech to engage their users both through print media as well as online media.</p>
<p>AR research explores the application of computer-generated imagery in live-video streams as a way to expand the real-world.</p>
<p>The possibilities of how you could use Augmented Reality (AR) are endless. Picture yourself walking or driving down the street. With augmented-reality displays, which will eventually look much like a normal pair of glasses, and informative graphics appearing in your field of view, and audio that coincides with whatever you see.</p>
<p>Now, this article doesn&#8217;t go as far as how to create your own AR glasses, but rather a &#8220;first step&#8221; into what is capable when using AR.</p>
<p>I&#8217;ve created a quick example of an AR environment below. Using your webcam, and the provided PDF, you can experience what AR is all about. Make sure to take a look at some more advanced examples in the links above also.</p>
<p>First, print <a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZXJla2VudHJpbmdlci5jb20vZG93bmxvYWRzL2FyL2RlcmVrZW50cmluZ2VyLnBkZg==" target=\"_blank\">this PDF</a>.</p>
<p>Next, activate the Flash movie below to allow access to your webcam, and hold up the piece of paper to the camera to activate the AR environment. Make sure the large square is fully visible within the camera, and you&#8217;ll see how the AR loads and animates with how you position the paper.</p>
<p><script language="JavaScript" type="text/javascript">
	AC_FL_RunContent(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
		'width', '570',
		'height', '400',
		'src', 'http://www.derekentringer.com/downloads/ar/FLARdemo',
		'quality', 'high',
		'pluginspage', 'http://www.adobe.com/go/getflashplayer',
		'align', 'middle',
		'play', 'true',
		'loop', 'true',
		'scale', 'showall',
		'wmode', 'window',
		'devicefont', 'false',
		'id', 'FLARdemo',
		'bgcolor', '#222222',
		'name', 'FLARdemo',
		'menu', 'false',
		'allowFullScreen', 'true',
		'allowScriptAccess','sameDomain',
		'movie', 'http://www.derekentringer.com/downloads/ar/FLARdemo',
		'salign', ''
		); //end AC code
</script><br />
<noscript><br />
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="570" height="400" id="FLARdemo" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="http://www.derekentringer.com/downloads/ar/FLARdemo.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#222222" /><embed src="http://www.derekentringer.com/downloads/ar/FLARdemo.swf" quality="high" bgcolor="#222222" width="570" height="400" name="FLARdemo" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /><br />
	</object><br />
</noscript></p>
<p>Like I said, this example is brief. The AR that you will see above when holding up the pattern you printed is quite simple. There will be three cubes that will be displayed within your streaming video. The AR environment reacts to wherever the pattern on the printed pdf goes. You can rotate or angle the pattern against the camera, the the AR will follow.</p>
<p>There are many ways that this small &#8220;first step&#8221; towards a more interactive AR environment can be upgraded, and it&#8217;s only a start.</p>
<p>Using this technology you can stream video, add animations, or animate entire environments. You could green-screen actors or musicians and place them in a music video that comes to life seemingly right in your own hands. There are thousands of ways to implement AR to engage your website visitors or publication readers. Artist labels could use AR in their branding or CD packaging, or anyone with a business card could use AR to allow for mini-presentations. Whether that be a video or information displayed to a potential client by simply holding your business card card up to their webcam, while visiting your own website.</p>
<p>The ways of incorporating Augmented Reality into online and print media are nearly endless.</p>
<p>If you do not have a web cam, here&#8217;s how this simple example looks.</p>
<p><script type="text/javascript" src="http://flvplayer.com/free-flv-player/flvplayer/swfobject/swfobject.js"></script></p>
<div id="embed_player">
<h1>Please Upgrade Your Flash Player</h1>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hZG9iZS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXI="><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<p><script type="text/javascript">
var flashvars = {
flvpFolderLocation: "http://flvplayer.com/free-flv-player/flvplayer/", 
flvpVideoSource: "http://www.derekentringer.com/downloads/ar/ar_demo.mp4", 
flvpWidth: "568", 
flvpHeight: "400", 
flvpInitVolume: "50", 
flvpTurnOnCorners: "true", 
flvpBgColor: "0F0F0F"
};
var params = {
bgcolor: "0F0F0F", 
menu: "true", 
allowfullscreen: "true"
};
swfobject.embedSWF("http://flvplayer.com/free-flv-player/FlvPlayer.swf", "embed_player", "568", "400", "9.0.0", "http://flvplayer.com/free-flv-player/flvplayer/swfobject/expressInstall.swf", flashvars, params);
</script></p>
<p>Have you used AR in any of your projects yet?</p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=400" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/augmented-reality-using-flex-as3-and-a-webcam/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
<enclosure url="http://www.derekentringer.com/downloads/ar/ar_demo.mp4" length="2222555" type="audio/mp4" />
		</item>
		<item>
		<title>Stratus &#8211; P2P Communication Using RTMFP and Flash 10</title>
		<link>http://www.derekentringer.com/blog/stratus-p2p-communication-using-rtmfp-and-flash-10/</link>
		<comments>http://www.derekentringer.com/blog/stratus-p2p-communication-using-rtmfp-and-flash-10/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 15:14:20 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[FMS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[PHP/MySQL]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[flash 10]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[RTMFP]]></category>
		<category><![CDATA[RTMP]]></category>
		<category><![CDATA[stratus]]></category>

		<guid isPermaLink="false">http://www.derekentringer.com/blog/?p=200</guid>
		<description><![CDATA[
After doing some research on live broadcasting events using streaming video, I happened to come across a beta Adobe product called Stratus which builds upon Adobe&#8217;s RTMP. Not to confuse RTMP (Real Time Media Protocol) with RTMFP (Real Time Media Flow Protocol), RTMFP is a new communication protocol built by Adobe that will let users connect and communicate using P2P between multiple clients running a Flash or Adobe AIR application.
Stratus as defined by Adobe&#8230;
Stratus is a hosted rendezvous service that aids in establishing communications between Flash Players or Adobe AIR ...]]></description>
			<content:encoded><![CDATA[<p><!--PLAIN_TEXT--><br />
After doing some research on live broadcasting events using streaming video, I happened to come across a beta Adobe product called Stratus which builds upon Adobe&#8217;s RTMP. Not to confuse RTMP (Real Time Media Protocol) with RTMFP (Real Time Media Flow Protocol), RTMFP is a new communication protocol built by Adobe that will let users connect and communicate using P2P between multiple clients running a Flash or Adobe AIR application.</p>
<p>Stratus as defined by Adobe&#8230;</p>
<p><em>Stratus is a hosted rendezvous service that aids in establishing communications between Flash Players or Adobe AIR endpoints using RTMFP. Flash Player endpoints must stay connected to the server during the entire time of communications. Unlike Flash Media Server, Stratus does not stream video or support media relay, shared objects, or scripting. Stratus is being made available as a beta service through Adobe Labs to allow our developer community to begin building applications using RTMFP.</em></p>
<p>&#8230;which basically states that Stratus can be used in combination with Flash Media Server to allow for developers to easily connect a small amount of users (at the moment) directly instead of through the Flash Media Server using peer-to-peer technology.</p>
<p><img src="http://derekentringer.com/img/stratus_voip.jpg" /></p>
<p>Flash Media Server is built to support client to server communication. Stratus breaks free of that structure and allows client to client communication. This is a great starting point for Flash and P2P application development.</p>
<p>Unfortunately, this system was not intended to create an infinitely scalable MMORPG, although, there are some variables within the Stratus environment that will allow you to push the user limit over the default of 5.</p>
<p>Adobe&#8217;s first iteration of RTMFP is really only a taste of what is to come, and is only a glimpse into the Flash world of P2P.</p>
<p>Here are some tutorial resources I&#8217;ve put together. Feel free to leave any that you have also found helpful in learning how to effectively use Stratus.</p>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xhYnMuYWRvYmUuY29tL3RlY2hub2xvZ2llcy9zdHJhdHVzLw==">Stratus Home Page</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly93d3cuYWRvYmUuY29tL2NmdXNpb24vZW50aXRsZW1lbnQvaW5kZXguY2ZtP2U9c3RyYXR1cw==">Get A Stratus Developer Key</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xhYnMuYWRvYmUuY29tL3dpa2kvaW5kZXgucGhwL1N0cmF0dXM6RkFR">Adobe Labs Stratus FAQ</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xhYnMuYWRvYmUuY29tL3RlY2hub2xvZ2llcy9zdHJhdHVzL3NhbXBsZXMv">Adobe Labs Stratus Sample Application w/source</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xhYnMuaW5mbHV4aXMuY29tLz9wPTg2">Tutorial and Downloadable Files from Influxis.com</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2FjdGl2ZTYuY29tL2Jsb2cvZmxleC90aGUtYWRvYmUtc3RyYXR1cy1iZXRhLXNhbXBsZS1hcHAtYW5kLXBocG15c3FsLw==">Stratus Application Using PHP/MySQL</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL21hcmNiYy5ibG9nc3BvdC5jb20vMjAwOS8wMy9maWxlLXNoYXJpbmctdXNpbmctc3RyYXR1cy1wYXJ0LTItc2VuZC5odG1s">Stratus, Python, and File Sharing</a><br />
<a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hZG9iZS5jb20vZGV2bmV0L2ZsYXNocGxheWVyL2FydGljbGVzL3J0bWZwX3N0cmF0dXNfYXBwLmh0bWw=">Stratus Basics</a></p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=200" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/stratus-p2p-communication-using-rtmfp-and-flash-10/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Flex 3 &#124; Simple FLV Player &#124; Scrubbing, Pause, and Play</title>
		<link>http://www.derekentringer.com/blog/flex-3-simple-flv-player-scrubbing-pause-play/</link>
		<comments>http://www.derekentringer.com/blog/flex-3-simple-flv-player-scrubbing-pause-play/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 22:11:36 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[pause]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[scrub]]></category>
		<category><![CDATA[scrubbing]]></category>
		<category><![CDATA[simple]]></category>

		<guid isPermaLink="false">http://derekentringer.com/blog/?p=139</guid>
		<description><![CDATA[
Using Flex, it&#8217;s extremely easy to create a simple FLV player. This simple flv player has a scrub bar, pause/play buttons, and can load a flv from any url. The example is pretty basic, but it&#8217;s a great starting point on understanding how to stream video using Flex.

&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;mx:Application xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; layout=&#34;vertical&#34; verticalAlign=&#34;top&#34; backgroundColor=&#34;white&#34; viewSourceURL=&#34;srcview/index.html&#34;&#62;
    &#60;mx:Script&#62;
        &#60;![CDATA[
            private function formatTime(item:Date):String {
         ...]]></description>
			<content:encoded><![CDATA[<p><!--PLAIN_TEXT--><br />
Using Flex, it&#8217;s extremely easy to create a simple FLV player. This simple flv player has a scrub bar, pause/play buttons, and can load a flv from any url. The example is pretty basic, but it&#8217;s a great starting point on understanding how to stream video using Flex.</p>
<pre class="brush: as3; title: ;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;vertical&quot; verticalAlign=&quot;top&quot; backgroundColor=&quot;white&quot; viewSourceURL=&quot;srcview/index.html&quot;&gt;
    &lt;mx:Script&gt;
        &lt;![CDATA[
            private function formatTime(item:Date):String {
                return dateFormatter.format(item);
            }
            private function videoDisplay_playheadUpdate():void {
                var pT:Number = videoDisplay.playheadTime || 0.1;
                var tT:Number = videoDisplay.totalTime;
                var pTimeMS:Date = new Date(pT * 1000);
                var tTimeMS:Date = new Date(tT * 1000);
                timeLabel.text = formatTime(pTimeMS) + &quot; / &quot; + formatTime(tTimeMS);
            }
            private function slider_thumbPress():void {
                videoDisplay.pause();
            }
            private function slider_thumbRelease():void {
                videoDisplay.playheadTime = slider.value;
                videoDisplay.play();
            }
            private function videoDisplay_ready():void {
                videoDisplay.visible = true;
                controlBar.visible = true;
            }
        ]]&gt;
    &lt;/mx:Script&gt;
    &lt;mx:DateFormatter id=&quot;dateFormatter&quot; formatString=&quot;NN:SS&quot; /&gt;
    &lt;mx:Panel title=&quot;{videoDisplay.source.split('/').pop()} ({videoDisplay.state})&quot;&gt;
        &lt;mx:VideoDisplay id=&quot;videoDisplay&quot; visible=&quot;false&quot; width=&quot;100%&quot; height=&quot;100%&quot;
            playheadUpdate=&quot;videoDisplay_playheadUpdate()&quot;
            ready=&quot;videoDisplay_ready()&quot;
            rewind=&quot;videoDisplay.play()&quot;
            source=&quot;http://www.derekentringer.com/flv/purple_plasma.flv&quot; /&gt;
        &lt;mx:ControlBar id=&quot;controlBar&quot; visible=&quot;false&quot;&gt;
        	&lt;mx:Button id=&quot;play&quot; name=&quot;play&quot; label=&quot;Play&quot; click=&quot;videoDisplay.play()&quot;&gt;&lt;/mx:Button&gt;
        	&lt;mx:Button id=&quot;pause&quot; name=&quot;pause&quot; label=&quot;Pause&quot; click=&quot;videoDisplay.pause()&quot;&gt;&lt;/mx:Button&gt;
            &lt;mx:HSlider id=&quot;slider&quot; width=&quot;100%&quot;
                allowTrackClick=&quot;false&quot;
                invertThumbDirection=&quot;true&quot;
                liveDragging=&quot;false&quot;
                maximum=&quot;{videoDisplay.totalTime}&quot;
                minimum=&quot;0&quot;
                thumbPress=&quot;slider_thumbPress()&quot;
                thumbRelease=&quot;slider_thumbRelease()&quot;
                tickInterval=&quot;1&quot;
                value=&quot;{videoDisplay.playheadTime}&quot; /&gt;
            &lt;mx:Label id=&quot;timeLabel&quot; textAlign=&quot;right&quot; /&gt;
        &lt;/mx:ControlBar&gt;
    &lt;/mx:Panel&gt;
&lt;/mx:Application&gt;
</pre>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZXJla2VudHJpbmdlci5jb20vZmxleF9zaW1wbGVfZmx2X3BsYXllci8=" target=\"_blank\">See the example</a></p>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZXJla2VudHJpbmdlci5jb20vZG93bmxvYWRzL1NpbXBsZUZMVlBsYXllci56aXA=">Download the source</a></p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=139" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/flex-3-simple-flv-player-scrubbing-pause-play/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flex Builder: Remove css type selector warnings</title>
		<link>http://www.derekentringer.com/blog/flex-builder-remove-css-type-selector-warnings/</link>
		<comments>http://www.derekentringer.com/blog/flex-builder-remove-css-type-selector-warnings/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 21:23:39 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[selector]]></category>
		<category><![CDATA[type]]></category>
		<category><![CDATA[warnings]]></category>

		<guid isPermaLink="false">http://derekentringer.com/blog/?p=78</guid>
		<description><![CDATA[A small but very irritating problem started coming up during some development I&#8217;ve been working on in Flex. I kept getting errors when compiling in Flex Builder regarding some CSS.
&#8220;The type selector &#8216;classNameHere&#8217; was not processed, because the type was not used in the application.&#8221;
It&#8217;s quite easy to turn this off by going into your project properties panel and select the Flex Compiler option and add the following into Additional compiler options:
-show-unused-type-selector-warnings=false
More on this subject here
 ]]></description>
			<content:encoded><![CDATA[<p>A small but very irritating problem started coming up during some development I&#8217;ve been working on in Flex. I kept getting errors when compiling in Flex Builder regarding some CSS.</p>
<p>&#8220;The type selector &#8216;classNameHere&#8217; was not processed, because the type was not used in the application.&#8221;</p>
<p>It&#8217;s quite easy to turn this off by going into your project properties panel and select the Flex Compiler option and add the following into Additional compiler options:</p>
<p>-show-unused-type-selector-warnings=false</p>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xpZmUubmVvcGhpLmNvbS9kYW5pZWxyLzIwMDYvMDgv" target=\"_blank\">More on this subject here</a></p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=78" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/flex-builder-remove-css-type-selector-warnings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend To Collaborate With Adobe</title>
		<link>http://www.derekentringer.com/blog/zend-to-collaborate-with-adobe/</link>
		<comments>http://www.derekentringer.com/blog/zend-to-collaborate-with-adobe/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:23:40 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[PHP/MySQL]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://derekentringer.com/blog/?p=72</guid>
		<description><![CDATA[“Since bringing Flex to market, we’ve seen strong uptake among PHP developers, and we’re pleased to be collaborating with Zend and the PHP community to deliver deeper integration and increased productivity,” said David Wadhwani, General Manager, Platform Business Unit at Adobe. “The collaboration with Zend furthers Adobe’s commitment to open technology initiatives. Together, we will enable developers using Flex and Zend Framework to rapidly deliver highly engaging applications to both the browser and the desktop.” &#8211; David Wadhwani, General Manager, Platform Business Unit at Adobe.
This is really exciting, as a ...]]></description>
			<content:encoded><![CDATA[<p>“Since bringing Flex to market, we’ve seen strong uptake among PHP developers, and we’re pleased to be collaborating with Zend and the PHP community to deliver deeper integration and increased productivity,” said David Wadhwani, General Manager, Platform Business Unit at Adobe. “The collaboration with Zend furthers Adobe’s commitment to open technology initiatives. Together, we will enable developers using Flex and Zend Framework to rapidly deliver highly engaging applications to both the browser and the desktop.” &#8211; David Wadhwani, General Manager, Platform Business Unit at Adobe.</p>
<p>This is really exciting, as a PHP/Flex developer, and it&#8217;s going to open even more opportunities for developing and integrating with the two code bases.</p>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy56ZW5kLmNvbS9lbi9jb21wYW55L25ld3MvUHJlc3MvemVuZC10by1jb2xsYWJvcmF0ZS13aXRoLWFkb2Jl" target=\"_blank\">Read more here.</a></p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=72" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/zend-to-collaborate-with-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex File Browser &#8211; PDF, Images, and Video Player</title>
		<link>http://www.derekentringer.com/blog/flex-file-browser/</link>
		<comments>http://www.derekentringer.com/blog/flex-file-browser/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 18:09:07 +0000</pubDate>
		<dc:creator>Derek J Entringer</dc:creator>
				<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[mxml]]></category>

		<guid isPermaLink="false">http://derekentringer.com/blog/?p=53</guid>
		<description><![CDATA[
Flex has a lot to offer when it comes to file manipulation and viewing/interaction. The AIR environment is perfect for an &#8220;explorer&#8221; type application.
Here&#8217;s a quick file browser in Flex:

&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;
&#60;mx:WindowedApplication xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; layout=&#34;absolute&#34; width=&#34;1044&#34; height=&#34;800&#34; currentState=&#34;videoState&#34; creationComplete=&#34;init()&#34;&#62;
	&#60;mx:Style source=&#34;assets/css/styles.css&#34; /&#62;
	&#60;mx:Script&#62;
		&#60;![CDATA[
			import mx.core.UIComponent;
			import mx.controls.Alert;
			import flash.html.HTMLLoader;
			import flash.net.URLRequest;
			import mx.events.MenuEvent;
            import mx.collections.*;
			[Bindable]
            public var menuBarCollection:XMLListCollection;
            private var menubarXML:XMLList =
    ...]]></description>
			<content:encoded><![CDATA[<p><!--PLAIN_TEXT--><br />
Flex has a lot to offer when it comes to file manipulation and viewing/interaction. The AIR environment is perfect for an &#8220;explorer&#8221; type application.</p>
<p>Here&#8217;s a quick file browser in Flex:</p>
<pre class="brush: as3; title: ;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:WindowedApplication xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; width=&quot;1044&quot; height=&quot;800&quot; currentState=&quot;videoState&quot; creationComplete=&quot;init()&quot;&gt;
	&lt;mx:Style source=&quot;assets/css/styles.css&quot; /&gt;
	&lt;mx:Script&gt;
		&lt;![CDATA[
			import mx.core.UIComponent;
			import mx.controls.Alert;
			import flash.html.HTMLLoader;
			import flash.net.URLRequest;
			import mx.events.MenuEvent;
            import mx.collections.*;
			[Bindable]
            public var menuBarCollection:XMLListCollection;
            private var menubarXML:XMLList =
                &lt;&gt;
                    &lt;menuitem label=&quot;File&quot; data=&quot;top&quot;&gt;
                        &lt;menuitem label=&quot;Browse&quot; data=&quot;browse_files&quot;/&gt;
                    &lt;/menuitem&gt;
                &lt;/&gt;;
            private function menuHandler(event:MenuEvent):void  {
                if (event.item.@data != &quot;top&quot;) {
                    if(event.item.@data == &quot;browse_files&quot;){
                    	browseDir(event);
                    }
                }
            }
			if(HTMLLoader.pdfCapability == HTMLPDFCapability.STATUS_OK) {
				trace(&quot;PDF content can be displayed&quot;);
			}else {
				trace(&quot;PDF cannot be displayed. Error code:&quot;, HTMLLoader.pdfCapability);
			}
			private function init():void{
				fileSystemTree.directory = File.desktopDirectory;
            	menuBarCollection = new XMLListCollection(menubarXML);
			}
			private function browseDir(e:Event):void{
				var dir:File = new File();
				dir.browseForDirectory(&quot;Select directory&quot;);
				dir.addEventListener(Event.SELECT, onDirSelect);
			}
			private function onDirSelect(event:Event):void{
				fileSystemTree.directory = event.currentTarget as File;
			}
			private function onChange(e:Event):void{
				var file:File = e.currentTarget.selectedItem as File;
				if(!file.isDirectory){
					var viewer:Object;
					switch(file.extension.toLowerCase()){
						case &quot;flv&quot;:
							currentState = &quot;videoState&quot;;
							viewer = videoDisplay;
							viewer.source = file.url;
						break;
						case &quot;png&quot;:
						case &quot;jpg&quot;:
							currentState = &quot;imageState&quot;;
							viewer = image;
							viewer.source = file.url;
						break;
						case &quot;pdf&quot;:
							currentState = &quot;pdfState&quot;;
							var htmlLoader:HTMLLoader = new HTMLLoader();
							var urlReq:URLRequest = new URLRequest(file.url);
							htmlLoader.width = 814;
							htmlLoader.height = 705;
							htmlLoader.load(urlReq);
							var myComponent:UIComponent  = new UIComponent();
							myComponent.addChild(htmlLoader);
							pdf_content.addChild(myComponent);
						break;
						default:
							Alert.show(&quot;Unsupported file &quot; + file.nativePath, &quot;Error&quot;);
						return;
					}
				}
			}
		]]&gt;
	&lt;/mx:Script&gt;
	&lt;mx:HDividedBox width=&quot;100%&quot; height=&quot;725&quot; paddingLeft=&quot;10&quot; paddingRight=&quot;10&quot; paddingBottom=&quot;10&quot; paddingTop=&quot;10&quot; y=&quot;41&quot;&gt;
		&lt;mx:VBox width=&quot;200&quot; height=&quot;100%&quot;&gt;
			&lt;mx:FileSystemTree id=&quot;fileSystemTree&quot; width=&quot;100%&quot; height=&quot;100%&quot; change=&quot;onChange(event)&quot; /&gt;
		&lt;/mx:VBox&gt;
		&lt;mx:Canvas width=&quot;100%&quot; height=&quot;100%&quot; id=&quot;content&quot; &gt;&lt;/mx:Canvas&gt;
	&lt;/mx:HDividedBox&gt;
	&lt;mx:ApplicationControlBar x=&quot;0&quot; y=&quot;0&quot; width=&quot;100%&quot;&gt;
		&lt;mx:MenuBar labelField=&quot;@label&quot; itemClick=&quot;menuHandler(event);&quot; dataProvider=&quot;{menuBarCollection}&quot; /&gt;
	&lt;/mx:ApplicationControlBar&gt;
	&lt;mx:states&gt;
		&lt;mx:State name=&quot;videoState&quot;&gt;
			&lt;mx:AddChild relativeTo=&quot;{content}&quot;&gt;
				&lt;mx:VideoDisplay id=&quot;videoDisplay&quot; width=&quot;100%&quot; height=&quot;100%&quot; /&gt;
			&lt;/mx:AddChild&gt;
		&lt;/mx:State&gt;
		&lt;mx:State name=&quot;imageState&quot;&gt;
			&lt;mx:AddChild relativeTo=&quot;{content}&quot;&gt;
				&lt;mx:Image id=&quot;image&quot; width=&quot;100%&quot; height=&quot;100%&quot; /&gt;
			&lt;/mx:AddChild&gt;
		&lt;/mx:State&gt;
		&lt;mx:State name=&quot;pdfState&quot;&gt;
			&lt;mx:AddChild relativeTo=&quot;{content}&quot;&gt;
				&lt;mx:Canvas width=&quot;100%&quot; height=&quot;100%&quot; id=&quot;pdf_content&quot; &gt;&lt;/mx:Canvas&gt;
			&lt;/mx:AddChild&gt;
		&lt;/mx:State&gt;
	&lt;/mx:states&gt;
&lt;/mx:WindowedApplication&gt;
</pre>
<p>The result:</p>
<p><img src="http://www.derekentringer.com/img/flex_file_browser.jpg"></p>
<p><a href="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZXJla2VudHJpbmdlci5jb20vZG93bmxvYWRzL2ZsZXhfZmlsZV9leHBsb3Jlci56aXA=">Download the source</a></p>
 <img src="http://www.derekentringer.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=53" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.derekentringer.com/blog/flex-file-browser/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

