开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