Tag Archive for 'tutorial'

Quick lil combo box

So today I saw that Yahoo dropped their set of ASTRA components for AS3. And... WOW is all I can say. I'm so glad to see a company like Yahoo doing this. Giving back to our community in an open source way! Its really beautiful and makes them really feel like family. Almost as much if not more than Adobe. It's just wild to see them doing almost more than Adobe does to push flash! I am thrilled to see them sharing with our community!

So just for fun I have decided to post my not so AS3 or OOP combo box. Its my first try and I built it in about 2 hours but its a great start. Its built with AS2 of course since I haven't made the leap of faith to AS3. But it works and serves its purpose. It would be really easy to extend this and make it much more dynamic and have TONS more functionality but hey its free and it will get you moving in the right direction.

So the reason I built it was it seemed like the component most art directors like to have custom designed drop downs and one of the most common in forms. All of the drop down components I have found and tried to edit have just been a 'pain in my arse'. So this is my super simple and sleek lil version. Easily editable and here for your grabin'. :) I know its not ASTRA but hey it is what it is!

Download Here


Flickr Slideshow - Take 1 (swx+fuse)

Ok so, 1, remember going into this... In no way did I ever say I was a programmer. I am a scripter at heart. Quick down and dirty, rapid development is my game and its worked well so far. There are plenty of better was to build this and extend it. All of which I would like to hear about! So here goes my version of an incredibly quick build of a simple swx+fuse image slide show! Enjoy!

So this is a simple copy, paste and your ready to go! But that's not why I am sharing the code. This was built to show whats possible and to get you started on building your own bigger, faster and stronger version of the same thing. I really encourage all of you to share with us what you have done with this code and how we can all become better coders ourselves from sharing and collaborating.

The following code will allow you to pull recent public photos or even photos from your favorite user and just the change of a methodType. Also please be sure to have the SWX class files in your project folder when running this code. Enjoy!

Update: some of the color coating is off on my style sheet. I will be updating later. Sorry. :(

Update 2: I had some requests for people to see it working. So here you go! Enjoy!

flickrgallery.swf

 
/*
 
SWX + Fuse - Take 1
 
by: Corban Baxter
 
url: blog.projectx4.com		This was written to give some developers simple a quick fix and insite
 
into rapid flash development with some great tools such as swx and fuse.
 
*/
 
import com.mosesSupposes.fuse.*;
ZigoEngine.register(Fuse, FuseFMP, PennerEasing, FuseItem);
 
import org.swxformat.SWX;
//setup the SWX object please see swxformat.org
var swx:SWX = new SWX();
swx.gateway = "http://www.swxformat.org/php/swx.php"; //please change to your domain running swx.
swx.encoding = "GET";
//swx.debug = true;
swx.timeout = 2;
 
var userName:String = "yourUserNameGoesHere"; //used for getUserPhotos method
var photoStyle:String = "small";
var numPhotos:Number = 100;
var page:Number = 1;
var myPhotos:Array;
var currentImage:Number;
var img:String;
//var methodType:String = "getUserPhotos"; //get specfic user photos
var methodType:String = "swxPhotosGetRecent"; //get public photos
var extras:String = "tags"; //comma delimited for getting extra photo info, see service for options
var images:MovieClip = this.createEmptyMovieClip("images", this.getNextHighestDepth());
var back_mc:MovieClip = images.createEmptyMovieClip("back_mc", images.getNextHighestDepth());
var front_mc:MovieClip = images.createEmptyMovieClip("front_mc", images.getNextHighestDepth());
 
function getPhotos():Void {
if(methodType == "getUserPhotos"){
 
var callParameters:Object = {
serviceClass:"Flickr",
method: methodType,
args:[userName, photoStyle, numPhotos, page],
result:[this, resultHandler],
timeout:[this, timeOutHandler],
fault:[this, faultHandler]
};
 
}else{
 
var callParameters:Object = {
serviceClass:"Flickr",
method: methodType,
args:[photoStyle, extras, numPhotos, page],
result:[this, resultHandler],
timeout:[this, timeOutHandler],
fault:[this, faultHandler]
 
};
 
}
 
swx.call(callParameters);
 
}
 
function resultHandler(event:Object) {
 
//callback to run when app has loaded the flickr image array requested
 
//trace(newline+newline+"RESULT: "+event.result);
 
myPhotos = event.result.photo;
total = myPhotos.length;
currentImage = random(total);
 
loadImage(currentImage);
 
}
 
function timeOutHandler() {
 
//do something when call fails to respond in allowed timeout period
 
//getPhotos();
 
trace("timed out");
 
}
 
function faultHandler(event:Object) {
 
//user or system error please give feedback to the users
 
//this would need to be some php call but you understand the point...
 
//getURL("mailto:hello@yourdomain.com?subject='were having flickr gallery issues'");
 
trace("critacl error");
 
}
 
var mclListener:Object = new Object();
 
mclListener.onLoadComplete = function(target_mc:MovieClip) {
 
target_mc._alpha = 0;
 
};
 
mclListener.onLoadInit = function(target_mc:MovieClip) {
 
trace(target_mc._height);
 
//fade up image and rerun the loop
 
var f:Fuse = new Fuse();
f.push({ target: target_mc, ease: "easeOutQuad", time: 1, _alpha: 100 }); //fade up front_mc
f.push({ func: setBackImage, args: img }); //places loaded image in back_mc to create a cross fade look for next iteration
f.push({ delay: 2 });
f.push({ func: loadImage, args: currentImage });
f.start();
 
};
 
mclListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
 
trace(target + ": " + bytesLoaded + " bytes of " + bytesTotal);
 
}
 
var image_mcl:MovieClipLoader = new MovieClipLoader();
 
image_mcl.addListener(mclListener);
 
function loadImage(num:Number):Void {
 
var total:Number = myPhotos.length;
img = myPhotos[num].src;
image_mcl.loadClip(img, images.front_mc);
currentImage++;
if(currentImage == total){
currentImage = 0;
}
 
}
 
function setBackImage(img:String):Void{
trace(images.back_mc);
images.back_mc.loadMovie(img);
}
 
getPhotos();



Bad Behavior has blocked 261 access attempts in the last 7 days.