Maria og jeg arbejdede for nyligt med en lille sag, der skulle vise et af 3 mulige billeder i Flash.
dette løste vi på en ret simpel måde.
først oprettede vi en Loader, som kunne håndtere, at loade billedet:
var _loader:Loader = new Loader;
dernæst oprettede vi et Array, som er en liste over de mulige billeder, Flash'en skal kunne loade:
var _pictureArray:Array = ["1.jpg", "2.jpg", "3.jpg"];
slutteligt fandt vi et tilfældigt tal mellem 0 og 2 (altså 0, 1 og 2):
var _whatPicture:Number = Math.floor(Math.random()*3);
herefter satte vi en eventListener op, der ville starte funktionen onComplete, når Loaderen havde loadet billedet:
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
og så bad vi Loaderen om at loade et af billederne.
da et Array starter ved 0 vil vores tilfældige tal 0, 1 og 2 repræsterer henholdsvis billede 1.jpg, 2.jpg og 3.jpg:
_loader.load(new URLRequest(_pictureArray[_whatPicture]));
når billedet var blevet loadet bruger man indholdet af Loaderen til at lave sit billede:
var _image:Bitmap = Bitmap(_loader.content);
var _bitmap:BitmapData = _image.bitmapData;
man sikrer at billedet er usynligt:
_image.alpha = 0;
man gør billedet synligt ved at tilføje det til scenen:
addChild(_image);
og derefter - for at give Flash'en en smule flashy effekt - fader man det ind:
Tweener.addTween(_image, {alpha:1, time:0.5, transition:"linear"});
se et eksempel på en Flash, der loader et tilfældigt billede her:
reload siden, og se, hvordan det virker tilfældigt hvilket billede, der vises.
koden kan i sin helhed ses her:
stop();
//imports
import caurina.transitions.Tweener;
//var
var _loader:Loader = new Loader;
var _pictureArray:Array = ["1.jpg", "2.jpg", "3.jpg"];
var _whatPicture:Number = Math.floor(Math.random()*3);
trace("_whatPicture = "+_whatPicture);
//eventlisteners
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
//init
_loader.load(new URLRequest(_pictureArray[_whatPicture]));
//removeEventListener
//functions
function onComplete(e:Event):void{
var _image:Bitmap = Bitmap(_loader.content);
var _bitmap:BitmapData = _image.bitmapData;
_image.alpha = 0;
addChild(_image);
Tweener.addTween(_image, {alpha:1, time:0.5, transition:"linear"});
}