<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-683698495951894283</id><updated>2012-01-05T23:23:30.394-05:00</updated><category term='C#'/><category term='Flash'/><category term='Unity3D'/><category term='iOS'/><category term='MVC'/><title type='text'>C# + f = :)</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5923520843244483966</id><published>2011-09-20T19:13:00.001-04:00</published><updated>2011-09-21T10:28:11.419-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>CATiledLayers</title><content type='html'>&lt;p&gt;I've been working on a class in an iOS app, that displays a series of slides with one large image per slide. The user has the ability to swipe left or right and navigate to a new slide. The images were large enough that there was a noticeable lag. After much research I discovered CATiledLayers. &lt;br/&gt;In short, a CATiledLayer will appropriately blend sections of an image together while a user is zooming and panning an image. Only small sections, or tiles, of the image are loaded into memory and onto the screen. This saves a lot of memory overhead as well as an allocation and a decompression lag in the main thread.&lt;/p&gt;&lt;p&gt;Apple gives you a nice head start on this functionality, but the don't give you everything. In my current iOS project, I am downloading images from a CMS. Once each image is downloaded, I slice it up accordingly using CGDrawing methods, then I cache them to disk, naming them imagename_row#_column#.png. In all, I saved four levels of detail for each image. This means that each image is resized, sliced up, and cached at four different resolutions (just think of having to do that in photoshop...for every client image). Then in the CATiledLayer implementation, it looks for the appropriate images to load based upon scale and position of the UIScrollView. It works really well and makes those high-res images load quickly.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5923520843244483966?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5923520843244483966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2011/09/catiled-layers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5923520843244483966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5923520843244483966'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2011/09/catiled-layers.html' title='CATiledLayers'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1942186681022196768</id><published>2011-06-19T16:12:00.000-04:00</published><updated>2011-06-19T16:12:04.717-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Ocean Isles</title><content type='html'>&lt;pre&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://kylesebestyen.net/oceanisles" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img src="http://3.bp.blogspot.com/-3qoiJqnEYbw/Tfd1Ao-lGaI/AAAAAAAAAJk/pJNJQdYR0XA/s320/photo2.PNG" id="blogsy-1308514318166.458" class="aligncenter" alt="" width="416" height="312"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;I've been dreaming of an oceanic island scene in Unity. Here I really didn't spend too much time on the models, but instead focused on implementing a nice camera fly courtesy of &lt;a href="http://itween.pixelplacement.com/index" target="_blank"&gt;&lt;strong&gt;iTween&lt;/strong&gt;&lt;/a&gt;, as well as some nice 3D sounds. I also implemented some basic pov manipulation scripts but they are buggy at best. This project was built in a days time. I deployed this to my &lt;strong&gt;iPad2&lt;/strong&gt; and it swims along at &lt;strong&gt;60 fps&lt;/strong&gt;...even when the camera is up next to the fire particles;). Click the image to give it a try. Make sure your speakers are on. I recommend headphones.&lt;br&gt;&lt;/p&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vq_nPnhxn7A?fs=1&amp;hl=en_US&amp;border=0&amp;rel=0&amp;color1=0x666666&amp;color2=0xefefef"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vq_nPnhxn7A?fs=1&amp;hl=en_US&amp;border=0&amp;rel=0&amp;color1=0x666666&amp;color2=0xefefef" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1942186681022196768?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1942186681022196768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2011/06/ocean-isles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1942186681022196768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1942186681022196768'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2011/06/ocean-isles.html' title='Ocean Isles'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-3qoiJqnEYbw/Tfd1Ao-lGaI/AAAAAAAAAJk/pJNJQdYR0XA/s72-c/photo2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6478494267800317781</id><published>2010-12-24T21:16:00.000-05:00</published><updated>2010-12-24T21:16:20.419-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Unity Christmas Tree Scene</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://kylesebestyen.net/xmas" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="335" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/TRUGMTRn3gI/AAAAAAAAAJc/BdCRa8wO9Qc/s400/ct.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=P_8ESuKveno" target="_blank"&gt;Watch it on YouTube here.&lt;/a&gt;&lt;br /&gt;I modeled this scene in Blender, imported it to Unity, light mapped it with beast, added occlusion culling and then ported it to the iPad. I am pleased to say that it gets a very high frame rate on the iPad.&lt;br /&gt;&lt;br /&gt;iPad functionality includes: swipe finger to rotate the scene left or right. Touch on an area of interest to zoom in. Tilt the iPad up, down, left or right to do a smooth look in that direction. Pinch fingers together to zoom back out to the original point of view. Clicking on the end table reveals a Christmas card in the drawer. &lt;br /&gt;&lt;br /&gt;I did not use any tween libraries for any of this functionality. I wanted to keep it very light for the iPad, so instead I used Unity's linear interpolation functions to calculate the distance for each movement. I wrote all the functionality in C#, as always.&lt;br /&gt;&lt;br /&gt;This was created for my wife as a Christmas card on the iPad. Merry Christmas!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6478494267800317781?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6478494267800317781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/12/unity-christmas-tree-scene.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6478494267800317781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6478494267800317781'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/12/unity-christmas-tree-scene.html' title='Unity Christmas Tree Scene'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/TRUGMTRn3gI/AAAAAAAAAJc/BdCRa8wO9Qc/s72-c/ct.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5809339349353246652</id><published>2010-11-29T21:35:00.002-05:00</published><updated>2010-11-30T13:31:49.588-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Asteroid Field</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.kylesebestyen.net/asteroid_field/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="265" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/TPRh7fKqyGI/AAAAAAAAAJU/UzV1GoArP1E/s400/shot.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;I just had to make an Earth with the sun and an asteroid field. I mean..wouldn't you? The camera fly is completely scripted. The asteroids are randomly placed.&lt;br /&gt;Earth, cloud and specular map courtesy of &lt;span class="rg_ctlv"&gt;&lt;span id="rg_hr"&gt;oera.net (which seems to be down as of the moment of this post)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5809339349353246652?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5809339349353246652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/11/asteroid-field.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5809339349353246652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5809339349353246652'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/11/asteroid-field.html' title='Asteroid Field'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/TPRh7fKqyGI/AAAAAAAAAJU/UzV1GoArP1E/s72-c/shot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1562987546025849224</id><published>2010-11-23T18:37:00.004-05:00</published><updated>2010-11-23T18:43:40.012-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Cornel Box Fly</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/cornel/" target="_blank"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/TOxQuPmPP1I/AAAAAAAAAJM/pCzMs2XtYtA/s400/boxfly.jpg" alt="" id="BLOGGER_PHOTO_ID_5542893996777357138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I created a simple bluish-grey Cornel Box and lightmapped it with beast lightmapper in Unity. I played around with the settings a lot more in order to get  a very nice over head lit look. I was able to script the camera fly in only a few lines of code. A nice polished piece for just a little bit of work! Give it a click and watch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1562987546025849224?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1562987546025849224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/11/cornel-box-fly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1562987546025849224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1562987546025849224'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/11/cornel-box-fly.html' title='Cornel Box Fly'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/TOxQuPmPP1I/AAAAAAAAAJM/pCzMs2XtYtA/s72-c/boxfly.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-4083641609449936848</id><published>2010-11-15T18:26:00.006-05:00</published><updated>2010-11-15T18:39:16.403-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Unity City</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/UnityCity" target="_blank"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 244px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/TOHEKi0AhNI/AAAAAAAAAJE/wdoOzHNo3gQ/s400/shot2.png" alt="" id="BLOGGER_PHOTO_ID_5539924702065099986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/UnityCity" target="_blank"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 244px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/TOHEFsHudNI/AAAAAAAAAI8/KjT050tkvs4/s400/shot1.png" alt="" id="BLOGGER_PHOTO_ID_5539924618664375506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/UnityCity" target="_blank"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 299px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/TOHCdWeqnpI/AAAAAAAAAI0/KNEgeDpwqaQ/s400/shot.jpg" alt="" id="BLOGGER_PHOTO_ID_5539922826148617874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Modeled by &lt;a href="http://www.vimeo.com/twotone" target="_blank"&gt;Sean McDonald&lt;/a&gt;&lt;br /&gt;Before hand, this scene had one directional light and quite a few draw calls that slowed performance. I had the camera in forward render mode (no point lights so I don't need deferred render mode). Then I light mapped the entire scene and changed the rendering path to Vertex Lit. This immediately gave me a much better frame rate. I then baked in Occlusion Culling so that only the geometry that is seen by the camera is sent to the render pipeline which yielded a well optimized environment&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-4083641609449936848?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/4083641609449936848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/11/unity-city.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4083641609449936848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4083641609449936848'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/11/unity-city.html' title='Unity City'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/TOHEKi0AhNI/AAAAAAAAAJE/wdoOzHNo3gQ/s72-c/shot2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6606079834819731256</id><published>2010-08-10T15:38:00.002-04:00</published><updated>2010-08-10T15:42:24.018-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Unity3D Studio Apartment</title><content type='html'>I modeled and UV mapped this 3D Studio with Blender and assembled it in Unity.&lt;br /&gt;You can click and drag the sliders to dynamically change the room lighting. Click on a view button to see parts of the apartment. &lt;a href="http://www.kylesebestyen.net/unity_studio"&gt;&lt;h3&gt;Click here to view the interactive scene!&lt;/h3&gt;&lt;/a&gt;&lt;br /&gt;or watch the youtube video below.&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k--GGVulSmI&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/k--GGVulSmI&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6606079834819731256?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6606079834819731256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/08/unity3d-studio-apartment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6606079834819731256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6606079834819731256'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/08/unity3d-studio-apartment.html' title='Unity3D Studio Apartment'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1550187380235803416</id><published>2010-04-14T09:20:00.005-04:00</published><updated>2010-04-14T09:51:01.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Firewall</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/firewall" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/S8XBUjmpDZI/AAAAAAAAAIM/MtZ9kinpxYs/s400/fw.jpg" alt="" id="BLOGGER_PHOTO_ID_5459982682155453842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Wow! Unity is just amazing. &lt;a href="http://www.vimeo.com/twotone"&gt;&lt;b&gt;Sean McDonald&lt;/b&gt;&lt;/a&gt; modeled the sidewinder missile used in this game. Firewall was inspired by Unity's free &lt;a href="http://unity3d.com/support/resources/unity-extensions/explosion-framework" target="_blank"&gt;Detonator Library&lt;/a&gt;. I got the metal texture for the blocks from &lt;a href="http://desizntech.info/2009/02/50-textures-for-your-design-appetite-and-lot-more-resources/" target="_blank"&gt;desizntech.info&lt;/a&gt;. Which brings me to my next point, Unity makes &lt;a href="http://www.3drender.com/glossary/mipmapping.htm" target="_blank"&gt;mip&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Bump_mapping" target="_blank"&gt;bump mapping&lt;/a&gt; a snap! Drag a texture onto a 3D asset, then click on the image in your library and click generate bump map...done! The UI even has a slider to control mip mapping and shininess of the bump mapping.&lt;br /&gt;&lt;br /&gt;Firewall uses a lot of object oriented C# scripting for each gameObject. It's very easy to get things to work once you understand Vector3s and Quaternions. What's the hardest part? Any GUI or HUD work is really just a pain!&lt;br /&gt;&lt;br /&gt;The levels in Firewall are XML driven, you can sneak a peak from my &lt;a href="http://www.kylesebestyen.net/firewall/levels.xml" target="_blank"&gt;levels.xml document.&lt;/a&gt;&lt;br /&gt;Each level is made up of a node, where each | represents the end of a line and each number is a stack of cubes.&lt;br /&gt;...........|&lt;br /&gt;...45554...|&lt;br /&gt;...........|&lt;br /&gt;...........|&lt;br /&gt;...........|&lt;br /&gt;...........|&lt;br /&gt;...........|&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Functionality:&lt;/b&gt;&lt;br /&gt;Getting the missile to shoot at the mouse, but take on the cameras transform:&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;br /&gt;GameObject rocket = Instantiate(Resources.Load("Rocket")) as GameObject;&lt;br /&gt;rocket.rigidbody.transform.position = camera.transform.position;&lt;br /&gt;rocket.rigidbody.transform.rotation = Quaternion.LookRotation(Camera.main.ScreenPointToRay(Input.mousePosition).direction);&lt;br /&gt;rocket.rigidbody.velocity = transform.TransformDirection(new Vector3(r.direction.x * 50, r.direction.y * 50, r.direction.z * 50));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Getting the 3D object that is under the mouse, to turn red. Also referencing variables in a dynamic prefab's class:&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;br /&gt;//raycast directly under the mouse for a distance of 100, return the first object that is hit.&lt;br /&gt;Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);&lt;br /&gt;RaycastHit hit;&lt;br /&gt;&lt;br /&gt;//if the ray hit an object, parse it as a Cube (Cube is the .cs class for the block prefab) and selected is a public bool.&lt;br /&gt;if(Physics.Raycast(r, out hit, 100))&lt;br /&gt;(hit.collider.gameObject.GetComponent("Cube") as Cube).selected = true;&lt;br /&gt;&lt;br /&gt;//inside of Cube.cs on update we have the following:&lt;br /&gt;rigidbody.renderer.material.color = selected ? Color.red : Color.white;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1550187380235803416?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1550187380235803416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/04/firewall.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1550187380235803416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1550187380235803416'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/04/firewall.html' title='Firewall'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/S8XBUjmpDZI/AAAAAAAAAIM/MtZ9kinpxYs/s72-c/fw.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1422763392090230481</id><published>2010-04-06T09:59:00.018-04:00</published><updated>2010-04-06T12:07:06.786-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><title type='text'>Shark Attack Island</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/sharkattackisland" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 301px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/S7tDkbXeRmI/AAAAAAAAAHs/LOIL770SiL8/s400/sai.jpg" alt="" id="BLOGGER_PHOTO_ID_5457029666590049890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My first experiments with Unity3D revealed that it is extremely easy to get a 3D scene set up and running. Texturing 3D objects is as easy as drag and drop. Need a first person shooter control? Just drag and drop the fps walker prefab into your scene and tweak the variables! &lt;a href="http://www.vimeo.com/twotone" target="_blank"&gt;Sean McDonald&lt;/a&gt; did all the 3D modeling for this (except for the palm trees, those were Unity default materials). We found that Unity was able to import .3ds, .dae, and .fbx and even .ma and .mb if you have Maya installed on the same computer that Unity is on.&lt;br /&gt;&lt;br /&gt;Current known bugs: Sharks swim through the island.&lt;br /&gt;Please feel free to submit bugs.&lt;br /&gt;&lt;br /&gt;I scripted the games animations through C#.&lt;br /&gt;&lt;div&gt;Ocean Movement:&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bB0DAD9PYvM/S7tFqYU1KFI/AAAAAAAAAH0/tCk1F4c3-Go/s1600/ocean-code.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 364px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/S7tFqYU1KFI/AAAAAAAAAH0/tCk1F4c3-Go/s400/ocean-code.jpg" alt="" id="BLOGGER_PHOTO_ID_5457031967876130898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Shark Movement&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bB0DAD9PYvM/S7tF2Ste_WI/AAAAAAAAAH8/3i6jssnWQWM/s1600/shark-code.jpg" target="_blank"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 285px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/S7tF2Ste_WI/AAAAAAAAAH8/3i6jssnWQWM/s400/shark-code.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5457032172527353186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Player Throws Coconut at Mouse&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bB0DAD9PYvM/S7tF7BYNMHI/AAAAAAAAAIE/CRuZv0OIIFo/s1600/thrower-code.jpg" target="_blank"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 114px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/S7tF7BYNMHI/AAAAAAAAAIE/CRuZv0OIIFo/s400/thrower-code.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5457032253774049394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the explosions I used &lt;a href="http://unity3d.com/support/resources/unity-extensions/explosion-framework" target="_blank"&gt;http://unity3d.com/support/resources/unity-extensions/explosion-framework&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1422763392090230481?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1422763392090230481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/04/shark-attack-island.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1422763392090230481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1422763392090230481'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/04/shark-attack-island.html' title='Shark Attack Island'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/S7tDkbXeRmI/AAAAAAAAAHs/LOIL770SiL8/s72-c/sai.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-401262418758914177</id><published>2010-03-01T17:31:00.009-05:00</published><updated>2010-03-01T17:41:40.425-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Socket Server/Client Chat</title><content type='html'>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bB0DAD9PYvM/S4xAxi1jbcI/AAAAAAAAAHk/OscpiN708AA/s1600-h/Screen02.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 308px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/S4xAxi1jbcI/AAAAAAAAAHk/OscpiN708AA/s400/Screen02.JPG" alt="" id="BLOGGER_PHOTO_ID_5443797269493280194" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;I've written a Socket Server in C# and a Socket Client in Actionscript 3.0&lt;br /&gt;What you see in this picture is a server interface in the middle that logs server start, client connections and disconnections.&lt;br /&gt;It uses TCP traffic to a central server that relays messages to all clients currently connected to it. It acts as a chat program, but can be used to interface Adobe Flash and Microsoft .Net together! Using this concept, one could even make a Flash network game. Although the server app must be run on a Windows platform, the flash chat client works both on Windows and Macintosh. If anyone would like some code samples, please inquire.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-401262418758914177?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/401262418758914177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/03/socket-serverclient-chat.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/401262418758914177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/401262418758914177'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/03/socket-serverclient-chat.html' title='Socket Server/Client Chat'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/S4xAxi1jbcI/AAAAAAAAAHk/OscpiN708AA/s72-c/Screen02.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5236876357059039976</id><published>2010-02-02T16:39:00.003-05:00</published><updated>2010-02-02T16:47:45.217-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Valentines Day</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/vday" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 192px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/S2icOkYl-5I/AAAAAAAAAHU/9GiHnap3jyA/s400/vd.jpg" alt="" id="BLOGGER_PHOTO_ID_5433764724521434002" border="0" /&gt;&lt;/a&gt;I'm a total nerd. I made this for my fiancée as fun way to find out where we are going to Valentines Day.&lt;br /&gt;She has to unscramble four pictures one at a time. The four pictures are a Saint Helmet, Elmo, a plate with 2 steaks on it and House (the Dr. on the TV show). So you put them all together?&lt;br /&gt;St. Elmo's Steak House!&lt;br /&gt;&lt;br /&gt;I made all the graphics myself, given that I'm just a programmer I'd say I'm getting a little bit better.&lt;br /&gt;&lt;br /&gt;I wrote a cool little class that animates the instructions dynamic text field. (in the top left hand corner)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5236876357059039976?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5236876357059039976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/02/valentines-day.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5236876357059039976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5236876357059039976'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/02/valentines-day.html' title='Valentines Day'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/S2icOkYl-5I/AAAAAAAAAHU/9GiHnap3jyA/s72-c/vd.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-2691049381720173756</id><published>2010-02-02T16:20:00.002-05:00</published><updated>2010-02-02T16:36:07.217-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Hexart</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.hexart.info/" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 192px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/S2iX-15a_7I/AAAAAAAAAHM/ES3wPnT3WGk/s400/hexartblog.jpg" alt="" id="BLOGGER_PHOTO_ID_5433760056298110898" border="0" /&gt;&lt;/a&gt;Here's what it looks like.&lt;br /&gt;What is it? I've create a site where you upload any image you want and it goes through one block of pixels at a time, evaluating each blocks median color hex code and prints that value to screen. You can adjust the font size and the font density. Go ahead give it a try!&lt;br /&gt;&lt;br /&gt;Here's some code for ya!&lt;br /&gt;&lt;br /&gt;I wrote this bitmap slicer class. It works really well, just pass it a bitmap and how many slices you want to slice it into. Each slice is the same aspect ratio of the original image. The parameter "pieces" is the square root of the total squares that there will be. The more square, the more memory is use.&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;public static function Slice(origBitmap:Bitmap, pieces:int):Array{&lt;br /&gt;  var BitmapArray:Array = new Array();&lt;br /&gt;   &lt;br /&gt;  var recX:Number = 0;&lt;br /&gt;  var recY:Number = 0;&lt;br /&gt;  var recW:Number;&lt;br /&gt;  var recH:Number;&lt;br /&gt;  var aspctRatio:Number;&lt;br /&gt;  var destBitmap:Bitmap;&lt;br /&gt;  var totalSquares:Number;&lt;br /&gt;   &lt;br /&gt;  if(origBitmap.height &gt; origBitmap.width){&lt;br /&gt;     aspctRatio = origBitmap.width/origBitmap.height;&lt;br /&gt;     recH = Math.floor(origBitmap.height/pieces);&lt;br /&gt;     recW = Math.floor((origBitmap.height/pieces)*aspctRatio);&lt;br /&gt;     totalSquares = Math.floor(pieces * (origBitmap.width/recW));&lt;br /&gt;  }&lt;br /&gt;  else if(origBitmap.height &lt; origBitmap.width){&lt;br /&gt;     aspctRatio = origBitmap.height/origBitmap.width;&lt;br /&gt;     recW = Math.floor(origBitmap.width/pieces);&lt;br /&gt;     recH = Math.floor((origBitmap.width/pieces)*aspctRatio);&lt;br /&gt;     totalSquares = pieces * Math.floor(origBitmap.height/recH);&lt;br /&gt;  }&lt;br /&gt;  else{&lt;br /&gt;     aspctRatio = 1;&lt;br /&gt;     recW = (origBitmap.width/pieces);&lt;br /&gt;     recH = recW;&lt;br /&gt;     totalSquares = pieces * (origBitmap.height/recH);&lt;br /&gt;  }&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;  var xPos:Number;&lt;br /&gt;  var yPos:Number;&lt;br /&gt;  var colCounter:Number = 0;&lt;br /&gt;  var rowCounter:Number = 0;&lt;br /&gt;  for(var i:int = 0; i &lt; totalSquares; i++){&lt;br /&gt;     destBitmap = new Bitmap(new BitmapData(recW, recH),PixelSnapping.NEVER, true);&lt;br /&gt;     destBitmap.bitmapData.copyPixels(origBitmap.bitmapData, new Rectangle(recX+(recW*colCounter), recY+(recH*rowCounter), recW, recH), new Point(0, 0));&lt;br /&gt;     BitmapArray.push(destBitmap);&lt;br /&gt;     destBitmap = null;&lt;br /&gt;     colCounter++;&lt;br /&gt;     if(colCounter &gt;= pieces){&lt;br /&gt;          colCounter = 0;&lt;br /&gt;          rowCounter++;&lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;   &lt;br /&gt;  return BitmapArray;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This finds the median color of each bitmap slice&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//this finds the mean color for a bitmap data&lt;br /&gt;public static function get_median_hex(bd:BitmapData):uint{&lt;br /&gt;  var pixelValue:uint;&lt;br /&gt;  var red:Number = 0;&lt;br /&gt;  var green:Number = 0;&lt;br /&gt;  var blue:Number = 0;&lt;br /&gt;  var count:Number = 0;&lt;br /&gt;   &lt;br /&gt;  for (var i:int = 0; i &lt; bd.height; i++){&lt;br /&gt;     for (var j:int = 0; j &lt; bd.width; j++) {&lt;br /&gt;        pixelValue = bd.getPixel(j, i);&lt;br /&gt;     &lt;br /&gt;        red += pixelValue &gt;&gt; 16 &amp; 0xFF;&lt;br /&gt;        green += pixelValue &gt;&gt; 8 &amp; 0xFF;&lt;br /&gt;        blue += pixelValue &amp; 0xFF;&lt;br /&gt;        count++;&lt;br /&gt;     &lt;br /&gt;     }&lt;br /&gt;  }&lt;br /&gt;  red /= count;&lt;br /&gt;  green /= count;&lt;br /&gt;  blue /= count;&lt;br /&gt;  return red &lt;&lt; 16 | green &lt;&lt; 8 | blue;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-2691049381720173756?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/2691049381720173756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/02/hexart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/2691049381720173756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/2691049381720173756'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/02/hexart.html' title='Hexart'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/S2iX-15a_7I/AAAAAAAAAHM/ES3wPnT3WGk/s72-c/hexartblog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6063560082692756042</id><published>2010-02-02T12:59:00.004-05:00</published><updated>2010-02-02T13:03:06.226-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Xml Namespace</title><content type='html'>I've loaded various xmlns through Url Loaders and sometimes you just can't parse them because you have to first import the namespace. Here's an example (cause I keep forgetting)&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;br /&gt;namespace media= "http://search.yahoo.com/mrss/"; //for flickr&lt;br /&gt;use namespace media;&lt;br /&gt;namespace media= "http://www.w3.org/2005/Atom"; //for Atom&lt;br /&gt;use namespace media;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6063560082692756042?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6063560082692756042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/02/xml-namespace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6063560082692756042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6063560082692756042'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/02/xml-namespace.html' title='Xml Namespace'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-4130993618722298643</id><published>2010-01-19T17:05:00.006-05:00</published><updated>2010-02-01T14:12:28.238-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>FlashWars</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/flashwars" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 192px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/S1Ys4m06f9I/AAAAAAAAAG0/30NRC6xMDvE/s320/blog.jpg" alt="" id="BLOGGER_PHOTO_ID_5428575751848493010" border="0" /&gt;&lt;/a&gt;I finally wrote my own collision detection engine from scratch. This game may or may not mimic another game for a certain unnamed console. &lt;span style="font-weight: bold;"&gt;Earth is being attacked and it's up to you to save the world! There are two bosses you'll have to face before the earth can be set free of impending Armageddon via meteor attack! &lt;/span&gt;Get as many points as you can in order to reach them! High score is also implemented into the game(although I think my server is currently down, so you can play, but no high score).&lt;br /&gt;I've implemented a few new ideas into the game. Time bombs, lasers, bosses and background graphics to name a few. A mouse is pretty much required to play this game, because you click and hold to shoot. Moving the mouse will move the direction of fire. You can toggle special weapons with "1", "2", and "3", while "W", "A", "S", and "D", move the player around the screen. Give it a try, just click on the picture!&lt;br /&gt;&lt;br /&gt;The game actually ended up being a lot more work than I had originally planned. A lot of trig went into the enemy chase movements, as well as the firing direction.&lt;br /&gt;It just needs music now....&lt;br /&gt;&lt;br /&gt;The enemy graphics were created in flash, while the background images and some boss graphics were created in &lt;a href="http://www.blender.org/" target="blank"&gt;Blender&lt;/a&gt;&lt;br /&gt;The Earth is from my &lt;a href="http://flasharp.blogspot.com/2009/07/phong-shader.html" target="blank"&gt;Papervision Phong Shader demo.&lt;/a&gt; I found an Earth cloud map and warped it to the earth in Photoshop.&lt;br /&gt;&lt;br /&gt;26 Actionscript classes, 1598 lines of code. I tried really hard to keep it as efficient as possible.&lt;br /&gt;&lt;br /&gt;If anyone has any questions about the game or its collision detection engine, feel free to contact me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-4130993618722298643?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/4130993618722298643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2010/01/flashwars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4130993618722298643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4130993618722298643'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2010/01/flashwars.html' title='FlashWars'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/S1Ys4m06f9I/AAAAAAAAAG0/30NRC6xMDvE/s72-c/blog.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7730208756187631389</id><published>2009-12-16T22:48:00.005-05:00</published><updated>2010-01-04T01:29:40.219-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Screens RSS Dashboard</title><content type='html'>FINALLY!!!!!!! I've finished it!&lt;br /&gt;Make sure your speakers are on!&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/h68KQypeNvA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/h68KQypeNvA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Capabilities&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Takes advantage of muli-threading&lt;/li&gt;&lt;li&gt;Can post status updates to Twitter and Facebook&lt;/li&gt;&lt;li&gt;Displays local weather and traffic&lt;/li&gt;&lt;li&gt;OCRemix latest remixes mp3 player&lt;/li&gt;&lt;li&gt;Shows new comments on my Flickr photos&lt;/li&gt;&lt;li&gt;Sends and receives Gmail&lt;/li&gt;&lt;li&gt;Fully functional YouTube player (can even search for new videos)&lt;/li&gt;&lt;li&gt;Each module updates automatically after 1 hour but user can update at will by clicking the modules logo.&lt;/li&gt;&lt;li&gt;Toggles fullscreen, on and off with F10, similar to a mac dashboard, but better:)&lt;/li&gt;&lt;/ul&gt;Many hours of research were necessary to make this happen. I've still got some memory testing to under go, but it's stable and I've shot down the memory leaks.&lt;br /&gt;&lt;br /&gt;Weather Icon Set - thanks to &lt;a href="http://joshj132.deviantart.com/art/Touchflo-weather-HD-133213861" target="blank"&gt;http://joshj132.deviantart.com/art/Touchflo-weather-HD-133213861&lt;/a&gt;&lt;br /&gt;Music in the YouTube video - 'Aire Tam Break' : thanks to &lt;a href="http://ocremix.org/artist/4754/fishy" target="blank"&gt;http://ocremix.org/artist/4754/fishy&lt;/a&gt;&lt;br /&gt;Module Logos, found in various places online.&lt;br /&gt;&lt;br /&gt;All other graphics were created by me!&lt;br /&gt;&lt;br /&gt;I'm thinking about releasing this as a free download. Would anybody be interested?&lt;br /&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;OLD POST:&lt;br /&gt;&lt;br /&gt;I've been working on this project for about a month now. It's a Mac-like dashboard but for Windows. The idea is that instead of lame widgets that I'll never use, I've combined every main site that I frequent along with several main social networks via their api's and browser impersonating web requests to create one centralized location where all my interested live data is found. (All I have to do is hit F10 to toggle it!, or whatever key you decide to bind it to).&lt;br /&gt;&lt;br /&gt;It's a C# win form, that goes fullscreen and hides the taskbar. It embeds flash through an Active-X control that has all the "widgets" for you to interact with. It's transparent too so you can see straight through to your desktop background.&lt;br /&gt;&lt;br /&gt;So far I've developed modules for&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Facebook (can post status update)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gmail (can preview, and send emails)&lt;/li&gt;&lt;li&gt;Twitter (can post status update)&lt;/li&gt;&lt;li&gt;Flickr (can see any new photo comments on my photostream)&lt;/li&gt;&lt;li&gt;OCRemix.org (plays any selected new remix locally in the flash file)&lt;/li&gt;&lt;li&gt;local weather&lt;/li&gt;&lt;li&gt;local traffic (gives me live traffic updates...I live in the city so that helps)&lt;/li&gt;&lt;/ul&gt;I'm currently working on a YouTube player module that will be able to play/search any video on youtube.&lt;br /&gt;&lt;br /&gt;I'll post more soon when I get it finished!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7730208756187631389?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7730208756187631389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/12/super-rss-dashboard.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7730208756187631389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7730208756187631389'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/12/super-rss-dashboard.html' title='Screens RSS Dashboard'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-3479066422181586467</id><published>2009-11-09T08:19:00.007-05:00</published><updated>2009-11-09T13:55:51.818-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Tetris</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/tetris" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/Svgd_mD1guI/AAAAAAAAAF4/aLZcOZ5qhbs/s320/g.jpg" alt="" id="BLOGGER_PHOTO_ID_5402100731416511202" border="0" /&gt;&lt;/a&gt;After years of programming, I had always wanted to make a game. I had heard that Tetris was a good place to start. I encountered many hurdles but successfully overcame most of them.&lt;br /&gt;&lt;br /&gt;collision detection engine&lt;br /&gt;an engine to remove tetris lines&lt;br /&gt;look ahead rotation/collision detection&lt;br /&gt;&lt;br /&gt;There are definitely still some bugs in it but it's close enough for now. Perhaps someday I'll fix the bugs but for now I really don't care:)&lt;br /&gt;&lt;br /&gt;The graphic design was done by Ronnie Fenwick&lt;br /&gt;The background images were from my &lt;a href="http://flickr.com/seabass223" target="blank"&gt;flickr photostream&lt;/a&gt; and then filtered in photoshop.&lt;br /&gt;Beta-Testing was done by many of my friends(greatly appreciated)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dotnetdust.blogspot.com/" target="blank"&gt;Daryl Labar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Josh Pate&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://secondepoch.com/" target="blank"&gt;Matt Pullin&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="mailto:brandonkharris@gmail.com" target="blank"&gt;Brandon Harris&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.wondercreationstudios.com/" target="blank"&gt;Chad Jordan&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Randen Swartz&lt;/li&gt;&lt;/ul&gt;The music is from &lt;a href="http://www.8bitdaily.com/" target="blank"&gt;http://www.8bitdaily.com/&lt;/a&gt; and used under the &lt;a href="http://creativecommons.org/licenses/by-nc-sa/2.5/" target="blank"&gt;creative commons license&lt;/a&gt;&lt;br /&gt;This website and it's content's composers are in no way affiliated with this Tetris demo application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-3479066422181586467?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/3479066422181586467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/11/tetris.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/3479066422181586467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/3479066422181586467'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/11/tetris.html' title='Tetris'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/Svgd_mD1guI/AAAAAAAAAF4/aLZcOZ5qhbs/s72-c/g.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5910928055410236087</id><published>2009-10-06T15:14:00.004-04:00</published><updated>2009-10-06T18:00:21.484-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Google Maps API</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/map" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/Ssuuog23cXI/AAAAAAAAAFk/vr1iUbRzF-8/s320/map.jpg" alt="" id="BLOGGER_PHOTO_ID_5389593390116991346" border="0" /&gt;&lt;/a&gt;Using Google Maps Api, I've created my own xml driven map program with completely customizable pop-ups and map locations. It's actually very easy and only took me about an afternoon to figure out.&lt;br /&gt;&lt;a href="http://www.kylesebestyen.net/map/xml/data.xml" target="blank"&gt;Check out the xml file that drives it too.&lt;/a&gt;&lt;br /&gt;There's still quite a bit of code that you have to write to interact with the api's libraries, but Google definately makes it easier.&lt;br /&gt;&lt;a href="http://code.google.com/apis/maps/documentation/flash/reference.html" target="blank"&gt;Here's their online documentation.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5910928055410236087?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5910928055410236087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/10/google-maps-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5910928055410236087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5910928055410236087'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/10/google-maps-api.html' title='Google Maps API'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/Ssuuog23cXI/AAAAAAAAAFk/vr1iUbRzF-8/s72-c/map.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-4921914139531026913</id><published>2009-09-15T17:23:00.004-04:00</published><updated>2009-09-21T12:58:04.871-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Blades: Concept Image Gallery</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/blades" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/SrAF98UUSxI/AAAAAAAAAFc/tIfMBe45Xxs/s320/blades.jpg" alt="" id="BLOGGER_PHOTO_ID_5381808116429245202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've been playing around with this for a long time and I finally decided to finish it. It's just a concept image gallery I've called Blades.&lt;br /&gt;It's dynamically generated via an xml file and virtually everything (except the spinning pre-loaded and the images themselves) are created through code(All graphics and animations).&lt;br /&gt;&lt;br /&gt;Hover your mouse over each image to expand the pane. Go ahead and try to break it. I DARE you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-4921914139531026913?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/4921914139531026913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/09/blades-concept-image-gallery.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4921914139531026913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4921914139531026913'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/09/blades-concept-image-gallery.html' title='Blades: Concept Image Gallery'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/SrAF98UUSxI/AAAAAAAAAFc/tIfMBe45Xxs/s72-c/blades.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7437459217761913126</id><published>2009-09-14T16:25:00.004-04:00</published><updated>2010-04-25T23:40:37.362-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Journey Church</title><content type='html'>&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/Sq6m_MSMdUI/AAAAAAAAAFU/FXfj72FGIGE/s320/stage.jpg" alt="" id="BLOGGER_PHOTO_ID_5381422209313830210" border="0" /&gt;This flash site is entirely driven off of C#/ASP.NET CMS. It uses LINQ to SQL to store data into the SQL database. It communicates with the flash via a web service that returns xml to the flash site, giving it it's dynamic content.&lt;br /&gt;&lt;br /&gt;The CMS uses a lite implementation of the FCKEditor, as well as some custom pages that allow images to be uploaded to the home page rotator and can determine which section of the site each rotator image links to.&lt;br /&gt;This site was a lot of fun because I learned a lot more about the &lt;a href="http://blog.greensock.com/" target="blank"&gt;greensock &lt;/a&gt;tween class, which I've been using for about 6 months now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7437459217761913126?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7437459217761913126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/09/journey-church.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7437459217761913126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7437459217761913126'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/09/journey-church.html' title='Journey Church'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/Sq6m_MSMdUI/AAAAAAAAAFU/FXfj72FGIGE/s72-c/stage.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7547410196393579132</id><published>2009-09-01T09:56:00.005-04:00</published><updated>2009-09-21T12:58:36.067-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>AS3 Flash Vars</title><content type='html'>it's nothing new, I just keep forgetting how to do it. So here it is so I will never have to look it up again!&lt;br /&gt;&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;import flash.display.LoaderInfo;&lt;br /&gt;try {&lt;br /&gt; var allFlashVars:Object = LoaderInfo(this.root.loaderInfo).parameters;&lt;br /&gt; img_path = String(allFlashVars["path"]);&lt;br /&gt;  &lt;br /&gt; if (img_path.toString() == String(undefined)){&lt;br /&gt;   throw new Error("FlashVars did not load");&lt;br /&gt; }&lt;br /&gt; }catch(e:Error){&lt;br /&gt;   //error_txt.text = "did not load flash vars";&lt;br /&gt;   img_path = "path_to_my_image.jpg";&lt;br /&gt; }&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7547410196393579132?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7547410196393579132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/09/as3-flash-vars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7547410196393579132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7547410196393579132'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/09/as3-flash-vars.html' title='AS3 Flash Vars'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-4638525863561149892</id><published>2009-08-06T14:46:00.007-04:00</published><updated>2009-09-21T12:59:09.801-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>The Green Room</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/pager/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/SnslENWJNII/AAAAAAAAAEw/xES1eP2GMOQ/s320/room.jpg" alt="" id="BLOGGER_PHOTO_ID_5366924135174321282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is my most ambitious project yet. It integrates UV Mapping with a 3D model that I created in Blender. Also I've integrated a 3D interactive page flip using the &lt;a href="http://www.everydayflash.com/blog/index.php/2008/09/03/as3dmod/" target="blank"&gt;as3mod library&lt;/a&gt;. It works with most flash 3D engines.&lt;br /&gt;&lt;br /&gt;I created the 3D mesh in Blender, UV Mapped the mesh, exported to a .DAE file, and imported the .DAE into papervision at run-time. It works really well although I had a lot of performance issues at first with triangles z-fighting. It is a common problem with the papervision rendering engine.&lt;br /&gt;After reading through many forums, I finally figured out how to solve this problem and keep my cpu cylces low. I used separate viewport layers for each object that was having z-fighting issues.&lt;br /&gt;&lt;br /&gt;here's an example&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;var obj_layer:ViewportLayer = viewport.getChildLayer(my_3D_Display_Object);&lt;br /&gt;obj_layer.layerIndex = 1;&lt;br /&gt;&lt;br /&gt;//tell the viewport to sort by z-indexing&lt;br /&gt;viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;&lt;br /&gt;&lt;br /&gt;//I have an array of viewportLayers that I send to the rendering engine.&lt;br /&gt;layers.push(obj_layer);&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I was able to further tweak the performance by only removing things from the "layers" array that did not need updating once they've been rendered. For example...when you click on the book, the camera zooms in. Once it's stopped zooming in, it no longer needs to update the room mesh, just the book. So I remove the room's viewport layer from the layer array and viola...the rendering engine does not perform calculations on it until the user clicks the book's back button to return to the room view.&lt;br /&gt;&lt;br /&gt;There are still a few z-index issues as well as camera rotation issues. The room does not spin, the camera spins around the room, I just constantly update the cameras degrees and run them through my formula, thus moving the camera in a circular motion around the 3D scene.&lt;br /&gt;&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;camera.x = 3800 * (Math.sin(degrees * (Math.PI/180)));&lt;br /&gt;camera.y = 3800 * (Math.cos(degrees * (Math.PI/180)));&lt;br /&gt;camera.rotationZ = (360-(degrees-180));&lt;br /&gt;degrees += inertiaX;&lt;br /&gt;if (!dragging) {&lt;br /&gt;inertiaY *= .92;&lt;br /&gt;inertiaX *= .92;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I also made the background design and the wallpaper myself in photoshop:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-4638525863561149892?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/4638525863561149892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/08/green-room.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4638525863561149892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4638525863561149892'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/08/green-room.html' title='The Green Room'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/SnslENWJNII/AAAAAAAAAEw/xES1eP2GMOQ/s72-c/room.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-131188762198977741</id><published>2009-07-28T19:44:00.011-04:00</published><updated>2009-09-21T12:59:25.504-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Augmented Reality</title><content type='html'>This one takes a little bit of time and money to figure out. It's really really cool though. At a glance, Augmented Reality is just flash accessing your web cam, scanning for a specific pattern, and then orienting a 3D scene to that pattern.&lt;br /&gt;&lt;br /&gt;Here are two demo's I've been able to build from it so far!&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/rose_ar/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/Sm-Tx9_fZEI/AAAAAAAAAEg/iKHTAAqSYyw/s320/rse.jpg" alt="" id="BLOGGER_PHOTO_ID_5363668167885284418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/ar/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/Sm-UMzJicAI/AAAAAAAAAEo/gk0qq4rnm-c/s320/tre.jpg" alt="" id="BLOGGER_PHOTO_ID_5363668628831105026" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-131188762198977741?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/131188762198977741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/07/augmented-reality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/131188762198977741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/131188762198977741'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/07/augmented-reality.html' title='Augmented Reality'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/Sm-Tx9_fZEI/AAAAAAAAAEg/iKHTAAqSYyw/s72-c/rse.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-3927257437344854881</id><published>2009-07-10T09:47:00.006-04:00</published><updated>2009-09-21T12:59:37.699-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Phong Shader</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/earth_phong_shader.swf" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/SldHb4zq6xI/AAAAAAAAAEQ/V_ajB4AAdXM/s320/phong.jpg" alt="" id="BLOGGER_PHOTO_ID_5356828826211642130" border="0" /&gt;&lt;/a&gt; Yes I know, another 3D earth! But this one is different. It's got a dynamic light source that gives a true feel of the earth rotating around the sun. Click and drag your mouse in any direction to change the POV and see the light source move with it. Very cool if you ask me:)&lt;br /&gt;Sorry if it kills your cpu. Phong shaders don't play nicely with the CPU...oh flash when will you utilize the GPU. (CS4 says that it does but let's not fool ourselves)&lt;br /&gt;I've created a phong shader material and have mapped a light source with a texture of the earth. thanks nasa:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-3927257437344854881?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/3927257437344854881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/07/phong-shader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/3927257437344854881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/3927257437344854881'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/07/phong-shader.html' title='Phong Shader'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/SldHb4zq6xI/AAAAAAAAAEQ/V_ajB4AAdXM/s72-c/phong.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6676116185726858996</id><published>2009-07-07T16:34:00.004-04:00</published><updated>2009-09-21T12:59:50.666-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><title type='text'>MVC with jQuery/Ajax + xVal</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jakkd.info/mvc/Run" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/SlOxpof49KI/AAAAAAAAAEI/PKp9o0tjNXo/s320/mvc.jpg" alt="" id="BLOGGER_PHOTO_ID_5355819710677578914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is my first MVC (Model View Controller) site that I've been experimenting with. It uses a lot of jQuery/Ajax to accomplish it's many tasks.&lt;br /&gt;I did my best to simulate what a new Facebook post looks like.&lt;br /&gt;Fill out all the fields, select a date from the calendar and click "Add Run"&lt;br /&gt;You'll see it add a new run to the "jog log" just like a Facebook post would do.&lt;br /&gt;&lt;br /&gt;It's also got some snazy client side form validation (so the user doesn't have to wait for the server to tell them that they've not filled out something correctly)&lt;br /&gt;It uses xVal to write the validation rules on the server side (in C#). Then at run time the xVal framework spits out the rules in minified javascript.&lt;br /&gt;&lt;br /&gt;You'll still need to have server side validation for security purposes, but you can still validate against the original rules you wrote in C# so you only have to write the rules once.&lt;br /&gt;&lt;br /&gt;Here are the order of events to give you an idea of how it works.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fill out all fields correclty&lt;/li&gt;&lt;li&gt;Click "Add Run"&lt;/li&gt;&lt;li&gt;javascript wraps values into an object and posts them to the server&lt;/li&gt;&lt;li&gt;server validates the objects values&lt;/li&gt;&lt;li&gt;if not valid, it throws an error which is then handled my javascript and makes a pop-up box that says "fill out all fields correclty"&lt;/li&gt;&lt;li&gt;if successfully added to the database, it runs a javascript success function that calls some javascript animating functions that slide the div down and fade in the new record.&lt;/li&gt;&lt;/ul&gt;All actions rely upon one another. So it won't add a record visually to the html before it has added it to the database...the same goes for the delete function.&lt;br /&gt;&lt;br /&gt;The functionality is cross-browser although I did not take the time to necessarily make it cross-browser as far as css goes.&lt;br /&gt;&lt;br /&gt;Either way it's a successfull example of how the jQuery and xVal plays with MVC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6676116185726858996?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6676116185726858996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/07/mvc-with-jqueryajax-xval.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6676116185726858996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6676116185726858996'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/07/mvc-with-jqueryajax-xval.html' title='MVC with jQuery/Ajax + xVal'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/SlOxpof49KI/AAAAAAAAAEI/PKp9o0tjNXo/s72-c/mvc.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1797156059279565757</id><published>2009-07-07T16:18:00.004-04:00</published><updated>2009-09-21T13:00:32.825-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>http://jakkd.info</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jakkd.info/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/SlOtq87GoiI/AAAAAAAAAEA/4OPrVXSu6x4/s320/jakkd.jpg" alt="" id="BLOGGER_PHOTO_ID_5355815335293788706" border="0" /&gt;&lt;/a&gt;jakkd.info is a biking website I made for my sister. She's going on a cross country biking trip with her friends and wanted a site to be able to update pictures and statuses...etc.&lt;br /&gt;My co-worker made the graphics. There's a link to her site at the bottom of jakkd.info&lt;br /&gt;&lt;br /&gt;jakkd are the initials of all the people on the trip. I tried to convince them it was a bad domain name, but you know how the clients can be.....&lt;br /&gt;&lt;br /&gt;So any way, I made them a login page too so that they can securely update their entire site's contents as the want. Very cool if you ask me.&lt;br /&gt;The back end CMS is written in C# and uses a SQL database. As always they comminicate through a web service.&lt;br /&gt;&lt;br /&gt;There are 3 admin sections.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Blog&lt;/li&gt;&lt;li&gt;Route&lt;/li&gt;&lt;li&gt;Gallery&lt;/li&gt;&lt;/ol&gt;The Blog section allows you to add/edit/delete any blog post&lt;br /&gt;The Route Section is a drop down box that allows you to select any city name along the route of the trip and it will automatically connect the dots of every city they have ridden through, highlighting the current city location.&lt;br /&gt;The Gallery section allows you to upload an image of any size. It will save a thumbnail version of it as well as a custome sized image for the actual flash gallery.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1797156059279565757?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1797156059279565757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/07/httpjakkdinfo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1797156059279565757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1797156059279565757'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/07/httpjakkdinfo.html' title='http://jakkd.info'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/SlOtq87GoiI/AAAAAAAAAEA/4OPrVXSu6x4/s72-c/jakkd.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5003401502528700054</id><published>2009-06-30T09:33:00.004-04:00</published><updated>2009-09-21T13:01:06.079-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Visual Studio + Firefox</title><content type='html'>Firefox has known performance issues when debugging locally with visual studios.&lt;br /&gt;The fix? Right here &lt;a href="http://damianm.com/tech/tip-speed-up-firefox-for-asp-net-development/"&gt;http://damianm.com/tech/tip-speed-up-firefox-for-asp-net-development/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;in the firefox address bar:&lt;br /&gt;navigate to about:config&lt;br /&gt;find the entry: network.dns.ipv4OnlyDomains&lt;br /&gt;double click on it and change it to localhost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5003401502528700054?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5003401502528700054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/06/visual-studio-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5003401502528700054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5003401502528700054'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/06/visual-studio-firefox.html' title='Visual Studio + Firefox'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-8085208597222480339</id><published>2009-06-03T15:42:00.004-04:00</published><updated>2009-09-21T13:01:38.938-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Garbage Collector</title><content type='html'>Throughout the past few applications that I've made at work, I've found constantly run into one problem that I spend a lot of time tweaking. Managing memory. Actionscript 3 does not automate this process very well. I've found a few helpful techniques to run the Garbage Collector at will, although I still feel that it is a wild and uncontrollable wind, I'm at least hopeful to control it.&lt;br /&gt;&lt;br /&gt;GSSkinner explains the concepts really well.&lt;br /&gt;&lt;a href="http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html" target="blank"&gt;http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of my most used methods of manual garbage collection is to remove all children in a main section MovieClip, just before I remove it from stage.&lt;br /&gt;for example&lt;br /&gt;&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//remove all of the children&lt;br /&gt;while(parent.numChildren &gt; 0){&lt;br /&gt;   parent.removeChildAt(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//remove the parent&lt;br /&gt;removeChild(parent);&lt;br /&gt;&lt;br /&gt;//run the garbage colletor&lt;br /&gt;import flash.system.System;&lt;br /&gt;System.gc();&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Also you can monitor the swf's total memory usage via&lt;br /&gt;System.totalMemory;&lt;br /&gt;I usually set up something like this&lt;br /&gt;&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;private var peak:Number = 0;&lt;br /&gt;private function mem_test():void{&lt;br /&gt;          if (System.totalMemory &gt; peak)&lt;br /&gt;          peak = System.totalMemory;&lt;br /&gt;&lt;br /&gt;          mem_txt.text = "current memory: " + (System.totalMemory/1024).toString() + "\r" + "peak memory: " + (peak/1024).toString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;setInterval(mem_test,1000);&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-8085208597222480339?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/8085208597222480339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/06/garbage-collector.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8085208597222480339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8085208597222480339'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/06/garbage-collector.html' title='Garbage Collector'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-8518272743491813763</id><published>2009-04-30T14:14:00.004-04:00</published><updated>2009-09-21T13:01:48.017-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>3D Sound Spectrum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/sound.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/SfnqmfV_M2I/AAAAAAAAAD4/a4ekgzTr4sg/s320/sound.jpg" alt="" id="BLOGGER_PHOTO_ID_5330549580939342690" border="0" /&gt;&lt;/a&gt;Move your mouse around to get a fresh point of view!&lt;br /&gt;&lt;br /&gt;I decided to mess around with some sound frequency animations using 3D cubes in papervision. It's a pretty beautiful application for such a simple concept.&lt;br /&gt;Each squished 3D cube represents a sound frequency. There are 20 cubes and the human range of hearing is 20Hz - 20,000Hz (no longer mine thanks to years of guitar!). Therefore each cube is exactly 999Hz from its neighbor.&lt;br /&gt;&lt;br /&gt;I've done a bunch of cool animations too! All of them done through code using tweens and lots and lots of trig:) Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-8518272743491813763?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/8518272743491813763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/04/3d-sound-spectrum.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8518272743491813763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8518272743491813763'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/04/3d-sound-spectrum.html' title='3D Sound Spectrum'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/SfnqmfV_M2I/AAAAAAAAAD4/a4ekgzTr4sg/s72-c/sound.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-4382792441241887839</id><published>2009-04-28T12:23:00.007-04:00</published><updated>2009-09-21T13:01:27.382-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Primary Color Detection</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/studio_vibe.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/SfcuS95NwHI/AAAAAAAAADw/oUsELKZSSRs/s320/sv.jpg" alt="" id="BLOGGER_PHOTO_ID_5329779587403333746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I call it &lt;span style="font-weight: bold;"&gt;Studio Vibe.&lt;/span&gt; It shows off quite a bit of functionality I've been able to create. The main technology here being an algorithm to determine the main color of any dynamically loaded image. It then creates a pretty studio like background that inherits the loaded images main color.&lt;br /&gt;My good friend &lt;a href="http://www.myspace.com/afterx" target="blank"&gt;Josh Pate&lt;/a&gt; helped me out a lot by telling me what functionality was good to leave or take out after I had round 1 finished.&lt;br /&gt;&lt;br /&gt;This is using Papervision 3D of course, to accomplish the 3d effects you see going on with the camera. The application also uses my bitmapSlicer class, you can see demonstrated whenever you click on the picture, each papervision plane rotates on the x-axis.&lt;br /&gt;The tricky part was resizing the Papervision planes when I load an image of a different size. I had to actually tween each planes verticies to stretch or shrink them to the appropriate size and constantly update the bitmapMaterial while doing so.&lt;br /&gt;It was a bit more math than I had hoped, but I was able to figure it out:)&lt;br /&gt;&lt;br /&gt;The images are all images I've taken myself and done some post processing in photoshop. You can find my images at &lt;a href="http://flickr.com/seabass223" target="blank"&gt;my flickr page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This Studio Vibe application serves best as a concept image gallery. I'd be glad to sell one to anyone who's interested:)&lt;br /&gt;&lt;br /&gt;Now for some code&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//I was able to get really close without googling for help&lt;br /&gt;but thanks to &lt;a href="http://blog.soulwire.co.uk/flash/actionscript-3/extract-average-colours-from-bitmapdata/" target="blank"&gt;blog.soulwire.co.uk&lt;/a&gt; for some missing pieces!&lt;br /&gt;//this part finds the median hex color value of any image&lt;br /&gt;&lt;br /&gt;public function get_median_hex(bd:BitmapData):uint{&lt;br /&gt;var pixelValue:uint;&lt;br /&gt;var red:Number = 0;&lt;br /&gt;var green:Number = 0;&lt;br /&gt;var blue:Number = 0;&lt;br /&gt;var count:Number = 0;&lt;br /&gt;&lt;br /&gt;for (var i:int = 0; i &lt; int =" 0;" pixelvalue =" bd.getPixel(j,"&gt;&gt; 16 &amp;amp; 0xFF;&lt;br /&gt; green += pixelValue &gt;&gt; 8 &amp;amp; 0xFF;&lt;br /&gt; blue += pixelValue &amp;amp; 0xFF;&lt;br /&gt; count++;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;red /= count;&lt;br /&gt;green /= count;&lt;br /&gt;blue /= count;&lt;br /&gt;&lt;br /&gt;return red &lt;&lt; update =" true;" number =" (slices[0].width" number =" (slices[0].height" int =" 1;" number =" -(loaded_content.width" number ="  (loaded_content.height" vertex3d =" p.geometry.vertices[0];" vertex3d =" p.geometry.vertices[1];" vertex3d =" p.geometry.vertices[2];" vertex3d =" p.geometry.vertices[3];" vertex3d =" (p.getChildByName(" vertex3d =" (p.getChildByName(" vertex3d =" (p.getChildByName(" vertex3d =" (p.getChildByName(" index ="=""&gt; 1 &amp;amp;&amp;amp; index % num_sections == 0) {&lt;br /&gt;    yPos -= slices[0].height;&lt;br /&gt;    xPos = -(loaded_content.width / 2) + ((loaded_content.width/num_sections)/2);&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   index++;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-4382792441241887839?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/4382792441241887839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/04/primary-color-detection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4382792441241887839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/4382792441241887839'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/04/primary-color-detection.html' title='Primary Color Detection'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/SfcuS95NwHI/AAAAAAAAADw/oUsELKZSSRs/s72-c/sv.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7921769778250535340</id><published>2009-04-21T16:51:00.007-04:00</published><updated>2009-09-21T13:01:58.392-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Geocoding Earth</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/earth.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/Se4x-XubPQI/AAAAAAAAADo/NV3r_i3pPeM/s320/log.jpg" alt="" id="BLOGGER_PHOTO_ID_5327250356816264450" border="0" /&gt;&lt;/a&gt;One of my most complex works yet. This 3D planet maps several &lt;a href="http://en.wikipedia.org/wiki/Mercator_projection" target="blank"&gt;Mercator Projections&lt;/a&gt; of the Earth (courtesy Nasa). You'll notice a reflection on the surface. (not really necessary but I like the effect).&lt;br /&gt;That is achieved through a papervision EnvMap or Environment Map. A subtle glow effect is added around the earth to add atmosphere.&lt;br /&gt;&lt;br /&gt;The coolest part of this app is the &lt;a href="http://en.wikipedia.org/wiki/Geocoding" target="blank"&gt;Geocoding&lt;/a&gt;. You type in any address in the world (include the city name) and it sends it off to google, who kindly returns me a latitude and longitude coordinates. I then project those coordinates using a sphere and placing it at the correct location, thus highlighting the exact address you typed in. (I had help with the formula from &lt;a href="http://blog.zupko.info/?p=221" target="blank"&gt;http://blog.zupko.info/?p=221&lt;/a&gt; on this part.) Go ahead try it! (click on the image above)&lt;br /&gt;&lt;br /&gt;Here's some code for ya!&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;&lt;br /&gt;//i've already loaded bitmap data from external jpg files into local variables cloud_texture, earth_texture, and bump_texture&lt;br /&gt;&lt;br /&gt;var earth_Shader:GouraudShader = new GouraudShader(light, 0xFFFFFF, 0x111111, 30);&lt;br /&gt;&lt;br /&gt;//EnvMap gives us our reflection, the bump_texture gives us the small peaks and valleys on the earth&lt;br /&gt;var earth_env:EnvMapShader = new EnvMapShader(light, cloud_texture, earth_texture, 0x0034c1, bump_texture);&lt;br /&gt;var earth_mat:ShadedMaterial = new ShadedMaterial(new BitmapMaterial(earth_texture), earth_env, 0);&lt;br /&gt;&lt;br /&gt;//let there be stars!!&lt;br /&gt;var stars:ParticleField = new ParticleField(new ParticleMaterial(0xFFFFFF, .4, 1), 500);&lt;br /&gt;scene.addChild(stars);&lt;br /&gt;&lt;br /&gt;var earth:Sphere = new Sphere(earth_mat, 50, 25, 25);&lt;br /&gt;scene.addChild(earth);&lt;br /&gt;&lt;br /&gt;//this accomplishes the blurred glow effect around our 3D Earth&lt;br /&gt;var bfx:BitmapEffectLayer = new BitmapEffectLayer(viewport, 1000, 1000, true, 0, "CLEAR_POST", false, true);//very important to set the last param to true! Otherwise the glow will continue to concatenate to itself! AHHH!&lt;br /&gt;&lt;br /&gt;var gf:GlowFilter = new GlowFilter(0x00aaf6, .2, 5, 30, 2, 1, false);&lt;br /&gt;var ble:BitmapLayerEffect = new BitmapLayerEffect(gf);&lt;br /&gt;bfx.addEffect(ble);&lt;br /&gt;viewport.containerSprite.addLayer(bfx);&lt;br /&gt;bfx.addDisplayObject3D(earth);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//GeoCoding Functions&lt;br /&gt;//I have this built into its own separate class&lt;br /&gt;&lt;br /&gt;//Google makes you use their API. I tried over and over to make a simple URLRequest to get the coords...it worked just great locally, but as soon as I posted it to the server..nothin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import com.google.maps.Map;&lt;br /&gt;import com.google.maps.MapEvent;&lt;br /&gt;import com.google.maps.services.*&lt;br /&gt;&lt;br /&gt;//You only get access to the geocoder once a new Map Object has been instantiated&lt;br /&gt;public function GPS(stage:*){&lt;br /&gt;map = new Map();&lt;br /&gt;map.key = "my_google_maps_api_key_here";&lt;br /&gt;map.addEventListener(MapEvent.MAP_READY, onMapReady);&lt;br /&gt;map.visible = false;&lt;br /&gt;stage.addChild(map);&lt;br /&gt;&lt;br /&gt;function onMapReady(event:Event):void {&lt;br /&gt;trace(map);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//when user clicks on the find button, receive address as string, and call back function for when processing is complete.&lt;br /&gt;public function Get_Coords_From_Address(address:String, callBack:Function) {&lt;br /&gt;&lt;br /&gt;//format the address for google maps api&lt;br /&gt;var temp:Array = address.split(" ");&lt;br /&gt;address = temp.join("+").toString();&lt;br /&gt;&lt;br /&gt;//call their geocoder, it just makes a URLRequest with special params&lt;br /&gt;var geocoder:ClientGeocoder = new ClientGeocoder();&lt;br /&gt;geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS, handleGeocodingSuccess);&lt;br /&gt;geocoder.geocode(address);&lt;br /&gt;&lt;br /&gt;//geocode received successfully now parse out latitude and longitude and return for mapping!&lt;br /&gt;function handleGeocodingSuccess(e:GeocodingEvent) {&lt;br /&gt;var t1:int = e.response.placemarks.toString().indexOf("@(") + 2;&lt;br /&gt;var t2:int = e.response.placemarks.toString().indexOf(")");&lt;br /&gt;var data:String = e.response.placemarks.toString().substring(t1, t2);&lt;br /&gt;callBack(data);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//here is the callback function&lt;br /&gt;function callBack(data:String){&lt;br /&gt;trace(coords);&lt;br /&gt;           var lat:Number = parseInt(coords[0]);&lt;br /&gt;           var lon:Number = parseInt(coords[1]);&lt;br /&gt;     &lt;br /&gt;           //convert_coords_to_rotation(lat, lon);&lt;br /&gt;           var phi:Number = (90-lat)*(Math.PI/180);&lt;br /&gt;           var theta:Number = (lon+180)*(Math.PI/180);&lt;br /&gt;     &lt;br /&gt;           //create the marker&lt;br /&gt;           var marker:Sphere = new Sphere(new ShadedMaterial(new BitmapMaterial(new BitmapData(20,20,false,0x00aaf6)), new PhongShader(light, 0x00aaf6)),1,5,5);&lt;br /&gt;&lt;br /&gt;           //figure the spatial coords in which the sphere should be placed (will be placed directly over the address that the user entered..code courtesy &lt;a href="http://blog.zupko.info/?p=221" target="blank"&gt;http://blog.zupko.info/?p=221&lt;/a&gt;)&lt;br /&gt;           var fx:Number = (earth_radius+3) * Math.sin(phi)*Math.cos(theta);&lt;br /&gt;           var fz:Number = (earth_radius+3) * Math.sin(phi)*Math.sin(theta);&lt;br /&gt;           var fy:Number = (earth_radius+3) * Math.cos(phi);&lt;br /&gt;     &lt;br /&gt;           earth.addChild(marker);&lt;br /&gt;           bfx.addDisplayObject3D(marker);&lt;br /&gt;     &lt;br /&gt;           marker.x = 0;&lt;br /&gt;           marker.y = 300;&lt;br /&gt;           marker.z = 0;&lt;br /&gt;           marker.alpha = 0;&lt;br /&gt;           //animate the sphere into place from 300 pixels north&lt;br /&gt;           TweenMax.to(marker, 2, { x:fx, y:fy, z:fz, ease:Regular.easeOut, alpha:1 } );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7921769778250535340?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7921769778250535340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/04/geocoding-earth.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7921769778250535340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7921769778250535340'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/04/geocoding-earth.html' title='Geocoding Earth'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/Se4x-XubPQI/AAAAAAAAADo/NV3r_i3pPeM/s72-c/log.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6686009697162648031</id><published>2009-04-02T18:14:00.006-04:00</published><updated>2009-09-21T13:02:08.481-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>3D models in flash</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/shark.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/SdU5muJxAaI/AAAAAAAAADg/JbJvZovz0iw/s320/shark.jpg" alt="" id="BLOGGER_PHOTO_ID_5320221872194912674" border="0" /&gt;&lt;/a&gt;This is probably the coolest thing I've done to date.&lt;br /&gt;The shark was modeled by my friend Sean McDonald in Maya. &lt;style type="text/css"&gt;         body {font-size:9pt;font-family:Arial;}         img  {border-style: none;}     &lt;/style&gt;&lt;script language="JavaScript"&gt; &lt;!-- var stuckToBottom=true; var isInitial=true; onload   = _onLoadFunction; onresize = _checkScroll; onscroll = _checkStuckToBottom;  function _checkScroll()  {     if(stuckToBottom || isInitial)     {         scrollToBottom();     } } function _checkStuckToBottom() {     body = document.body;      if(isInitial || body.clientHeight == 0) return;      /* put a padding in here of 20 pixels */     if( (body.scrollTop + body.clientHeight + 20) &gt;= body.scrollHeight || body.clientHeight &gt; body.scrollHeight)         {         stuckToBottom = true;     }     else     {         stuckToBottom = false;     } } function scrollToBottom() {     body = document.body;     body.scrollTop = body.scrollHeight; } function _onLoadFunction() {     if(stuckToBottom || isInitial)     {         scrollToBottom();     } } //--&gt; &lt;/script&gt;&lt;span absz="12" style="color: rgb(0, 0, 0);font-family:Helvetica;" &gt;&lt;a href="http://www.vimeo.com/3057750"&gt;http://www.vimeo.com/3057750&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He simply exported it to a dae file which I dynamically load into papervision, and then I throw an envMap to it with a PointLight3D object.&lt;br /&gt;The envMap is just a jpg texture and the PointLight3D makes the texture reflect light! It's really cool and really really simple to do!&lt;br /&gt;The water/wave effect is just the perlinNoise effect seen in my previous water demos.&lt;br /&gt;Here's some papervision code to wet your appetite!&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//gives us a nice particle field of bubbles&lt;br /&gt;var pm:ParticleMaterial = new ParticleMaterial(0x00CCFF,.3,&lt;br /&gt;var pf:ParticleField = new ParticleField(pm,500,10,2000,2000,2000);&lt;br /&gt;&lt;br /&gt;//creates the new point light&lt;br /&gt;var light:PointLight3D = new PointLight3D(true, false);&lt;br /&gt;&lt;br /&gt;//creates a new EnvMapMaterial to add to our shark, the bmap.bitmapData is bitmapData from a the jpg texture that I loaded dynamically&lt;br /&gt;var envMap:EnvMapMaterial = new EnvMapMaterial(light, bmap.bitmapData, bmap.bitmapData);&lt;br /&gt;&lt;br /&gt;//load the dae file&lt;br /&gt;dae = new DAE();&lt;br /&gt;dae.load("3dmodel.dae", new MaterialsList( { all:envMap } ));&lt;br /&gt;&lt;br /&gt;//add it to the scene!&lt;br /&gt;scene.addChild(dae);&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6686009697162648031?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6686009697162648031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/04/3d-models-in-flash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6686009697162648031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6686009697162648031'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/04/3d-models-in-flash.html' title='3D models in flash'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/SdU5muJxAaI/AAAAAAAAADg/JbJvZovz0iw/s72-c/shark.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6539294731823128212</id><published>2009-03-27T17:28:00.006-04:00</published><updated>2009-09-21T13:01:18.326-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Playing with Fire II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/PVFireII.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/Sc1FoBsjZdI/AAAAAAAAADY/TdpZgzTnfPk/s320/fireII.jpg" alt="" id="BLOGGER_PHOTO_ID_5317983288946812370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What can I say, I like to play with fire!:) Same concept as the below entry, but now you can type in your own name and choose a color! Click and drag to rotate in 3D space! Web 3.0? Try it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6539294731823128212?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6539294731823128212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/03/playing-with-fire-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6539294731823128212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6539294731823128212'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/03/playing-with-fire-ii.html' title='Playing with Fire II'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/Sc1FoBsjZdI/AAAAAAAAADY/TdpZgzTnfPk/s72-c/fireII.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6326951939028047248</id><published>2009-03-26T20:31:00.008-04:00</published><updated>2009-09-21T13:02:18.338-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Playing with Fire</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/PVFire.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/ScwfAi8p8DI/AAAAAAAAADQ/1JFMFOGjAYU/s320/fire-effects.jpg" alt="" id="BLOGGER_PHOTO_ID_5317659354259386418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This uses the BitmapEffectsLayer in papervision 2.0&lt;br /&gt;Click and drag to rotate the 3D cube.&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//start with a bitmap file material&lt;br /&gt;var bfm:BitmapFileMaterial = new BitmapFileMaterial("imagePath", true);&lt;br /&gt;bfm.doubleSided = true;&lt;br /&gt;&lt;br /&gt;//next we add a bitmap effect layer&lt;br /&gt;var bfx:BitmapEffectLayer = new BitmapEffectLayer(viewport, stage.width, stage.height);&lt;br /&gt;&lt;br /&gt;//add the effect layer to the viewport&lt;br /&gt;viewport.containerSprite.addLayer(bfx);&lt;br /&gt;&lt;br /&gt;//create a materials list with all sides the same&lt;br /&gt;var mlist:MaterialsList = new MaterialsList({all:bfm});&lt;br /&gt;&lt;br /&gt;//bind the material list to a new 3D Cube&lt;br /&gt;var cube:Cube = new Cube(mlist, 500, 500, 500, 2, 2, 2);&lt;br /&gt;&lt;br /&gt;//add the cube to the effects layer&lt;br /&gt;bfx.addDisplayObject3D(cube);&lt;br /&gt;&lt;br /&gt;//now for the fire effect&lt;br /&gt;var fire:BitmapFireEffect = new BitmapFireEffect(0, 1, .2, 1);&lt;br /&gt;fire.smoke = 0;&lt;br /&gt;fire.flameHeight = .5;&lt;br /&gt;fire.fadeRate = .4;&lt;br /&gt;fire.flameSpread = .5;&lt;br /&gt;fire.smoke = 0;&lt;br /&gt;fire.distortion = .4;&lt;br /&gt;&lt;br /&gt;//you can also add a new flash blur filter (or any kind of flash filter) to the object&lt;br /&gt;//bfx.addEffect(new BitmapLayerEffect(new BlurFilter(2, 2, 8)));&lt;br /&gt;&lt;br /&gt;bfx.addEffect(fire);&lt;br /&gt;&lt;br /&gt;//add the cube to the scene&lt;br /&gt;scene.addChild(cube);&lt;br /&gt;&lt;br /&gt;//Now render your scene!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6326951939028047248?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6326951939028047248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/03/playing-with-fire.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6326951939028047248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6326951939028047248'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/03/playing-with-fire.html' title='Playing with Fire'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/ScwfAi8p8DI/AAAAAAAAADQ/1JFMFOGjAYU/s72-c/fire-effects.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7698929324464985946</id><published>2009-03-22T00:38:00.003-04:00</published><updated>2009-09-21T13:02:28.035-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Zelda Game</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/GameTest.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/ScXBDiRspuI/AAAAAAAAADI/qg8xIi8hhWw/s320/game.jpg" alt="" id="BLOGGER_PHOTO_ID_5315867201665541858" border="0" /&gt;&lt;/a&gt;So I grew up on the console games and I loved them! I've always wanted to figure out how to make one so I've decided to try to figure out how to make a sprite based game...like Zelda. For now I'm just using Zelda sprites until I get a good engine down.&lt;br /&gt;&lt;br /&gt;So far I've come up with an efficient, but not great, collision detection engine. I'm currently trying to come up with a state system using bit-wise booleans and masking. I'll be updating my progress if you're interested in checking back often!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7698929324464985946?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7698929324464985946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/03/zelda-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7698929324464985946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7698929324464985946'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/03/zelda-game.html' title='Zelda Game'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/ScXBDiRspuI/AAAAAAAAADI/qg8xIi8hhWw/s72-c/game.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-627398398952821757</id><published>2009-03-22T00:03:00.008-04:00</published><updated>2010-02-02T00:25:18.958-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Glorified MP3 Player</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/jomolive/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/ScW81YBn4uI/AAAAAAAAADA/JA587trmgGY/s320/stage.jpg" alt="" id="BLOGGER_PHOTO_ID_5315862560349086434" border="0" /&gt;&lt;/a&gt;This is a glorified mp3 player that I made in early 2008. It serves as a repository for all of the songs that we've played at our church over the years. Core functionality includes:&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;pagination&lt;/li&gt;&lt;li&gt;scrubbing&lt;/li&gt;&lt;li&gt;play/pause&lt;/li&gt;&lt;li&gt;tons of cool visual effects :)&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;The spinning diamonds up top will spin faster if you sweep your mouse over them. They also server as a navigation menu. The jomo.tv site in general serves as a weekly set list for our sunday mornings. All information is stored in and queried from my sql db using C# and Linq. &lt;br /&gt;&lt;br /&gt;I've updated this to be just one song for security reasons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-627398398952821757?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/627398398952821757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/03/glorified-mp3-player.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/627398398952821757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/627398398952821757'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/03/glorified-mp3-player.html' title='Glorified MP3 Player'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/ScW81YBn4uI/AAAAAAAAADA/JA587trmgGY/s72-c/stage.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5800191028981019400</id><published>2009-02-20T10:43:00.004-05:00</published><updated>2009-09-21T13:02:47.308-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Default ASPNet sql db</title><content type='html'>I keep wasting time re-searching for this every time that I need it. I'm posting it here so I'll never lose it again!&lt;br /&gt;&lt;br /&gt;The default aspnet sql database provides you with generic user and role functionality, among a lot of other things.&lt;br /&gt;&lt;br /&gt;To set it up:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;start up visual studio 200X command prompt. It's usually located in start menu/all programs/visual studio 200X/visual studio tools/visual studio 200X command prompt&lt;/li&gt;&lt;li&gt;Type in &lt;span style="font-weight: bold;"&gt;aspnet_regsql.exe&lt;/span&gt; and hit enter&lt;/li&gt;&lt;li&gt;It launches the app that sets up the default aspnet sql database&lt;/li&gt;&lt;li&gt;Enter your server name, login info, and database name (usually found in your connection string)&lt;/li&gt;&lt;li&gt;aspnet_regsql.exe can create or modify an existing database.&lt;/li&gt;&lt;li&gt;It creates a bunch of tables and stored procedures necessary for the user and role functionality.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5800191028981019400?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5800191028981019400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/02/default-aspnet-sql-db.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5800191028981019400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5800191028981019400'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/02/default-aspnet-sql-db.html' title='Default ASPNet sql db'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6431795569531773999</id><published>2009-02-14T11:47:00.005-05:00</published><updated>2010-02-02T13:06:45.517-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Send a text msg from C#</title><content type='html'>I've finally found out how to send any &lt;span style="font-weight: bold;"&gt;instant updates&lt;/span&gt; that I want, to my &lt;span style="font-weight: bold;"&gt;cell phone&lt;/span&gt;.&lt;br /&gt;It's a pretty simple concept although the toughest part has always been finding a free or available smtp server to use. Look no further, Google lets you use their smtp server free of charge! You only need to sign up for a free gmail account. The only draw back is that you can't change the sender name, it must always be the email address @gmail.&lt;br /&gt;Thus far I've been able to email all sorts of attachments out!&lt;br /&gt;&lt;br /&gt;The concept within a web application:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Gather the data you want to send&lt;/li&gt;&lt;li&gt;Send it to a C# web service&lt;/li&gt;&lt;li&gt;Receive the data in C#, create a new mail object.&lt;/li&gt;&lt;li&gt;enter the 10 digit phone number and the &lt;span style="font-weight: bold;"&gt;cell suffix&lt;/span&gt; into the email sender property&lt;/li&gt;&lt;li&gt;send the text message!&lt;/li&gt;&lt;/ul&gt;The &lt;span style="font-weight: bold;"&gt;cell suffix&lt;/span&gt; is different per carrier. A comprehensive list can be found &lt;a href="http://www.livejournal.com/tools/textmessage.bml?mode=details" target="blank"&gt;here&lt;/a&gt;&lt;br /&gt;for example  1112223333@vtext.com (verizon subscriber).&lt;br /&gt;&lt;br /&gt;Update: It's very easy to do if you use &lt;a href="http://ryanscook.com/adminsBlog/2005/05/c-net-gmail-tools_26.html" target="_blank"&gt;RC's GmailHelper.dll&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now for the code! (Old way of doing it, I recommend RC's GmailHelper.dll)&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;System.Web.Mail.MailMessage myMail = new System.Web.Mail.MailMessage();&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "smtp.gmail.com");&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465");&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", "2");&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");&lt;br /&gt;&lt;br /&gt;          //Use 0 for anonymous&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "myEmailAddress@gmail.com");&lt;br /&gt;          //this is the gmail account that allows us to use the google smtp server&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "emailPassword");&lt;br /&gt;&lt;br /&gt;          myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");&lt;br /&gt;&lt;br /&gt;          myMail.From = "myEmailAddress@gmail.com"; //this is the gmail account that allows us to use the google smtp server&lt;br /&gt;&lt;br /&gt;          myMail.To = "recipientEmailAddress";&lt;br /&gt;&lt;br /&gt;          myMail.Subject = "emailSubject";&lt;br /&gt;&lt;br /&gt;          myMail.BodyFormat = System.Web.Mail.MailFormat.Text;&lt;br /&gt;&lt;br /&gt;          myMail.Body = "email body text goes here";&lt;br /&gt;&lt;br /&gt;          //if (pAttachmentPath.Trim() != "")&lt;br /&gt;&lt;br /&gt;          //{&lt;br /&gt;&lt;br /&gt;          //System.Web.Mail.MailAttachment MyAttachment = new System.Web.Mail.MailAttachment(Server.MapPath("pathToAttachmentFile goes here"));&lt;br /&gt;          //may be able to send images in text messages, not sure, haven't tried yet.&lt;br /&gt;&lt;br /&gt;          //myMail.Attachments.Add(MyAttachment);&lt;br /&gt;&lt;br /&gt;          //myMail.Priority = System.Web.Mail.MailPriority.High;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          System.Web.Mail.SmtpMail.SmtpServer = "smtp.gmail.com:465";&lt;br /&gt;&lt;br /&gt;          System.Web.Mail.SmtpMail.Send(myMail);&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6431795569531773999?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6431795569531773999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/02/send-text-msg-from-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6431795569531773999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6431795569531773999'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/02/send-text-msg-from-c.html' title='Send a text msg from C#'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-6100970645527605244</id><published>2009-02-01T01:39:00.011-05:00</published><updated>2009-09-21T13:05:24.020-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Sound frequencies animated!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/SYVEptSDHyI/AAAAAAAAACg/HgJo7tUuKSo/s320/music.jpg" alt="" id="BLOGGER_PHOTO_ID_5297716019991879458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This was a really fun saturday afternoon project. I'd decided I needed a place to centralize my music. So I built my own xml driven glorified mp3 player. I made all the graphics myself. I made the background from a tutorial that I found at &lt;a href="http://abduzeedo.com/awesome-digital-bokeh-effect-photoshop" target="blank"&gt;abduzeedo.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I created to external actionscript 3 classes for this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A class that manages each dynamic bubbles random animations&lt;/li&gt;&lt;li&gt;A class that creates dynamic animations based on frequencies of a playing song, just like you see in winamp, or those fancy car stereos.&lt;/li&gt;&lt;/ol&gt;I learned the concept of this from&lt;br /&gt;I'm really only going to talk about the latter here.&lt;br /&gt;it takes two input params,&lt;br /&gt;&lt;ol&gt;&lt;li&gt;An array containing, each slot containing a movieclip with a small blue rectangle in it. There can be any amount of these movieclips in the array. Each movieclip in the array represents a frequency in the sound animation.&lt;/li&gt;&lt;li&gt;The maximum height that you want the bars to animate to at the peak level of audio.&lt;/li&gt;&lt;/ol&gt;Enough chatter, here's the code.&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;br /&gt;//here sound init documentation because I keep forgetting how to do it.&lt;br /&gt;sound = new Sound();&lt;br /&gt;sound.load(new URLRequest(mp3_path));&lt;br /&gt;sound.play();&lt;br /&gt;&lt;br /&gt;//to control the sound further, use a SoundChannel&lt;br /&gt;var sch:SoundChannel; //this does not have a constructor&lt;br /&gt;&lt;br /&gt;sch = sound.play();&lt;br /&gt;//then use&lt;br /&gt;sch.stop();&lt;br /&gt;//and&lt;br /&gt;sch = snd.play(sch.position);&lt;br /&gt;//for the play and pause function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Audio Animator Class&lt;br /&gt;public class AudioAnimator extends MovieClip&lt;br /&gt;{&lt;br /&gt;private var ba:ByteArray = new ByteArray();&lt;br /&gt;private var a:Number = 0;&lt;br /&gt;private var f:Array;&lt;br /&gt;private var maxH:Number = 0;&lt;br /&gt;private var index:int = 0;&lt;br /&gt;&lt;br /&gt;//s sound, f frequencies, mh maxHeight&lt;br /&gt;public function AudioAnimator(frequencies:Array, mh:Number){&lt;br /&gt;f = frequencies;&lt;br /&gt;maxH = mh;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public function startAnimation(){&lt;br /&gt;addEventListener(Event.ENTER_FRAME, freqs);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public function stopAnimation(){&lt;br /&gt;removeEventListener(Event.ENTER_FRAME, freqs);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private function freqs(e:Event):void{&lt;br /&gt;SoundMixer.computeSpectrum(ba,true,0);&lt;br /&gt;index = 0;&lt;br /&gt;for(var i=(256/(f.length)); i &lt; 256; i+=(256/(f.length)))&lt;br /&gt;{&lt;br /&gt;a = ba.readFloat();&lt;br /&gt;var num:Number = a*(a*maxH);&lt;br /&gt;f[index].height = num;&lt;br /&gt;index++;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I learned the concept from &lt;a href="http://theflashblog.com/?p=181" target="blank"&gt;http://theflashblog.com/?p=181&lt;/a&gt;, but re-wrote a good part of it to fit my needs. The coolest part is that I've modularized it, and can now easily use it in any future project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-6100970645527605244?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/6100970645527605244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/02/flash-sound-frequencies-animated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6100970645527605244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/6100970645527605244'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/02/flash-sound-frequencies-animated.html' title='Sound frequencies animated!'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/SYVEptSDHyI/AAAAAAAAACg/HgJo7tUuKSo/s72-c/music.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7000186682987234023</id><published>2009-01-24T10:48:00.008-05:00</published><updated>2010-04-23T09:06:46.826-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Water effects</title><content type='html'>..have always been something I've thought was really hard to do in flash. So far I've found two approaches to this solution.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;static water animations on the timeline&lt;br /&gt;&lt;/li&gt;&lt;li&gt;dynamic water animations via code&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;the static approach&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/waves" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 126px; height: 200px;" src="http://3.bp.blogspot.com/_bB0DAD9PYvM/SXs--CgZcoI/AAAAAAAAAB0/1_v2vTQ4yMM/s320/moon.jpg" alt="" id="BLOGGER_PHOTO_ID_5294895022449717890" border="0" /&gt;&lt;/a&gt; This is a great example of how I can go overboard when I start getting creative. You'll probably recognize this image from &lt;a href="http://www.digitalblasphemy.com/"&gt;digital blasphemy&lt;/a&gt;. I've taken it and put some cool static animations on it, and even synced up a nice song from &lt;a href="http://www.ocremix.org/"&gt;OCRemix&lt;/a&gt;.&lt;br /&gt;I found the tutorial for the water effect &lt;a href="http://flash-r-us.deviantart.com/art/Tutorial-on-shockwave-effect-17141610"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;the dynamic approach&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/clouds_and_waves.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 166px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/SXtAI9hFHYI/AAAAAAAAAB8/nuEq0I1XvhA/s320/sun.jpg" alt="" id="BLOGGER_PHOTO_ID_5294896309600591234" border="0" /&gt;&lt;/a&gt;This solution is far more realistic, but more costly to the cpu. In this app's case, my cpu sits at 24% (I have a fast computer), so that's actually not too bad, but if we were to size the video up, it would start to slow down.&lt;br /&gt;&lt;br /&gt;I did not write make this app, &lt;a href="http://www.ericrhea.com/"&gt;one of my genius friends did, you can view his page here.&lt;/a&gt;&lt;br /&gt;I'm not posting his code up here, but he's used the perlinNoise filter to achieve this beautiful ripple effect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7000186682987234023?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7000186682987234023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/water-effects-dynamic-and-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7000186682987234023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7000186682987234023'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/water-effects-dynamic-and-static.html' title='Water effects'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bB0DAD9PYvM/SXs--CgZcoI/AAAAAAAAAB0/1_v2vTQ4yMM/s72-c/moon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-292289556135962633</id><published>2009-01-24T10:30:00.006-05:00</published><updated>2009-11-12T08:09:41.623-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>3D Cylinder Image Gallery</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kaphotography.info/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 98px;" src="http://1.bp.blogspot.com/_bB0DAD9PYvM/SXs0bwFI7sI/AAAAAAAAABs/BoYVbun2Oi8/s320/3d.jpg" alt="" id="BLOGGER_PHOTO_ID_5294883438271721154" border="0" /&gt;&lt;/a&gt;Probably my strongest work yet. This is a 3d image gallery that pulls from my flickr account. It's mostly experimental for now, but I hope to finish it someday.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;The Concept:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;read in my photography RSS feed from my flickr account.&lt;/li&gt;&lt;li&gt;for each photo node, create a new 3d plane&lt;/li&gt;&lt;li&gt;plot the photo's out in a 3d ring around the camera (requires some trig)&lt;/li&gt;&lt;li&gt;after each ring is complete (10 or so images in a ring) , move up and create another one&lt;/li&gt;&lt;li&gt;user can pan the camera left or right in 3d space&lt;/li&gt;&lt;li&gt;user can click on any image to load it&lt;/li&gt;&lt;li&gt;upon image click, camera zooms out, and loads up my custom &lt;span style="font-weight: bold;"&gt;bitmap slicer&lt;/span&gt; class&lt;/li&gt;&lt;li&gt;the &lt;span style="font-weight: bold;"&gt;bitmap slicer&lt;/span&gt; class gets the original size flickr url via flickr service, and loads the image into memory. It then slices the image into many resolution perportionate bitmaps using the copyPixel function, and pushes them to an array. I then manage the array to animate each piece of the image together in a short amount of time, to give a very cool patch-together animation.&lt;/li&gt;&lt;li&gt;the user can then click on the displayed image to dismiss it and return to the 3d rotating image gallery&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blog.papervision3d.org/" target="blank"&gt;Papervision3d&lt;/a&gt; is really a cool as3 library. Although difficult to learn at first, it can really pay off if you spend the time to become very familiar with it.&lt;br /&gt;&lt;img src="file:///D:/DOCUME%7E1/Crono/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-292289556135962633?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/292289556135962633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/kaphotographyme.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/292289556135962633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/292289556135962633'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/kaphotographyme.html' title='3D Cylinder Image Gallery'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bB0DAD9PYvM/SXs0bwFI7sI/AAAAAAAAABs/BoYVbun2Oi8/s72-c/3d.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-5070022590116077406</id><published>2009-01-24T00:53:00.006-05:00</published><updated>2009-09-21T13:06:03.244-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# Data Sync</title><content type='html'>You'll notice the flash menu on the right hand side of this blog column. I wanted a menu that could sort my posts into categories. I could not find one that blogger offered so I decided to do what any self respecting coder does...I made my own!&lt;br /&gt;Blogger offers an RSS feed of my blog, so I read that into flash and did some fancy formatting with xml so that it would sort all my posts into two categories:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flash&lt;/li&gt;&lt;li&gt;C#&lt;/li&gt;&lt;/ul&gt;Then I ran into a crossdomain.xml issue. You see, Blogger doesn't allow any domains to in the crossdomain.xml, so my flash menu was done for.....or was it?&lt;br /&gt;I thought, well I'll just write a C# console app that reads my blogs rss feed, saves it as an xml file, then calls another function that logs into my ftp server, posts the newly updated xml file and then closes its streams. It took maybe a few hours to figure out the code and piece it together, but it works great!&lt;br /&gt;&lt;br /&gt;Now any time I make a new blog post, I just run the .exe on my computer and it updates the xml file that my flash menu (over on the right) points to, and that new blog post is instantly catagorized and loaded into the menu! FREAKIN SWEET!&lt;br /&gt;&lt;br /&gt;and the function that does it, thanks to google and some of my own modification:&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;static void UploadToFTP()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;       {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           Console.WriteLine("Uploading to FTP");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           string filename = "data.xml";&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           FileInfo fileInf = new FileInfo(filename);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://domain_name_or_ip/folder_name/" + filename));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           request.Method = WebRequestMethods.Ftp.UploadFile;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           request.Credentials = new NetworkCredential("username", "password");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           request.UseBinary = true;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           request.KeepAlive = false;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           request.ContentLength = fileInf.Length;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           int buffLength = 2048;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           byte[] buff = new byte[buffLength];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           int contentLen;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           &lt;span style="color: rgb(192, 192, 192);"&gt;// Opens a file stream (System.IO.FileStream) to read the file to be uploaded&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           FileStream fs = fileInf.OpenRead();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           try&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               &lt;span style="color: rgb(192, 192, 192);"&gt;// Stream to which the file to be upload is written&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               Stream strm = request.GetRequestStream();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               &lt;span style="color: rgb(192, 192, 192);"&gt;// Read from the file stream 2kb at a time&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               contentLen = fs.Read(buff, 0, buffLength);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 192, 192);" class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               // Till Stream content ends&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               while (contentLen != 0)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;                   &lt;span style="color: rgb(192, 192, 192);"&gt;// Write Content from the file stream to the FTP Upload Stream&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;                   strm.Write(buff, 0, contentLen);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;                   contentLen = fs.Read(buff, 0, buffLength);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               &lt;span style="color: rgb(192, 192, 192);"&gt;// Close the file stream and the Request Stream&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               strm.Close();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               fs.Close();&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               Console.WriteLine("File Uploaded Successfully!");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               Console.WriteLine("Closing streams...");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           catch (Exception ex)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               Console.WriteLine(ex.Message + ": Upload Error");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;               System.Threading.Thread.Sleep(3000);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;           }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="codeExample"&gt;&lt;span style="font-size:78%;"&gt;       }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-5070022590116077406?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/5070022590116077406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/c-data-sync.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5070022590116077406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/5070022590116077406'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/c-data-sync.html' title='C# Data Sync'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-7762628973738831399</id><published>2009-01-23T17:12:00.003-05:00</published><updated>2009-09-21T13:06:13.089-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flash CS4 3d game</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/cs4test.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 149px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/SXpDzbIq-uI/AAAAAAAAABk/KFpZS3ibgVQ/s320/game.jpg" alt="" id="BLOGGER_PHOTO_ID_5294618862663957218" border="0" /&gt;&lt;/a&gt;Less than 160 lines of code. This utilizes the new "z" property that all movieClips have. It allows you to programatically control the depth of the object, but not like z-index in css. Flash CS4 gives a faux-3d environment to work with. The fact that there's not really a camera to "move around" as you would in a 3D editing suite, is rather annoying. However, it would have taken a lot longer to build this in Papervision.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The process: &lt;/span&gt; I randomly create a new "wall" (the blue objects that you have to avoid) on a time interval. It then decides whether to create a red, green, or blue wall.&lt;br /&gt;the following shows the effects of the colored walls when running into them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;red = -10 health&lt;/li&gt;&lt;li&gt;blue = -3 health&lt;/li&gt;&lt;li&gt;green +10 health&lt;/li&gt;&lt;/ul&gt;Every 100 walls that you pass by, sends you on to the next level, picking up speed, on and on until it's too fast! The logic was pretty fun to think through given the new "z" displayObject property.&lt;br /&gt;&lt;a href="http://www.kylesebestyen.net/cs4test.html" target="blank"&gt;Give it a try!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/Users/Kyle/AppData/Local/Temp/moz-screenshot-4.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-7762628973738831399?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/7762628973738831399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/flash-cs4-3d-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7762628973738831399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/7762628973738831399'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/flash-cs4-3d-game.html' title='Flash CS4 3d game'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/SXpDzbIq-uI/AAAAAAAAABk/KFpZS3ibgVQ/s72-c/game.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-1639062922750136361</id><published>2009-01-23T09:34:00.005-05:00</published><updated>2010-02-02T12:37:07.381-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>3d flash cube</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/cube.html" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 180px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/SXnV7mSAToI/AAAAAAAAABc/WeIV3c0871k/s320/cube.jpg" alt="" id="BLOGGER_PHOTO_ID_5294498056815791746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've been doing a lot of 3d experiments in flash lately. I normally use papervision3d, but this is a different lightweight 3d engine I found online. After making many modifications to it, I was able to produce a transparent 3d cube that rotates as the user moves the mouse around it. Give it a try!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-1639062922750136361?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/1639062922750136361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/3d-flash-cube.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1639062922750136361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/1639062922750136361'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/3d-flash-cube.html' title='3d flash cube'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/SXnV7mSAToI/AAAAAAAAABc/WeIV3c0871k/s72-c/cube.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-28896898718081937</id><published>2009-01-23T09:22:00.001-05:00</published><updated>2010-02-02T12:36:46.778-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Larry the Cable Guy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.larrythecableguy.com/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 144px;" src="http://4.bp.blogspot.com/_bB0DAD9PYvM/SXnTHI4AZaI/AAAAAAAAABU/KwyvdRbrPyw/s320/larry.jpg" alt="" id="BLOGGER_PHOTO_ID_5294494956545664418" border="0" /&gt;&lt;/a&gt;This was an awesome experience to be able to work on. I built the database, cms, and administrative back-end, as well as a smaller part of the flash front end. My very very talented co-worker did most of the flash front end. All and all a very cool and successful project.&lt;br /&gt;&lt;img src="file:///C:/Users/Kyle/AppData/Local/Temp/moz-screenshot-3.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-28896898718081937?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/28896898718081937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/larry-cable-guy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/28896898718081937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/28896898718081937'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/larry-cable-guy.html' title='Larry the Cable Guy'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bB0DAD9PYvM/SXnTHI4AZaI/AAAAAAAAABU/KwyvdRbrPyw/s72-c/larry.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-2613901801260082466</id><published>2009-01-23T09:11:00.002-05:00</published><updated>2010-02-02T12:20:36.048-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Shane's Landscape</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.shaneslandscape.com/" target="blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 158px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/SXnR4mbISeI/AAAAAAAAABM/jQalPfdVDSQ/s320/sl.jpg" alt="" id="BLOGGER_PHOTO_ID_5294493607267944930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;is a really cool flash site that I built completely in AS3. It uses a good amount of dynamic data that's driven by an xml file. Although I did not create the design, the flash functionality was completely up to me. Given that I generally like to make code as small, neat and efficient as possible, it was a challenge to create a navigational system that inherited all of these traits. The end result was worth it.&lt;br /&gt;&lt;img src="file:///C:/Users/Kyle/AppData/Local/Temp/moz-screenshot-2.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-2613901801260082466?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/2613901801260082466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/shanes-landscape.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/2613901801260082466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/2613901801260082466'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/shanes-landscape.html' title='Shane&apos;s Landscape'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/SXnR4mbISeI/AAAAAAAAABM/jQalPfdVDSQ/s72-c/sl.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-683698495951894283.post-8678826932967559543</id><published>2009-01-21T13:15:00.005-05:00</published><updated>2010-02-02T22:50:56.891-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Text Recognition</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kylesebestyen.net/text.html" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_bB0DAD9PYvM/S2hcIKM7epI/AAAAAAAAAHE/YwofbgmFkTM/s320/text.jpg" alt="" id="BLOGGER_PHOTO_ID_5433694245669796498" border="0" /&gt;&lt;/a&gt;I recently decided to try to make a text recognition application in Flash AS3. I thought through most of the logic in the car one day and found that it was not nearly as difficult as I had thought.&lt;br /&gt;As it turns out, I was able to get a pretty nice prototype in only 150 lines of code!&lt;br /&gt;Click the image to try it out!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The Concept&lt;/span&gt;&lt;br /&gt;When the user clicks the mouse down, tracks the mouse movement to an array. When the user releases the mouse, stop the recorder and match it's array values to a unique identity, a letter of the Alphabet.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Psuedocode&lt;/span&gt;&lt;br /&gt;&lt;div class="codeExample"&gt;&lt;span style="color: rgb(153, 153, 153);font-size:78%;"&gt;//global vars&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;var startX:Number = 0;&lt;br /&gt;var startY:Number = 0;&lt;br /&gt;var coordsArray:Array = new Array();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(192, 192, 192);font-size:78%;"&gt;//add event listeners&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;addEventListener(MouseEvent.MOUSE_DOWN, start_record);&lt;br /&gt;addEventListener(MouseEvent.MOUSE_UP, convert_record);&lt;br /&gt;&lt;br /&gt;function start_record(e:MouseEvent):void{&lt;br /&gt;startX = mouseX;&lt;br /&gt;startY = mouseY;&lt;br /&gt;addEventListener(Event.ENTER_FRAME, record);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function record(e:Event):void{&lt;br /&gt;if(mouseX &gt; startX){&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;      //I moved the mouse Right&lt;/span&gt;&lt;br /&gt;coordsArray.push("R");&lt;br /&gt;}&lt;br /&gt;else if(mouseX &lt; style="color: rgb(153, 153, 153);"&gt;&lt;br /&gt;//I moved the mouse Left&lt;br /&gt;coordsArray.push("L");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function convert_record(e:MouseEvent):void{&lt;br /&gt;removeEventListener(Event.ENTER_FRAME, record);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:78%;"&gt;   //now convert array values to Alphabet letter&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;switch(coordsArray.toString()){&lt;br /&gt;case "U,R,D":&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:78%;"&gt;      //the letter is A&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;break;&lt;br /&gt;case "D,U,R,D,L":&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:78%;"&gt;      //the letter is B&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;break;&lt;br /&gt;case "L,D,R":&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:78%;"&gt;      //the letter is C&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;                 &lt;br /&gt;There were a few tweaks I had to make to enhance the performance, but you get the idea. It works pretty well! Success!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/683698495951894283-8678826932967559543?l=flasharp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flasharp.blogspot.com/feeds/8678826932967559543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://flasharp.blogspot.com/2009/01/code-title-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8678826932967559543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/683698495951894283/posts/default/8678826932967559543'/><link rel='alternate' type='text/html' href='http://flasharp.blogspot.com/2009/01/code-title-1.html' title='Text Recognition'/><author><name>Kyle</name><uri>http://www.blogger.com/profile/05380190223741588811</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bB0DAD9PYvM/S2hcIKM7epI/AAAAAAAAAHE/YwofbgmFkTM/s72-c/text.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
