Har lige kigget lidt på det og brygget det her sammen. Du skal have 2 mc'er på stagen der hedder "mc1" og "mc2". Du kan også ændre deres navne i mcArray.
Skulle det være helt perfekt, ville jeg nok selv smide en lille preloader på, der tjekkede om billedet rent faktisk ER hentet før det ovenliggende fader, men det må blive en anden god gang. Så længe dine billeder ikke er vildt store og den tid der går imellem de loades ikke er for kort, burde det køre fint i 99,9% af alle tilfælde.
var billedLoadVars:LoadVars = new LoadVars();
var billedArray = new Array();
billedLoadVars.onLoad = function(success) {
if (success) {
makeArray(this.billeder);
} else {
trace("kan ikke finde asp-filen :(");
}
};
billedLoadVars.load("
http://www.oneweb.dk/smws/random_image2.asp");
var current_mc_num = 0; // Hvilken mc holder vi styr på nu?
var current_pic_num;
var mcArray = new Array(this["mc1"], this["mc2"]); // De mc'er på stagen der skal loades ind i
var interval; // Holder styr på det aktuelle interval
var duration = 2000;
// Hvor mange millisekunder inden næste skift?
// Tager den kommaseparerede streng fra php'en
// og splitter den op
function makeArray(s) {
billedArray = s.split(",");
current_mc = this["mc1"];
loadPicture(mcArray[0], billedArray[0]);
loadPicture(mcArray[1], billedArray[1]);
current_pic_num = 1;
delay();
}
// Viser et billede i et mc
// @mc navnet på det mc der skal loades et billede ind i
// @billede navnet på billedet der hentes ind
function loadPicture(mc, billede) {
mc._alpha = 100;
mc.loadMovie("billeder/"+billede);
}
// Holder styr på hvornår vi skifter over til næste mc
function delay() {
interval = setInterval(fade, duration);
}
// Fader det aktuelle billede
function fade() {
clearInterval(interval);
var counter = 0;
mcArray[current_mc_num].onEnterFrame = function() {
if (mcArray[current_mc_num]._alpha>0) {
mcArray[current_mc_num]._alpha -= counter;
} else {
mcArray[0].swapDepths(mcArray[1]);
if (current_pic_num<mcArray.length) {
current_pic_num++;
} else {
current_pic_num = 0;
}
loadPicture(mcArray[current_mc_num], billedArray[current_pic_num]);
current_mc_num = find_current_num();
delay();
delete mcArray[find_current_num()].onEnterFrame;
}
counter++;
};
}
// Holder styr på hvilket mc vi har gang i lige nu
function find_current_num() {
if (current_mc_num == 0) {
return 1;
} else {
return 0;
}
}