Salve a tutti,
sono alle prese con un filmato in flsh che ho trovato in rete già pronto. Questo mi permette di pescare le immagini presenti in una cartella attraverso un file xml e mostrarle in sequenza e con effetto dissolvenza in un filmato in flash. Bene fin qui tutto ok, il filmato va alla grande... però vorrei aggiungere un livello, che rimanga sempre sopra tutte le foto caricate,che contenga della grafica oppure dei bottoni.... E' qui che non so come andare a vanti... precisando che di actionscript ne capisco poco... se qualcuno volesse darmi una mano bene altrimenti grazie comunque ;-)
Ecco l'actionscript contenuto nell'unico frame dell'unico livello presente nel .fla
Codice PHP:
Stage.align = "TL";
Stage.scaleMode = "noScale";
var nocache = "?t="+(new Date().getTime());
trace(nocache);
// set random # variables - each must be 0 for first 'while' loop below
var randomNum = 0;
var randomNumLast = 0;
// parent container
var container_mc = this.createEmptyMovieClip("container", 0);
// movie clip containers
container_mc.createEmptyMovieClip("loader1_mc", 2);
container_mc.createEmptyMovieClip("loader2_mc", 1);
// preload watcher
this.createEmptyMovieClip("watcher_mc", 100);
// load xml
images_xml = new XML();
images_xml.ignoreWhite = true;
images_xml.onLoad = parse;
images_xml.load(xmlimages+nocache);
function parse(success) {
if (success) {
imageArray = new Array();
var root = this.firstChild;
_global.numPause = Number(this.firstChild.attributes.timer*1000);
_global.order = this.firstChild.attributes.order;
_global.looping = this.firstChild.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 == "yes") {
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();