PDA

Volledige versie bekijken : Variabelen & Arrays: Wat is het nut ervan ?!


tijmen_4real
%Europe/Berlin %399 %2007, 10:35
Hoi !

Ik heb al vele boeken gelezen omtrent Flash en ActionScript.
Maar vaak liep ik steeds vast op dezelfde hoofdstukken.
Deze gingen dan voornamelijk over variabelen en arrays (etc.).

Wie kan mij nu simpel uitleggen wat het nut is van variabelen ?
En waar zijn arrays goed voor ?
Misschien aan de hand van een goed praktijkvoorbeeld ??

Greetz,

Tijmen_4Real 8D

xtr0
%Europe/Berlin %407 %2007, 10:47
- data opslaan
- data doorgeven
- gebruiken voor berekeningen

en zo kan je nog wel even doorgaan, een array is trouwens ook een variable. Variables zijn zeer belangrijk.

mech7
%Europe/Berlin %447 %2007, 11:43
een array is voor een rij met data

TheDutch
%Europe/Berlin %456 %2007, 11:57
Je moet een variable zien als een doosje waar je iets in kunt doen. Een array moet je zien als een doosje met meerdere vakjes waar jeiets in kunt doen :).


Ik heb al vele boeken gelezen omtrent Flash en ActionScript.
Maar vaak liep ik steeds vast op dezelfde hoofdstukken.
Deze gingen dan voornamelijk over variabelen en arrays (etc.).

Hoever ben je dan wel gekomen? Aangezien variables en arrays zo basis is als het maar kan.

tijmen_4real
%Europe/Berlin %483 %2007, 12:35
Nou, zoals jij het zei, over het doosje, zo lees je het in 99% van alle boeken.
Variabelen zijn een functie die je kan aanmaken. Zoals ik het begrijp is dit ook nodig voor de communicatie buiten de flash-movie, met behulp van PHP bijvoorbeeld. Het is dan nodig om een variabele te initaliseren (aanmaken) en te declareren (aangeven welk type het is). En ja, arrays, daar ben ik nog niet echt verder aan gekomen, omdat ik eerst de variabelen wil snappen. Zoals TheDutch het zegt is het dus hetzelfde als een variabele, alleen dan met meerdere declaraties ?????

Kan/Wil iemand hier misschien een goed praktijkvoorbeeld/idee voor geven ?

mknol
%Europe/Berlin %493 %2007, 12:50
var myArray:Array = new Array('flashfocus', 'google', 'flashfreaks');
trace(myArray[1] +" is een zoekmachine");
trace(myArray[0] +" is koel");
trace(myArray[2] +" is de oude flashfocus");

een heel simpel voorbeeld van een array die teksten ophaalt.

var myArray:Array = new Array();
for (var i:Number=0; i<20; i++){
myArray[myArray2.length] = ["nummer: "+i];
}
trace(myArray[4])

en deze maakt een loop en zet wat nummers erin. Deze kun je apart aanroepen.

Erwinzzz
%Europe/Berlin %648 %2007, 16:33
Variabelen zijn eigenlijk alles wat kan veranderen (vrij logisch : Variabel). Om even een simpel voorbeeldje te geven, je hebt een MC op je stage met instancename 'mc1'.

var speed:Number = 5;
this.onEnterFrame = function()
{
mc1._x += speed;
};
this.onMouseDown = function()
{
speed *= -1;
};

Zodra je klikt, word de snelheid omgedraaid. Dit zou je niet kunnen bereiken zonder de variabele (wel met andere variabelen natuurlijk). Het voordeel is dat je er simpel bewerkingen mee uit kan voeren, en overal de zelfde waarde gebruikt. Een ander handig gebruik van variabelen is als je in een script 50 keer hetzelfde getal of woord moet gebruiken. Stel je eens voor dat je als je alles hebt ingetypt, je toch een ander woord wil gebruiken. Kan je alles weer opnieuw gaan typen.

Maar misschien wel het belangrijkste kenmerk: HET IS DYNAMISCH! Als actionscript geen variabelen zijn kennen, zou je net als in html alleen maar voorgeprogrammerde dingen kunnen gebruiken, en geen interactie met de gebruiker kunnen hebben (de waarden zijn immers al bepaald).

tijmen_4real
%Europe/Berlin %587 %2007, 15:06
Om het binnen dezelfde topic te houden (makkelijk als ik het later teruglees)

Ik ben dus druk bezig met het AS2.0/3.0 Handboek, en lees nu over de meervoudige variabelen, zoals Object. Er wordt een voorbeeld van gegeven:

var werknemer:Object = new Object();
werknemer.voornaam = "Hans";
werknemer.achternaam = "Smit";
werknemer.geboortejaar = "1980";
werknemer.afdeling = "verkoop buitendienst";

