18. august 2008 - 13:31Der er
8 kommentarer og 1 løsning
random timer i XML
Jeg kører et image gallery der loader fotos ind i random rækkefølge. Kan man også kører time random? Har forsøgt bare at skrive time="random" men så banker den bare en masse billeder af i løbet af et par sekunder og finder så et normalt tempo igen....Vil gerne kører tempoet random mellem 2-4 sekunder
<!-- 'timer' :: number of seconds between each image transition 'order' :: how you want your images displayed. choose either 'sequential' or 'random' 'looping' :: if the slide show is in sequential mode, this stops the show at the last image (use 'yes' for looping, 'no' for not) 'fadeTime' :: velocity of image crossfade. Increment for faster fades, decrement for slower. Approximately equal to seconds. 'xpos' :: _x position of all loaded clips (0 is default) 'ypos' :: _y position of all loaded clips (0 is default) --> <gallery timer="2" order="random" fadetime="1" looping="yes" xpos="0" ypos="0"> <image path="images/a1.jpg" /> <image path="images/a2.jpg" /> <image path="images/a3.jpg" /> <image path="images/a4.jpg" /> <image path="images/a5.jpg" /> <image path="images/a6.jpg" />
// load xml images_xml = new XML(); images_xml.ignoreWhite=true; images_xml.onLoad = parse; images_xml.load("imagesa.xml");
function parse(success) { if (success) { imageArray = new Array(); var root = this.lastChild; _global.numPause = Number(this.firstChild.attributes.timer *2000); _global.order = this.firstChild.attributes.order; _global.looping = this.lastChild.attributes.looping; _global.fadetime = Number(this.firstChild.attributes.fadetime); _global.xpos = Number(this.firstChild.attributes.xpos); _global.ypos = Number(this.firstChild.attributes.ypos); var imageNode = root.lastChild; var s=0; while (imageNode.nodeName != null) { imageData = new Object; imageData.path = imageNode.attributes.path; imageArray[s]=imageData; imageNode = imageNode.previousSibling; s++; } // place parent container container_mc._x = _global.xpos; container_mc._y = _global.ypos; // parse array imageArray.reverse(); imageGen(imageArray); } else { trace('problem'); } }
// depth swapping function swapPlace(clip,num) { eval(clip).swapDepths(eval("container_mc.loader"+num+"_mc")); }
function loadImages(data,num) { if (i==undefined || i == 2) { i=2; createLoader(i,data,num); i=1; } else if (i==1) { createLoader(i,data,num); i=2; } } function createLoader(i,data,num) { thisLoader=eval("container_mc.loader"+i+"_mc"); thisLoader._alpha=0; thisLoader.loadMovie(data[num].path); watcher_mc.onEnterFrame=function () { var picLoaded = thisLoader.getBytesLoaded(); var picBytes = thisLoader.getBytesTotal(); if (isNaN(picBytes) || picBytes < 4) { return; } if (picLoaded / picBytes >= 1) { swapPlace("container_mc.loader2_mc",1); alphaTween = new mx.transitions.Tween(thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut,0,100,_global.fadetime,true); timerInterval = setInterval(imageGen,_global.numPause,data); delete this.onEnterFrame; } } } function imageGen(data) { // random, or sequential? if (_global.order=="random") { // choose random # between 0 and total number of images while (randomNum == randomNumLast) { randomNum = Math.floor(Math.random() * data.length); trace(randomNum); } loadImages(data,randomNum); randomNumLast = randomNum; } else if (_global.order=="sequential") { // start at 0, increment to total number of images, then drop back to zero when done if (p==undefined || p==data.length && _global.looping=="no") { p=0; } else { break; } loadImages(data,p); p++; } else { trace ("order attribute in xml isn't correct - must specify either 'random' or 'sequential'"); } clearInterval(timerInterval); } stop();
var iTimer=this.firstChild.attributes.timer; if(iTimer=="random"){ iTimer=Math.floor(Math.random*2)+2; } _global.numPause = Number(iTimer*2000);
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.