vinTagesworld Flash forum

Stel zelf een vraag in het flash forum!


Seconden online teller
blokje door Stefan op 12-03-07 om 10:59
Hey flashers,

Ik heb een vraagje:
Ik wil bij de online bezoekers een tellertje zetten dat aangeeft hoelang de bezoeker op een pagina is.
Dit heb ik met PHP gemaakt, maar dan staat hij uiteraard stil.
Met JS heb ik een scriptje gemaakt dat het getal elke seconden verhoogd, maar dat is maar een keer per pagina te gebruiken.
Dan blijft er nog over: flash.
Ik wil dus een swf op te roepen als teller.swf?getal=31.
Hierbij is 31 het getal waarbij elke seconden 1 bij op wordt geteld (dit getal wordt door PHP meegegeven).
Maar hoe kan ik een swf maken dat dit getal weergeeft en elke seconden er eentje bij doet?

Groeten,
Stefan

 


Reply
blokje door waltert op 12-03-07 om 14:12
Beste Stefan,
Dit is een stukje uit Tetris uit de Flashcase.
Met onderstaande code wordt om de 1000 milliseconden (1seconde)een functie opgeroepen. Waarbij je kunt doen wat je wil oa een variable "seconden" met 1 doen toenemen. Zie ook Bogen en cirkels tekenen.

actionscript code



var seconden=0
interval = setInterval(this, "uwseconden", 1000);



function uwseconden() {
  seconden ++;
  trace(seconden)
  }

 


laatst ge-edit op: 12-03-07 om 14:46
Reply
blokje door Stefan op 12-03-07 om 17:35
Oke, bedankt.
Ik zal het eens uitproberen.

Edit:
Ja, hij werkt wel.
Maar ik krijg het niet werkend dat ik het begingetal kan bepalen met de URL.
Als ik het probeer dan blijft hij op dat getal hangen.

laatst ge-edit op: 12-03-07 om 18:11
Reply
blokje door W0utah op 12-03-07 om 20:55
dan pak je gewoon

actionscript code

var seconden:Number = getal
 


 
Reply
blokje door vinTage op 12-03-07 om 21:23
Ik heb me vermaakt met het bouwen van een scriptje voor je, zo hoef je geen externe variabelen op te halen

Hier heb je een voorbeeld, en een fla heb je niet echt nodig, want ik heb alles ook nog als trace in mijn onderstaande script staan:

actionscript code

//dutum en tijdstip ophalen bij een nieuw bezoek/page refresh
tijdStip = new Date();
nieuweStart = tijdStip.getTime();
vandaag = tijdStip.getDate();

//voor het tekstveld
info.html = true;


//flash cookie fikken waar vanalles inkomt
startBezoek = SharedObject.getLocal("bezoek", "/");
//Er bestaat een verlopen cookie, of de bezoeker is nog nooit geweest
if (startBezoek.data.sDat == undefined || startBezoek.data.sDat != vandaag) {
  //meuk in het cookie raggen
  startBezoek.data.sDat = tijdStip.getDate();
  startBezoek.data.tijd = nieuweStart;
  startBezoek.data.secondeActief = 0;
  startBezoek.flush();
} else {
  //pagina refreshte
  startBezoek.data.pageRefresh = nieuweStart;
  startBezoek.flush();
}

function maak_lees_Tijd() {
  //eerste bezoek realtime terug rekenen
  vergelijk = new Date();
  verschil = vergelijk.getTime()-startBezoek.data.tijd
  uur = Math.floor(verschil/1000/60/60)%24;
  minuut = Math.floor(verschil/1000/60)%60;
  minuut == 1 ? min=minuut+" minuut" : min=minuut+" minuten";
  sec = Math.floor(verschil/1000)%60;
  totaalTijd = uur+" uur, "+min+" en "+sec+" seconden";
  trace("je eerste bezoek is "+totaalTijd+" geleden.");
  tekstVar1 = "je eerste bezoek is "+totaalTijd+" geleden.";
 
  //tijd dat er echt een pagina met deze swf openstond terug rekenen
  startBezoek.data.secondeActief += 1;
  startBezoek.flush()
  aSec = Math.floor(startBezoek.data.secondeActief)%60
  aMin = Math.floor(startBezoek.data.secondeActief/60)%60
  aUur = Math.floor(startBezoek.data.secondeActief/60/60)%24
  echtActief = aUur+" uur "+aMin+" minuten "+aSec
  trace("Deze swf stond "+echtActief+" seconden echt te draaien in een pagina.");
  tekstVar2 = "Deze swf stond "+echtActief+" seconden echt te draaien in een pagina.";
 
  //aantal seconden dat je naar DEZE pagina kijkt
  trace("je hangt al "+Math.floor(getTimer()/1000)+" seconden op DEZE pagina");
  tekstVar3 = "je hangt al "+Math.floor(getTimer()/1000)+" seconden op DEZE pagina"
 
  //scheidingslijntje
  trace("_________________________________________________________________");
  info.htmlText = tekstVar1+"<br>"+tekstVar2+"<br>"+tekstVar3;
}
//per "seconde" de functie aanroepen
tonen = setInterval(maak_lees_Tijd, 1000);
 


have phun with it


sidenote, setInterval is niet echt 100% precies, dat is ook de reden dat er soms kleine glitches ontstaan in de secondes, maar dit word even later gewoon weer gecorigeerd

laatst ge-edit op: 12-03-07 om 21:30
Dit topic is gesloten.