Kan ik hiermee dan ook werknemer.voornaam in een input-tekstveld verwerken naar een database, en deze later uitlezen in de vorm van een CMS ?

Of wat is nu eigenlijk echt het nut van de meervoudige variabele Object ??

Erwinzzz
%Europe/Berlin %593 %2007, 15:14
Het nut is nogal behoorlijk groot ;) Denk maar aan een MovieClip, wat eigenlijk ook een object is. Deze heeft binnen de variabele van de instancename die je hebt gegeven, ook de variabelen als _x en _y en _width en _height. Het nut is dus min of meer dat je per instantie verschillende waarden kan toekennen. Daarbij kan je makkelijk met for-loops bijvoorbeeld alleen door zoals bij het voorbeeld de werknemers lopen, en per werknemer een bepaalde waarde opvragen. Het zou niet handig zijn als je bijvoorbeeld dit had:

var mijnWerknemer:String = "werknemer1";
var mijnWerknemerNaam:String = "Harry";
var mijnWerknemerLeeftijd:Number = 45;

var mijnWerknemer2:String = "werknemer2";
var mijnWerknemer2Naam:String = "Henk";
var mijnWerknemer2Leeftijd:Number = 35;

Mr. Black
%Europe/Berlin %596 %2007, 15:18
Ten eerste is een object heel handig als je er meerdere van hebt, die allemaal dezelfde waardes hebben. Bijvoorbeeld player1 en player2. Die hebben natuurlijk allebei een naam. Je zou het dan natuurlijk zo kunnen opschijven:

var namePlayer1:String = "Hans";
var namePlayer2:String = "Luuk";
function traceIt(it)
{
trace(it);
}
traceIt(namePlayer1);

Eitje. Maar het wordt moeilijker als je meerdere properties aan de player wil geven. Je moet dan voor iedere property een aparte functie aanmaken! Daar heb je natuurlijk geen zin in, dus doe je zoiets:

var myOb1:Object = new Object();
var myOb2:Object = new Object();
myOb1.age = 20;
myOb1.name = "Hans";
myOb2.age = 56;
myOb2.name = "Luuk";
function traceIt(ob)
{
trace(ob.age);
trace(ob.name);
}
traceIt(myOb1);
traceIt(myOb2);


Ook zijn Objecten handig bij het maken van sommige for-loops; een bekend probleem is dat bij een onRelease check van een aantal movieclips, hij altijd de laatste pakt:

for (var i:Number = 1; i <= 4; i++)
{
_root["mc" + i].onRelease = function()
{
trace(i);
}
}

Ook al klik je op mc1, hij zal toch altijd 4 blijven tracen, omdat de loop tegen de tijd dat je hebt losgelaten al bij 4 is. De oplossing is dan ook simpel:

for (var i:Number = 1; i <= 4; i++)
{
_root["mc" + i].number = i //geeft dus het object (eigenlijk een movieclip) een waarde; number, die ook i bevat
_root["mc" + i].onRelease = function()
{
trace(this.number) //this slaat terug op de regel hierboven, _root["mc" + i], en heeft dus een waarde number. Deze is wél nog gelijk aan de for lus, omdat die al vóór de onRelease wordt toegekend.
}
}


Zo. Dit waren een paar bekende dingetjes over object, ik hoop dat je er wat aan hebt :)

//edit; Erwinzzz was me op het eerste deel voor :P

tijmen_4real
%Europe/Berlin %617 %2007, 15:49
Ok, kan je volgen, tot aan het stuk van for loops. Maar dat zal ik nog wel tegen komen in het handboek. Nu zegt me dat nog (te) weinig...
Bedankt voor de uitleg, kga weer ff verder lezen !

tijmen_4real
%Europe/Berlin %709 %2007, 18:01
Er wordt nu gevraagd naar het verschil tussen een gegeven en een gegevenstype:

Mijn antwoord = Een gegeven is de waarde, en een gegevenstype is het soort (type) dat die waarde is, bijv. Number, String, etc.

Toch ?

-Rutger-
%Europe/Berlin %803 %2007, 20:16
Ik raad je aan om actionscript 2.0 en 3.0 te kopen, heerlijk dat boek ik word elke dag een grote stap beter in AS, of gebruik je dat boek? :S

tijmen_4real
%Europe/Berlin %821 %2007, 20:42
Als je terug leest, zie je het antwoord:
Ik ben dus druk bezig met het AS2.0/3.0 Handboek
In ieder geval bedankt.... 8~

-Rutger-
%Europe/Berlin %830 %2007, 20:55
Oh sorry, ik had die post gemist... Jouw antwoord klopt in principe wel.