<?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-5278584820728752378</id><updated>2011-11-27T15:38:56.607-08:00</updated><category term='Introduction'/><category term='Actionscript 3'/><category term='Adobe Flex'/><category term='first post.'/><category term='welcome'/><category term='package'/><category term='3D'/><category term='render'/><category term='IDE'/><category term='Actionscript3 Document class'/><category term='custom class'/><category term='Eclipse'/><title type='text'>The Actionscriptology</title><subtitle type='html'>Actionscript | AIR | Flex | Flash</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5278584820728752378.post-7424457384864949120</id><published>2009-07-01T13:30:00.000-07:00</published><updated>2009-07-01T13:34:44.902-07:00</updated><title type='text'>Cache As Bitmap.</title><content type='html'>Recently I built a .swf file which contained a DataGrid. The data was provided via xml, and everything appeared to be working as intended. However, when I loaded the swf into the parent swf, the content of the datagrid was no longer visible. &lt;br /&gt;&lt;br /&gt;My first attempt was to try to immbed the font, however that didn't solve my problem either. After a considerable amount of time checking into this, I found that there was a simple solution to the problem.&lt;br /&gt;&lt;br /&gt;The UILoader I was using to load the external swf was under&lt;span style="font-style:italic;"&gt; mask&lt;/span&gt; in the Flash timeline. As you might know, there is often problems with viewing dynamic content under a mask. However, the solution ended up being one simple line of code. I simply set the datagrid to datagrid.cacheAsBitmap = true. Now all of the content appeared without a problem. &lt;br /&gt;&lt;br /&gt;A simple solution to a simple problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-7424457384864949120?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/7424457384864949120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/07/cache-as-bitmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/7424457384864949120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/7424457384864949120'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/07/cache-as-bitmap.html' title='Cache As Bitmap.'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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-5278584820728752378.post-1536274162145800145</id><published>2009-03-02T14:57:00.000-08:00</published><updated>2009-03-02T15:00:14.857-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom class'/><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 3'/><title type='text'>Dynamic Gallery Class</title><content type='html'>Just finished my DynamicGallery class here's the source&lt;br /&gt;&lt;br /&gt;___________&lt;br /&gt;&lt;br /&gt;package&lt;br /&gt;{&lt;br /&gt; &lt;br /&gt;//DynamicGallery v.1 copright 2009 Master Track Productions&lt;br /&gt;//devloper: Daniel Dorner&lt;br /&gt;   import flash.display.*;&lt;br /&gt;   import flash.net.*&lt;br /&gt;   import flash.media.Video;&lt;br /&gt;   import flash.geom.*;&lt;br /&gt;   import flash.display.Stage;&lt;br /&gt;   import gs.*;&lt;br /&gt;   import gs.plugins.*;&lt;br /&gt;   import fl.motion.easing.*;&lt;br /&gt;   import fl.video.VideoPlayer;&lt;br /&gt;   import fl.containers.UILoader;&lt;br /&gt;   import flash.events.*;&lt;br /&gt;   import flash.filters.BlurFilter;&lt;br /&gt;   import flash.filters.*;&lt;br /&gt;   import flash.text.*;  &lt;br /&gt;   public class DynamicGallery extends Sprite&lt;br /&gt;   {&lt;br /&gt;       var holder:MovieClip = new MovieClip;&lt;br /&gt;       var loader:UILoader = new UILoader();      &lt;br /&gt;       var sp:Shape = new Shape;&lt;br /&gt;       var txt:TextField = new TextField&lt;br /&gt;       var format:TextFormat = new TextFormat()&lt;br /&gt;       var dsf:DropShadowFilter = new DropShadowFilter()&lt;br /&gt;       var bg:Shape = new Shape;&lt;br /&gt;     &lt;br /&gt;       public function DynamicGallery()&lt;br /&gt;       {&lt;br /&gt;           trace("DynamicGallery v.1 copright 2009 Master Track Productions developer: Daniel Dorner \r DOCUMENTATION \r Set the image source - DynamicGallery.image(source:String, scaleContent:Boolean); \r Set the transparency - DynamicGallery.viewGallery(Alpha:Number) \r Make gallery viewable - DynamicGallery.openGallery() \r Hide gallery instance - DynamicGallery.closeGallery \r  \r NOTE: DynamicGallery.viewGallery() Instantiates the DynamicGallery")&lt;br /&gt;           holder = new MovieClip          &lt;br /&gt;           holder.x = 0&lt;br /&gt;           holder.y = 0          &lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;       public function viewGallery(sAlpha:Number = 2):void&lt;br /&gt;       {                          &lt;br /&gt;           sp.graphics.beginFill(0x000000, sAlpha);&lt;br /&gt;           sp.graphics.drawRect(0, 0, this.parent.stage.stageWidth, this.parent.stage.stageHeight)&lt;br /&gt;           sp.x = 0&lt;br /&gt;           sp.y = 0&lt;br /&gt;           sp.graphics.endFill();      &lt;br /&gt;           holder.alpha = 0&lt;br /&gt;           holder.addChild(sp);          &lt;br /&gt;       }&lt;br /&gt;       public function image(src:String, scl:Boolean):void&lt;br /&gt;       {          &lt;br /&gt;       //prompt textField&lt;br /&gt;         &lt;br /&gt;           format.color = 0xFFFFFF&lt;br /&gt;           format.align = "center"&lt;br /&gt;           format.bold = true;&lt;br /&gt;         &lt;br /&gt;           txt.defaultTextFormat = format&lt;br /&gt;           txt.text = "Loading..."&lt;br /&gt;//            txt.x = holder.width /2&lt;br /&gt;//            txt.y = holder.height / 2&lt;br /&gt;           holder.addChild(txt);  &lt;br /&gt;       //crates the loader          &lt;br /&gt;           //then add image          &lt;br /&gt;           loader.source = src          &lt;br /&gt;           loader.alpha = 0&lt;br /&gt;           loader.scaleContent = scl;          &lt;br /&gt;           loader.width = holder.width&lt;br /&gt;           loader.height = holder.height      &lt;br /&gt;       //creates loader bg&lt;br /&gt;         &lt;br /&gt;           bg.graphics.beginFill(0xFFFFFF, 0);&lt;br /&gt;           bg.graphics.drawRect(holder.width/2, holder.height/2, 320, 240)&lt;br /&gt;           bg.graphics.endFill();  &lt;br /&gt;       //dropShadow      &lt;br /&gt;         &lt;br /&gt;           dsf.blurX = 5&lt;br /&gt;           dsf.blurY = 5&lt;br /&gt;           dsf.alpha = .5&lt;br /&gt;           dsf.quality = 5&lt;br /&gt;           dsf.distance = 20          &lt;br /&gt;       //blur&lt;br /&gt;           var blur:BlurFilter = new BlurFilter()&lt;br /&gt;           blur.blurX = 10&lt;br /&gt;           blur.blurY = 10&lt;br /&gt;           blur.quality = 3&lt;br /&gt;           loader.filters = [dsf]          &lt;br /&gt;           holder.addChild(bg);          &lt;br /&gt;           holder.addChild(loader);  &lt;br /&gt;           //listen for load completion&lt;br /&gt;           loader.addEventListener(Event.COMPLETE, onLoaded);      &lt;br /&gt;           //handles the load event&lt;br /&gt;           function onLoaded(e:Event):void&lt;br /&gt;           {              &lt;br /&gt;               loader.alpha = 0;&lt;br /&gt;               loader.width = loader.content.width;&lt;br /&gt;               loader.height = loader.content.height;&lt;br /&gt;               loader.x = holder.width *.5 - loader.width / 2&lt;br /&gt;               loader.y = holder.height  *.5 - loader.height / 2&lt;br /&gt;               TweenLite.to(loader, .5,{alpha:1, ease:Cubic.easeOut, delay:.5});&lt;br /&gt;             &lt;br /&gt;               txt.text = ""&lt;br /&gt;               //              &lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;           public function trackChange(e:Event):void&lt;br /&gt;           {              &lt;br /&gt;               removeChild(holder);  &lt;br /&gt;               trace("I changed");&lt;br /&gt;           }&lt;br /&gt;           public function closeGallery():void&lt;br /&gt;           {              &lt;br /&gt;               TweenLite.to(loader, .5,{alpha:0, ease:Cubic.easeOut, delay:.0});&lt;br /&gt;               TweenLite.to(holder, .5,{alpha:0, visible:false , ease:Cubic.easeOut, delay:.5});              &lt;br /&gt;             &lt;br /&gt;           }&lt;br /&gt;           public function openGallery():void&lt;br /&gt;           {              &lt;br /&gt;               addChild(holder);&lt;br /&gt;               TweenLite.to(loader, .5,{alpha:1, ease:Cubic.easeOut, delay:.5});&lt;br /&gt;               TweenLite.to(holder, .5,{alpha:1, visible:true , ease:Cubic.easeOut, delay:0});              &lt;br /&gt;             &lt;br /&gt;           }&lt;br /&gt;                     &lt;br /&gt;   }  &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-1536274162145800145?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/1536274162145800145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/03/dynamic-gallery-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/1536274162145800145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/1536274162145800145'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/03/dynamic-gallery-class.html' title='Dynamic Gallery Class'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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-5278584820728752378.post-488508055730885436</id><published>2009-02-20T14:46:00.000-08:00</published><updated>2009-02-20T14:51:09.524-08:00</updated><title type='text'>Adobe AIR application - File System</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_E-jb9n3-crY/SZ8z16K4rFI/AAAAAAAAAA0/jWymiy3AtU0/s1600-h/Picture+1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 298px; height: 320px;" src="http://1.bp.blogspot.com/_E-jb9n3-crY/SZ8z16K4rFI/AAAAAAAAAA0/jWymiy3AtU0/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5305015887306730578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So I had a little down time today, so I started writing&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; an AIR application. The idea was to allow our admin folk to go paperless with their work order information. &lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;Essentially the programs is simply a data entry solution. It saves out an xml file based on the fields entered. It can also open the files with the the same format. So you can create, open, and modify an existing work order. The cool thing about it, is that it creates a file directory based on the File# entered. It also exports a jpeg of the form, for easy printing, since we still like our paper copies. &lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;Granted, it's sort of a glorified excel spreadsheet, and it's not finished yet. But it was a good exercise in working with the Filesystem class for Adobe Air, as well as the com.adobe.images package. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-488508055730885436?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/488508055730885436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/adobe-air-application-file-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/488508055730885436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/488508055730885436'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/adobe-air-application-file-system.html' title='Adobe AIR application - File System'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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/_E-jb9n3-crY/SZ8z16K4rFI/AAAAAAAAAA0/jWymiy3AtU0/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5278584820728752378.post-7719663352019067243</id><published>2009-02-19T13:29:00.000-08:00</published><updated>2009-02-19T13:36:17.020-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Flex'/><title type='text'>Flex Builder - exploring the IDE</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/7/70/Flexicon.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 107px; height: 107px;" src="http://upload.wikimedia.org/wikipedia/en/7/70/Flexicon.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Recently I've started doing a little more work in Adobe Flex. I managed to get the free &lt;a href="http://www.adobe.com/devnet/edu/"&gt;academic license&lt;/a&gt; from&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; Adobe. &lt;/span&gt;  &lt;span style="font-family:verdana;"&gt; At $250 and with a free academic version and SDK, Adobe is clearly trying to increase the reach of Actionscript development. &lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;Flex obviously isn't new, in fact the latest version v4 (currently Gumbo) is due out later this year. &lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;When I initially heard of Flex Builder I was expecting Flash without the time line, but after downloading the trial version (60 day trial, btw) I realized it's indeed a far more complex IDE than I had thought.&lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;Built on the open source Eclipse IDE, Flex Builder functions very intuitively.&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.infoworld.com/infoworld/img/17TC-adobe-flex-builder.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 290px; height: 203px;" src="http://www.infoworld.com/infoworld/img/17TC-adobe-flex-builder.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;  At first, I was a little lost in the whole mxml and AS3 cross-code stuff. But eventually I realized the benefit of this logi&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;c. Flex makes so many of the monotonous interface development tasks really enjoyable.&lt;/span&gt;  &lt;span style="font-family:verdana;"&gt;I would strongly suggest downloading the trial version and giving it a look. If you're a Flash Developer it can only help to understand a little bit about Flex. I'm working on dev&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;eloping a couple of desktop AIR applications built in Flex Builder.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-7719663352019067243?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/7719663352019067243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/flex-builder-exploring-ide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/7719663352019067243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/7719663352019067243'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/flex-builder-exploring-ide.html' title='Flex Builder - exploring the IDE'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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-5278584820728752378.post-1264806472093808276</id><published>2009-02-18T14:26:00.000-08:00</published><updated>2009-02-18T14:44:26.988-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='render'/><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript3 Document class'/><title type='text'>Follow up on 360 Rotation Project</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_E-jb9n3-crY/SZyL3WPaxPI/AAAAAAAAAAk/_dNpvGvVYqA/s1600-h/img2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 144px;" src="http://2.bp.blogspot.com/_E-jb9n3-crY/SZyL3WPaxPI/AAAAAAAAAAk/_dNpvGvVYqA/s320/img2.jpg" alt="" id="BLOGGER_PHOTO_ID_5304268244114916594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;About 5.5 hours later the revised 360 Flash module is finally near completion. Thanks to the integration CS3 offers creating the .fla was pretty straightforward. In fact, it involved simply importing the .psd straight into Flash, making a few changes, and that was it. The file size is still a little large, but that has a lot to do with the 360 render. I ended up cutting the number of frames in half to cut down on size. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I’m using the AS3 preloader technique Lee Brimelow shows on www.gotoandlearn.com. Loading an external .swf into the loader.swf. Worked well, except that I noticed my reference to “stage” in the document class returned one of those obscure “null object reference” errors. Took me a while to debug it. Somehow the reference to the “stage” wasn’t registering as instantiated in the loader.swf. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;(If anyone knows why, let me know)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ultimately  it was a smooth project start to finished.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.mastertrackproductions.com/Licor/7700_loader.html"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;http://www.mastertrackproductions.com/Licor/7700_loader.html&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-1264806472093808276?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/1264806472093808276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/follow-up-on-360-rotation-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/1264806472093808276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/1264806472093808276'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/follow-up-on-360-rotation-project.html' title='Follow up on 360 Rotation Project'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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/_E-jb9n3-crY/SZyL3WPaxPI/AAAAAAAAAAk/_dNpvGvVYqA/s72-c/img2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5278584820728752378.post-5985906689920227542</id><published>2009-02-16T08:37:00.000-08:00</published><updated>2009-02-16T09:41:01.324-08:00</updated><title type='text'>simulated 3D - 360 Rotation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.adobe.com/products/creativesuite/include/highlights/flashplayer_10.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 170px; height: 90px;" src="http://www.adobe.com/products/creativesuite/include/highlights/flashplayer_10.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;The integration of 3D Graphics and Flash has come a long way over the past few months. With the advent of Papervision3D among other 3D engines, creating real-time 3D graphics in Flash is now a very tangible prospect. I intend to post more about Papervision3D and Collada file integration in the future. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;However, the use of "simulated-3D" (for lack of a better term) is still very much in demand by clients. The process involves rendering an animated sequence (usually a 360 rotation of some sort) and then importing dozens (if not hundreds) of individual frames into a MovieClip in Flash. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Needless to say, it's not the most elegant means, but done sparingly and with efficiency in mind, it can produce stunning results.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I recently created a prototype for Licor Biosciences. I used a function that generated an integer based on the width of the stage - that integer was then used as the frame number of the corresponding MovieClip. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Here's the function I wrote&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;function giveDis(event:Event):void&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;var bX:Number = dragger.x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;var bY:Number = dragger.y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;var cX:Number = center.x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;var cY:Number = center.y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;        distance = Math.round(Math.sqrt((bX) * (bX) + (cX) * (cX))/13.4);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;        trace(distance);  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;        photon.gotoAndStop(distance);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;In this case, the function is triggered by an ENTER_FRAME event. So it perpetually tracks the integer that the 'distance' variable produces.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;[NOTE: 'dragger' here refers to the MovieClip used as the dragging mechanism &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;(i.e dragger.startDrag();) and 'center' is a second clip used at the edge of the stage.]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;The distance formula shown is the Pythagorean Theorem rounded to the nearest integer and then devided by 13.4, which was a number I found by trial and error. It gave me a integer between 0 and 200 which was equal to the number of frames in my MovieClip. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;(I'm sure a math genius out there could tell me why 13.4 it makes sense here.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I'll be re-writing the code for this program shortly, and it'll be structured in the proper 'package' format.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;The benefit of the code above is that it can be used for virtually any number of frames, on any stage, for any animation. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;See the example here:&lt;/span&gt;&lt;a href="http://www.mastertrackproductions.com/Licor/view360/Licor360.html"&gt;&lt;span style="font-family:verdana;"&gt;http://www.mastertrackproductions.com/Licor/view360/Licor360.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;-Alchemist&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/5278584820728752378-5985906689920227542?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/5985906689920227542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/simulated-3d-360-rotation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/5985906689920227542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/5985906689920227542'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/simulated-3d-360-rotation.html' title='simulated 3D - 360 Rotation'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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-5278584820728752378.post-2965474965511786055</id><published>2009-02-10T22:00:00.000-08:00</published><updated>2009-02-10T22:12:14.221-08:00</updated><title type='text'>e.target and MovieClip values</title><content type='html'>&lt;span style="font-family:arial;"&gt;While working on a web project this week for IDSODISC I discovered an interesting way of handling events for movieclips in Actionscript. I set a value for each movieclip(as a button) I then used that value to store an additional movieclip, subsequently creating a single function which can be applied to what ever movieclip you click on. I've included a rough example below.&lt;br /&gt;&lt;br /&gt;//code begins here----------------&lt;br /&gt;&lt;br /&gt;img1.visible = false;&lt;br /&gt;b1.value = img1&lt;br /&gt;b1.addEventListener(MouseEvent.MOUSE_DOWN, callFunction);&lt;br /&gt;function callFunction(e:MouseEvent):void&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;e.target.value.visible = true;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//------END-----&lt;br /&gt;&lt;br /&gt;So essentially what this does is it makes the "value" of b1 visible. In this case, that would be img1. I'm not sure how this fits in with standard programming best practices. But the benefit here is, as long as a movieclip has a value - it can call that function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;to view the site visit: &lt;/span&gt;&lt;a href="http://www.mastertrackproductions.com/ISODISC/ISODISC_loader.html"&gt;&lt;span style="font-family:arial;"&gt;http://www.mastertrackproductions.com/ISODISC/ISODISC_loader.html&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-2965474965511786055?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/2965474965511786055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/etarget-and-movieclip-values.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/2965474965511786055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/2965474965511786055'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/etarget-and-movieclip-values.html' title='e.target and MovieClip values'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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-5278584820728752378.post-8895704445876111916</id><published>2009-02-10T14:45:00.000-08:00</published><updated>2009-02-16T08:53:19.070-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='welcome'/><category scheme='http://www.blogger.com/atom/ns#' term='first post.'/><title type='text'>First Blog - Up and running.</title><content type='html'>&lt;span style="font-family:arial;"&gt;Welcome to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Actionscriptology&lt;/span&gt; blog.&lt;/span&gt;  This Blog is dedicated to pretty much anything RIA, Flex, Flash, Actionscript related. I hope to update this blog frequently with new discoveries, projects, tutorials and whatever else strikes me as relevant to the RIA movement. And I encourage anyone to submit ideas/corrections to anything I post. I myself am a novice to web programming, and my hope is that others will learn as I excavate Actionscriptology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5278584820728752378-8895704445876111916?l=actionscriptology.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://actionscriptology.blogspot.com/feeds/8895704445876111916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/first-blog-up-and-running.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/8895704445876111916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5278584820728752378/posts/default/8895704445876111916'/><link rel='alternate' type='text/html' href='http://actionscriptology.blogspot.com/2009/02/first-blog-up-and-running.html' title='First Blog - Up and running.'/><author><name>Daniel Dorner</name><uri>http://www.blogger.com/profile/05316608764905141463</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></feed>
