XML Flash Player - PullRequest
       14

XML Flash Player

0 голосов
/ 13 июля 2011

Я хотел бы разместить галерею флэш-изображений, которая читает XML и отображает соответствующие изображения на моем веб-сайте, однако я хотел бы иметь возможность программно получить доступ к определенному слайд-шоу в моем XML, используя его идентификатор. например, мой XML имеет x количество слайд-шоу (я только что скопировал и вставил слайд-шоу и изменил идентификатор). В качестве примера идентификатор хотел бы получить в слайд-шоу элементы с идентификатором 2. Если бы я использовал XPath в XSLT, я бы сделал что-то вроде «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);

};

Ответы [ 2 ]

0 голосов
/ 24 августа 2012

добавить эту строку

next_mc.onRelease = function() {
    getURL(_root.myImages[target_mc].attributes.href,"_blank");
}; 

ниже этой линии

next_mc = _root.myClips_array[_root.target_mc];
0 голосов
/ 13 июля 2011
.

_xmlContainer.imageGallary.slideshow @ идентификатор [0];

попробуйте это.

...