XML Flash player
Id like to put a flash image gallery that reads an XML and displays the relevant images on my website, however id like to be able to programatically get at a certain slideshow in my XML using its id. for example, my XML has x number of slideshows(i've just copied and pasted the slideshows and changed the id). As an example id like to get at slideshow elements with the id 2. If i was using XPath in XSLT i would do something like "location/image_gallery/slideshow[@id = 2]".
<location>
<image_gallary>
<slideshow id="1" width="230" height="145" speed="2">
<image url="graphics/chesterfield.jpg" title="Market Walk" href="htle.co.uk/" />
<image url="graphics/cranley.jpg" title="History" href="http://www.google.co.uk/" />
</slideshow>
<slideshow id="3" width="230" height="145" speed="4">
<image url="graphics/chesterfield.jpg" title="rket Walk" href="http://www.google.co.uk/" />
<image url="graphics/cranley.jpg" title="History" href="http://www.google.co.uk/" />
</slideshow>
<slideshow id="2" width="230" height="145" speed="3">
<image url="graphics/chesterfield.jpg" title="rket Walk" href="http://www.google.co.uk/" />
<image url="graphics/cranley.jpg" title="History" href="http://www.google.co.uk/" />
</slideshow>
</image_gallery>
</location>
*note that the id's can be in any order, i can hard code the actionscript to get to a particular slideshow, however id like to be able to programatically use the id and then call it in my xslt. Any help would be appreciated.
Im using actionscript 2.0. Here is what i have
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
myShowXML.ignoreWhite = true;
myShowXML.load("xml/london_gb.xml");
myShowXML.onLoad = function() {
_root.myWidth = myShowXML.firstChild.childNodes[0].firstChild.attributes.width;
_root.myHeight = myShowXML.firstChild.childNodes[0].firstChild.attributes.height;
_root.mySpeed = myShowXML.firstChild.childNodes[0].firstChild.attributes.speed;
_root.myImages = myShowXML.firstChild.firstChild.firstChild.childNodes;
_root.myImagesNo = myImages.length;
trace(myImages.length);
createContainer();
callImages();
};
function createContainer() {
_root.createEmptyMovieClip("myContainer_mc",_root.getNextHighestDepth());
myContainer_mc.lineTo(_root.myWidth,0);
myContainer_mc.lineTo(_root.myWidth,_root.myHeight);
myContainer_mc.lineTo(0,_root.myHeight);
myContainer_mc.lineTo(0,0);
myContainer_mc._x = (Stage.width-myContainer_mc._width)/2;
myContainer_mc._y = (Stage.height-myContainer_mc._height)/2;
};
function callImages() {
_root.myMCL = new MovieClipLoader();
_root.myPreloader = new Object();
_root.myMCL.addListener(_root.myPreloader);
_root.myClips_array = [];
_root.myPreloader.onLoadComplete = function(target) {
_root.myClips_array.push(target);
target._alpha=0;
if (_root.myClips_array.length == _root.myImagesNo) {
moveSlide();
myShow开发者_开发技巧Int = setInterval(moveSlide, (_root.mySpeed*1000)+1000);
}
}
for (i=0; i<_root.myImagesNo; i++) {
temp_url = _root.myImages[i].attributes.url;
temp_mc = myContainer_mc.createEmptyMovieClip(i, myContainer_mc.getNextHighestDepth());
_root.myMCL.loadClip(temp_url,temp_mc);
}
};
function moveSlide (){
current_mc = _root.myClips_array[_root.target_mc];
new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true);
_root.target_mc++;
if (_root.target_mc >= _root.myImagesNo){
_root.target_mc = 0;
}
next_mc = _root.myClips_array[_root.target_mc];
new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true);
};
_xmlContainer.imageGallary.slideshow.@id[0];
try this one.
add this line
next_mc.onRelease = function() {
getURL(_root.myImages[target_mc].attributes.href,"_blank");
};
below this line
next_mc = _root.myClips_array[_root.target_mc];
精彩评论