zondag 2 september 2007

Een analoge klok

Hier ga ik uitleggen hoe je een anologe klok kan maken zoals deze:


Ik begin uit te leggen hoe je de tijd in actionscript ophaald, dit doe je met new Date.get(tijdseenheid); hier zijn wat voorbeelden.

datum = new Date;
uur = datum.getHours();
minuten = datum.getMinutes();
seconden = datum.getSeconds();

Ik begin uit te leggen hoe je de positie van de secondewijzer bepaald. Teken een rechte lijn (bij mij is deze rood), maak hier een symbool van, let er op dat je hem midden-onder centreert. Nu moet je elk frame het aantal seconden ophalen en deze vermenigvuldigen met 6 want 360(van de 360 graden in een cirkel) / 60(aantal seconden in een cirkel) = 6. Dan krijg je dit:

onClipEvent(enterFrame) {
datum = new Date;
seconden = datum.getSeconds();
this._rotation = seconden*6;
}

Probeer nu zelf verder te gaan met de grote en kleine wijzer. Lukt dit niet lees dan verder.


Type dit in bij de grote wijzer:

onClipEvent(enterFrame) {
datum = new Date;
minuten = datum.getMinutes();
this._rotation = minuten*6;
}

en dit bij de kleine wijzer:

onClipEvent(enterFrame) {
datum = new Date;
uur = datum.getHours();
minuten = datum.getMinutes();
this._rotation = uur*30 + minuten/2;
}

zaterdag 1 september 2007

Een pijl die naar je cursor wijst

Hier ga ik je uitleggen hoe je een pijl kan maken die naar je muis wijst. Hier is een voorbeeld:






Maak een nieuw project aan en teken een pijl die naar boven wijst. Als je klaar bent met tekenen maak er dan een symbool van, dit doe je door de hele pijl te selecteren klik dan op Modify >> Convert to Symbol... Name: pijl Type: Movie Clip Registartion: in het midden.

Nu ga ik uitleggen hoe we de pijl in de juiste richting gaan draaien
we kijken eerst hoeveel pixels de cursor van het midden van de pijl staat, dan gaan we met de functie Math.atan2() de draaing uit rekenen dit moeten we vermenigvuldigen met 180 gedeeld door pi. Nu moeten we het getal omdraaien dus alles met -1 vermenigvuldigen.

Schrijf dit in je Actionscript venster bij je pijl.

onClipEvent(mouseMove) {
cursorX = this._x - this._parent._xmouse;
cursorY = this._y - this._parent._ymouse;
verschilInGraden = Math.atan2(cursorX,cursorY) * (180/Math.PI);
this._rotation = -verschilInGraden;
}


Met onClipEvent(mouseMove) { } zorg ik er voor dat de functie elke keer word geactiveert als de muis word bewogen. Hier is nog een kortere versie, zie jij dat het nog netter/beter kan geef dan komentaar (ik moet ook nog veel leren).

onClipEvent(mouseMove) {
this._rotation = Math.atan2(this._x - this._parent._xmouse, this._y - this._parent._ymouse) * -57.2957795130823;
}