class MultiTrans { private var target:MovieClip; private var randomNum:Number; private var randomNumLast:Number; private var images_xml:XML; private var timerInterval:Number; private var numPause:Number; private var order:String; private var looping:String; private var step:Number; private var pdx:Number; private var idx:Number; // public function MultiTrans(mc:MovieClip, file:String) { var _self = this; target = mc; target.createEmptyMovieClip("loader1_mc", 2); target.createEmptyMovieClip("loader2_mc", 1); target.createEmptyMovieClip("watcher_mc", 100); target.onUnload = function() { clearInterval(_self.timerInterval); }; randomNum = 0; randomNumLast = 0; images_xml = new XML(); images_xml.ignoreWhite = true; images_xml.onLoad = function(success) { if (success) { var imgArr = new Array(); var tmp = this.firstChild; _self.numPause = tmp.attributes.timer*1000; _self.order = tmp.attributes.order; _self.looping = tmp.attributes.looping; _self.step = Number(tmp.attributes.step); var Register_1_ = tmp.lastChild; var Register_2_ = 0; while (Register_1_.nodeName != null) { var imageData = new Object(); imageData.path = Register_1_.attributes.path; imgArr[Register_2_] = imageData; var Register_1_ = Register_1_.previousSibling; Register_2_++; } imgArr.reverse(); _self.imageGen(imgArr); } }; images_xml.load(file); } // private function alphaTrans(target, vel, to) { target.vel = vel; target.to = to; target._visible = true target.alpha_init = target._alpha = 0; target.onEnterFrame = function() { updateAfterEvent(); if (target.to != undefined && target.vel != undefined) { if (target.to>target.alpha_init) { if (target._alpha<=100) { target._alpha += target.vel; } else { target.onEnterFrame = null; } } else if (target._alpha>target.to) { target._alpha -= target.vel; } else { target.onEnterFrame = null; } } else { } }; } // private function loadImages(data, num) { if (idx == undefined || idx == 2) { idx = 2; createLoader(idx, data, num); idx = 1; } else if (idx == 1) { createLoader(idx, data, num); idx = 2; } } // private function createLoader(i, data, num) { var _self = this; var thisLoader = target["loader"+i+"_mc"]; thisLoader._visible = false; thisLoader.loadMovie(data[num].path); target.watcher_mc.onEnterFrame = function() { var Register_2_ = thisLoader.getBytesLoaded(); var Register_1_ = thisLoader.getBytesTotal(); if (isNaN(Register_1_) || Register_1_<4) { } else if (Register_2_/Register_1_>=1) { _self.target.loader2_mc.swapDepths(_self.target.loader1_mc); //trace([thisLoader._width,thisLoader._height]) _self.alphaTrans(thisLoader, _self.step, 100); _self.timerInterval = setInterval(_self, "imageGen", _self.numPause, data); delete this.onEnterFrame; } }; } // private function imageGen(data) { if (order == "random") { while (randomNum == randomNumLast) { randomNum = Math.floor(Math.random()*data.length); } loadImages(data, randomNum); randomNumLast = randomNum; } else if (order == "sequential") { if (pdx == undefined || pdx == data.length && looping == "yes") { pdx = 0; } else { } loadImages(data, pdx); pdx++; } clearInterval(timerInterval); } }