简体   繁体   中英

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();
myShowInt = 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);

};

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];

_xmlContainer.imageGallary.slideshow.@id[0];

try this one.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM