|
Hierbij wil ik wat uitleg geven over de Arrays in actionscript. Ik denk dat de arays in een voorbeeld gebruiken handiger is als technische informatie. Als wij soms meerdere waarden willen bewaren in een variable, moeten wij de arrays gebruiken om eruit te komen. Wij beginnen eerst met beetje algemene info over arrays.
var myarray:Array = new Array; this.onLoad = function(){ myarray = ["e", "j", "d", "e", "r"]; trace(myarray[2]); }; Output ervan zou "j" zijn omdat "j" tweede element is van myarray. Het verschill tussen een var en een array is, array kan meerdere waarden individueel bewaren. Laten wij het at work zien. Doe een nieuw flash-document open (CTRL+N). Je mag de dimensies zelf bepalen, bij mij is het 160x80 px. Maak en vierkantje en noem deze "tik". Iets anders mag dat ook natuurlijk maar ik heb mijne tik genoemt en het scriptje is er ook op gebaseerd. Plak onderstaande code op Frame1 (Letop: niet op movieclip "tik") var i = 0; var e = 0; var line = 0; var clipwidth = _root.tik._width; var clipheight = _root.tik._height; var tothor = Math.floor(Stage.width/clipwidth); var totver = Math.floor(Stage.height/clipheight); var total = (tothor*totver)+(totver-1); this.onLoad = function() { for (i; i<total; i++) { _root.tik.duplicateMovieClip("tik"+i, i); if (e<tothor) { e++; } else { e -= tothor; line++; } _root["tik"+i]._y = line*clipheight; _root["tik"+i]._x = e*clipwidth; } };
Stap twee: plak onderstaande code op het movieclip tik. onClipEvent (load) { var getCol:String; var let:Array = new Array(); var dig:Array = new Array(); let = ["A", "B", "C", "D", "E", "F", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]; var clr = new Color(this); colorIt = function () { dig = [random(16), random(16), random(16), random(16), random(16), random(16)]; getcol = "0x"+let[dig[0]]+let[dig[1]]+let[dig[2]]+let[dig[3]]+let[dig[4]]+let[dig[5]]; clr.setRGB(getcol); }; var tmr:Number = random(5000); setInterval(colorIt, tmr); } Test je swf nu. Hieronder vind je uitleg over code; var i = 0; var e = 0; var line = 0; var clipwidth = _root.tik._width; var clipheight = _root.tik._height; De dimensies van het movieclip var tothor = Math.floor(Stage.width/clipwidth); Hoeveel rijen vertikaal var totver = Math.floor(Stage.height/clipheight); Hoeveel rijen horizontaal
var total = (tothor*totver)+(totver-1); Hoeveel keer moet het movieclip gecopieerd worden this.onLoad = function() { for (i; i<total; i++) { _root.tik.duplicateMovieClip("tik"+i, i); Bij deze loop wordt het movieclip "tik" gecopieerd zodat Stage helemaal vol is. if (e<tothor) { e++; } else { e -= tothor; line++; } _root["tik"+i]._y = line*clipheight; _root["tik"+i]._x = e*clipwidth; } };
Gecopieerde movieclips van tik vormen ook een array in _root. Zo kunnen wij ze terug roepen. e dient voor het bepalen van het horizontale positie terwijl line variable het vertikale positie bepaalt. Nu gaan wij een kijkje nemen in de actionscript van het movieclip tik. onClipEvent (load) { var getCol:String; var let:Array = new Array(); var dig:Array = new Array(); let = ["A", "B", "C", "D", "E", "F", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]; Array let zorgt dat wij alle tekens kunnen terug roepen om een hex code van een random kleur te creeëren. var clr = new Color(this); colorIt = function () { dig = [random(16), random(16), random(16), random(16), random(16), random(16)]; Array dig maakt een array met 6 random nummers tot 16 want array let heeft 16 elementen. Wij gaan deze twee arrays in elkaar gebruiken om een hex code te creeëren van een random kleur voor het movieclip tik. getcol = "0x"+let[dig[0]]+let[dig[1]]+let[dig[2]]+let[dig[3]]+let[dig[4]]+let[dig[5]]; getcol is een kleur in hex code (bv. 0xFFFFFF is wit). Hier komen twee arrays in elkaar om random 6 elementen te kiezen wat niet zou lukken zonder arrays.
clr.setRGB(getcol); Zie Flash tutorials setRGB function voor meer info over deze functie. }; var tmr:Number = random(5000); setInterval(colorIt, tmr); The final touch, een interval om kleur van het movieclip op een random tijdstip te veranderen. } Ik wens jullie success met de disco lights! |