I have modified Senocular’s Dissolve transition: :ponder:
http://www.senocular.com/flash/source/?entry=746
to play automatically, changing onMouseDown function to onEnterFrame so the dissolve to happens automatically. However, it only executes once, so I am unable to cycle through more than 2 images. Any insight appreciated.
var frames = 66;
var images = ["flight", "lakes"];
var imagesindex = 0;
var framecount = 0;
var transarea = 0;
var basepoint = new flash.geom.Point(0,0);
var displaybmp = new flash.display.BitmapData(300,196);
var transbmp = new flash.display.BitmapData(300,196);
loadTransBitmap( images[imagesindex] );
displaybmp.draw(transbmp);
this.createEmptyMovieClip("display_mc", 1);
display_mc._y = 25;
display_mc._x = 0;
click_mc.swapDepths(2);
display_mc.attachBitmap(displaybmp, 1);
this.onEnterFrame = function(){
//function onMouseDown(){
loadTransBitmap( getNextImage() );
startTransition();
}
function getNextImage(){
imagesindex++;
imagesindex %= images.length;
return images[imagesindex];
}
function loadTransBitmap(id){
var tempbmp = flash.display.BitmapData.loadBitmap(id);
transbmp.copyPixels(tempbmp, tempbmp.rectangle, basepoint);
tempbmp.dispose();
}
function startTransition(){
framecount = 0;
transarea = transbmp.width * transbmp.height;
onEnterFrame = transOnEnterFrame;
}
function transOnEnterFrame(){
framecount++;
var amount = transarea * framecount/frames;
displaybmp.pixelDissolve(transbmp, transbmp.rectangle, basepoint, 0, amount);
if (framecount >= frames){
delete this.onEnterFrame;
}
}