The people of Flash in the can (FITC) had put up a video section on their site that show some of the things happening at Toronto in this years FITC be shure to check them out.

Flash in the can Videos.
Archive for the 'ACTIONSCRIPT 2.0' Category
Yesterday my wife asked me if I could somehow display her flickr archives on her personal website. And to be quite frank I had been playing with the flickr API but never gave me the time to make something real out of it, so I started googling around and found out this great Actionscript 2.0 wrapper called Flashr by Kelvin Luck that makes it easy to develop Flash applications to display and interact with photos on flickr.com.
So this is a very simple example (based on an tutorial of the version 0.4 of Flashr and I updated it to work with the current version (0.5)) of what can be done with Flashr but I plan to add more functionality and eyecandy to it (I’ll upload the result of that).
I almost forgot here’s the script that make this work:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import com.kelvinluck.flashr.core.Flashr; import com.kelvinluck.flashr.core.Photo; import com.kelvinluck.flashr.core.Photoset; import com.kelvinluck.flashr.core.Person; import com.kelvinluck.flashr.core.FlashrResponse; import com.kelvinluck.util.LogWrapper; import com.dynamicflash.utils.Delegate; class com.cecymeade.UserRecentPhotos { var xMax:Number = 214; var yMax:Number = 214; var xTemp:Number; var yTemp:Number; var apiKey:String = "Your Flickr API key here"; var userNsid:String = "90349680@N00"; var _target:MovieClip; function UserRecentPhotos(target:MovieClip) { Stage.scaleMode = "noScale"; LogWrapper.getInstance().init(); LogWrapper.getInstance().addTracePublisher(); _target = target; var _flashr:Flashr = Flashr.getFlashr(); _flashr.apiKey = apiKey; var _flashrResponse:FlashrResponse = new FlashrResponse(); _flashrResponse.setSuppressOutput(true); _flashrResponse.onPeopleGetPublicPhotos = Delegate.create(this, onPeopleGetPublicPhotos); _flashr.peopleGetPublicPhotos(userNsid, null, 16, 1); } function onPeopleGetPublicPhotos(p:Person):Void { var photosArray:Array = p.getPhotos(); var userNsid:String = p.nsid; for (var i:Number = 0; i var thisPhoto:Photo = Photo(photosArray[i]); var mc:MovieClip = _target.createEmptyMovieClip("photo"+i, i); mc._x = 1+(i%4)*76; mc._y = 1+Math.floor(i/4)*76; mc.createEmptyMovieClip("jpgHolder", 1); mc.jpgHolder.loadMovie(thisPhoto.thumbnailUrl); mc.xMax = xMax; mc.yMax = yMax; var freeDepth = (_root.getNextHighestDepth()); mc.onRollOver = function() { xTemp = this._x; yTemp = this._y; this._x = Math.min(xTemp, xMax); this._y = Math.min(yTemp, yMax); this.swapDepths(freeDepth); this._xscale = this._yscale=120; }; mc.onRollOut = function() { this._x = xTemp; this._y = yTemp; this._xscale = this._yscale=100; }; mc.photo = thisPhoto; mc.onPress = function() { getURL(this["photo"].photoPageUrl, "_blank"); }; } } public static function main():Void { var u:UserRecentPhotos = new UserRecentPhotos(_root); } public function toString():String { return "[com.cecymeade.UserRecentPhotos]"; } } |
[snippet=6312]
Here’s a little try on the new FuseFX:
( Based on the FuseFX Download Example )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import com.mosesSupposes.fuse.*; import com.mosesSupposes.fusefx.*; import com.mosesSupposes.util.*; ZigoEngine.register( PennerEasing ); FuseFX.register( MixerFX ); var s:Sound = new Sound(); s.attachSound("librarySound"); s.start(0, 10); volUp_mc.onPress = function():Void { this._parent.fadeUp(0, 2); this._alpha = 50; ZigoEngine.doTween(this, "_alpha", 100); } volDown_mc.onPress = function():Void { this._parent.fadeSound(0, 2); this._alpha = 50; ZigoEngine.doTween(this, "_alpha", 100); } function fadeUp(endVolume:Number, seconds:Number, ease:String):Void { if (volume!=100) { volume = 150; } ZigoEngine.doTween(s, MixerFX.VOLUME, volume, seconds, ease); } function fadeSound(endVolume:Number, seconds:Number, ease:String):Void { if (volume !=null) { volume = 0; } ZigoEngine.doTween(s, MixerFX.VOLUME, volume, seconds, ease); } |
An update of the Fuse Tween engine has been released, and with it FuseFX extensions, a release of new tweenable properties wish includes MixerFX a sample extension that lets you tween Sound objects and TextFX to animate all numerical TextFormat properties right on a TextField.
Check ‘em out at the Moses?s Fuse ZigoEngine site.





![Validate my RSS feed [Valid RSS]](http://www.cloudfaces.com/swfgeekblogexamples/images/valid-rss.png)


SWX Native Data format for your Flash Projects
Well, it seems that Mr. Aral Balkan doesn’t lose a minute, aside of all the OS ( open source ) Flash Proyects of OSFlash, hes been developing a great proyect SWX wish is a native data format for Flash. It uses SWF files to store and exchange data. It also implements an RPC gateway (currently in PHP), tools (a data analyzer/debugger and a service explorer), various APIs (Flickr, Twitter, etc.), and an ActionScript library that make creating data driven Flash and Flash Lite applications a piece of cake.
If you download and Install the SWX MAMP(Mac - Apache - MySQL - PHP) Bundle (on OS X) click here to download. It will be up an running in no time ( and it’s really like five minutes ). If you already have a development local server You can download the SWX files in zip format( from here ) and extract them on your localhost’s root folder.
Here’s a very neat tutorial that Aral put up on SWX Format site to help you out with the basic steps in how to get it running:
So don’t waste your time visit SWF Format download the SWX MAMP bundle. And start playing with your data.
Besides isn’t Datum ( The little mascot ) beautiful ? ; )