PDA

Volledige versie bekijken : Datum rekenen en per dag 1 frame verder


Sabre
%Europe/Berlin %662 %2006, 15:53
Hallo iedereen,

Ik ben lekker aan het flashen, maar loop vast op het volgende probleem. Ik heb voor een evenement de plattegrond van een theater, en naarmate we dichter bij de datum komen wil ik per dag een x-aantal stoelen inkleuren. Concreet wil ik het volgende:

per dag moet de movieclip één frame verschuiven. Vandaag moet hij frame nr. 1 afspelen, morgen frame nr. 2, enz.

Nu was ik al bezig om het volgende script aan te passen:


nu = new Date();
var jaar=nu.getYear();
var maand=nu.getMonth();
var dag=nu.getDate();

var jaarevenement=2007;
var maandevenement=04;
var dagevenement=18;

if(jaar<=jaarevenement) {
if(maand<=maandevenement) {
if(dag<=dagevenement) {
gotoAndStop("voor");
}
else {gotoAndStop("na");}
}else {gotoAndStop("na");}
}else {gotoAndStop("na");}


Dit script werkt op zich, maar beperkt zich tot het berekenen of ik nog voor de datum van het evenement ben of niet. Ik zou zo graag per dag één framepje af laten spelen. Volgens mij ben ik op de goede weg, of zit ik nu gewoon heel erg moeilijk te doen?

Ik ben pas sinds kort bezig met het Actionsript, en leer iedere dag weer bij door dit forum af te zoeken en bestaande stukken script aan te passen om te kijken wat er gebeurt, maar nu zit ik toch echt even vast! Ik hoop dat jullie me weer even op weg kunnen helpen!

BernardV
%Europe/Berlin %687 %2006, 16:29
Heb even iets in elkaar gezet, hoop dat het een beetje duidelijk is.
Heb geprobeerd aan de hand van de variabelen duidelijk te maken wat het is.


var totaalAantalFrames:Number = 200;

var nu:Date = new Date();
var dan:Date = new Date(2007,3,18); // 3 voor de maand, want januari is 0

var verschil:Number = dan - nu;
var verschilInSeconden:Number = verschil / 1000;
var verschilInMinuten:Number = verschilInSeconden / 60;
var verschilInUren:Number = verschilInMinuten / 60;
var verschilInDagen:Number = verschilInUren / 24;

var aantalDagenAfgerond:Number = Math.floor(verschilInDagen);

var frameOmTeSpelen:Number = totaalAantalFrames - aantalDagenAfgerond;

if(frameOmTeSpelen > totaalAantalFrames) frameOmTeSpelen = totaalAantalFrames;

gotoAndStop(frameOmTeSpelen);

//EDIT:
Omdat je alleen dagen nodig hebt is dit voldoende:

var totaalAantalFrames:Number = 200;

var nu:Date = new Date();
var dan:Date = new Date(2007,3,18); // 3 voor de maand, want januari is 0

var verschil:Number = (dan - nu) / 86400000;

var aantalDagenAfgerond:Number = Math.floor(verschil);

var frameOmTeSpelen:Number = totaalAantalFrames - aantalDagenAfgerond;

if(frameOmTeSpelen > totaalAantalFrames) frameOmTeSpelen = totaalAantalFrames;

gotoAndStop(frameOmTeSpelen);