ActionScript3.0: vise tilfældigt billede i Flash

4. juni 2008

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"});
}

Har i øjeblikket 4.0 point givet af 1 læsere

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , , , ,

Relaterede indlæg

Kommentarer

Tilføj kommentar


 

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

08-09-2010 08:19:51

Powered by BlogEngine.NET 1.3.1.0
Theme by Mads Kristensen (Modifed by Co3)


Om mig

Felix Sanchez Felix Sanchez
Flashin’ about

Send mig en mail Send mail

Kategorier

None

Seneste kommentarer