ho creato un sito nel quale importo nel livello 4 una slide xml.
dovendo gestire 5 diverse slide ho pensato di passare il parametro del file xml e ricaricare il file all'interno della slide.
questo è il codice di un pulsante delle 5 slide:
on (release) {
_root.xmlfile="slideshow.xml";
_level4.myShowXML.unload;
_level4.myShowXML.load(_level0._root.xmlfile);
loadMovieNum("slideshow.swf",4);
}
finqui tutto funziona correttamente il problema è che ogni volta che ricarico il livello 4 la slide mi aumenta la velocità di transizione tra le immagini.
Questo è lo script contenuto all'interno della slide :
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
myShowXML.ignoreWhite = true;
myShowXML.load(_level0._root.xmlfile);
myShowXML.onLoad = function() {
_root.myWidth = myShowXML.firstChild.attributes.width;
_root.myHeight = myShowXML.firstChild.attributes.height;
_root.mySpeed = myShowXML.firstChild.attributes.speed;
_root.myImages = myShowXML.firstChild.childNodes;
_root.myImagesNo = myImages.length;
createContainer();
callImages();
};
function createContainer() {
_root.createEmptyMovieClip("myContainer_mc",1);
myContainer_mc.lineStyle(5,0xffffff,100);
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)+20;
}
function callImages() {
_root.myMCL = new MovieClipLoader();
_root.myPreloader = new Object();
_root.myMCL.addListener(_root.myPreloader);
_root.myClips_array = [];
_root.myPreloader.onLoadStart = function(target) {
_root.createTextField("myText_txt",_root.getNextHi ghestDepth(),0,0,100,20);
_root.myText_txt._x = (Stage.width-_root.myText_txt._width)/2;
_root.myText_txt._y = (Stage.height-_root.myText_txt._height)/2;
_root.myText_txt.autoSize = "center";
_root.myText_txt.text = "test";
};
_root.myPreloader.onLoadProgress = function(target) {
_root.myText_txt.text = "Loading.. "+_root.myClips_array.length+"/"+_root.myImagesNo+" Completed";
};
_root.myPreloader.onLoadComplete = function(target) {
_root.myClips_array.push(target);
target._alpha = 0;
if (_root.myClips_array.length == _root.myImagesNo) {
_root.myText_txt._y = myContainer_mc._y + myContainer_mc._height;
_root.target_mc = -1;
moveSlide();
myShowInt = setInterval(moveSlide, (_root.mySpeed*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;
}
_root.myText_txt.text = _root.myImages[target_mc].attributes.title;
next_mc = _root.myClips_array[_root.target_mc];
new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true);
}
secondo me il problema è da implicare a questo comando:
myShowInt = setInterval(moveSlide, (_root.mySpeed*1000));
in quanto visualizzando il valore di myShowInt questa viene incrementata di 1 ogni volta che ricarico la slide sul livello4.
Come posso risolvere?
Grazie mille

Rispondi quotando