This tutorial shows how to create dynamic slideshow by fetching the data from XML and the slideshow.This tutorial covers reading XML using XPathAPI, Conditional operator, MovieClipLoader, setTimeout.XpathAPI:The native XPathAPI class allows us to search the XML nodes and attributes within XML that’s loaded in to flash.
Conditional Operator:Using conditional operator is similar to if else statement.
Example:
var test_boolean : Boolean = trueif(test_boolean)trace(”I am True”);elsetrace(”I am False”);//output:I am True
Same code using the conditional operator
var test_boolean : Boolean = truetest_boolean == true ? trace(”I am True”) : trace(”I am False”);//output:I am True
setTimeout:setTimeOut() method is an undocumented feature of flash8. This method is very useful when we need to call a function after specified duration of time. But not more than once.Simple usage:
setTimeout(sayHello, 1000);function sayHello() { trace(”Hello, welcome here!”);}
Passing argument:
And incase we need to pass some argument then
setTimeout(sayHello, 1000,”Hello, welcome here!”);function sayHello( arg:String ) { trace(arg);}
Slideshow Code:
import mx.transitions.Tween;import mx.transitions.easing.*;import mx.xpath.XPathAPI;var delay:Number;var animationDuration:Number;var current_num:Number = 0;var first_num:Number = 0;var image_holder:MovieClip = this.createEmptyMovieClip(”image_holder”, this.getNextHighestDepth());var mcl_lis:Object = new Object();var mcl:MovieClipLoader = new MovieClipLoader();mcl.addListener(mcl_lis);var xml:XML = new XML();xml.ignoreWhite = true;xml.onLoad = function( isLoaded:Boolean ){ if( isLoaded ) { data_arr = XPathAPI.selectNodeList(this.firstChild,”Slideshow/images/image”); delay = parseInt(XPathAPI.selectSingleNode(this.firstChild,”Slideshow/settings/delay”).firstChild); animationDuration = parseInt(XPathAPI.selectSingleNode(this.firstChild,”Slideshow/settings/animationDuration”).firstChild); //optional code to check delay and animationDuration values (delay == undefined delay == null) ? delay = 5000: delay<1000? delay =1000:true; (animationDuration == undefined animationDuration == null) ? animationDuration = .8: animationDuration<.3? animationDuration =.8:true; load_image(); }else { trace(”XML Load error”); }}xml.load(”XML/data.xml”)
function load_image(){ mcl.loadClip(data_arr[current_num].attributes.url, image_holder); (current_num>=data_arr.length-1) ? current_num = first_num:current_num++;}
mcl_lis.onLoadInit = function(target_mc:MovieClip) { var obj:Tween = new Tween(target_mc, “_alpha”, Normal.easeIn, 0, 100, .5, true); setTimeout(function(){ var obj:Tween = new Tween(target_mc, “_alpha”, Normal.easeIn, 100, 0, .5, true); obj.onMotionFinished = function() {load_image();}; },5000);};
In loadImage function we are loading the next image using MovieClip Loader and Checking the present number of image against the last.mcl.loadClip(data_arr[current_num].attributes.url, image_holder); (current_num>=data_arr.length-1) ? current_num = first_num:current_num++;
Here I am not going to explain the full code bcoz after the above description and XPath tutorial; it’s very easy to understand.
Download Source Files.
No comments:
Post a Comment