Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- this.lastFreeLifeTS = ( new Date() ).time;
- var currTime:Number = ( new Date() ).time;
- var diff:Number = ( currTime - this.lastFreeLifeTime );
- var lifeTime:Number = 1000 * 60 * 20; // give a life every 20 minutes
- if( diff > lifeTime )
- {
- giveFreeLife();
- this.lastFreeLifeTime += lifeTime;
- }
- // starting off
- var lifeTime:Number = 1000 * 60 * 20; // 20 minutes
- var msUntilNextLife:Number = ( ( new Date() ).time - this.lastFreeLifeTime ) + lifeTime;
- this.nextFreeLifeTime = getTimer() + msUntilNextLife;
- ...
- // check if we need to give a new life
- if( getTimer() > this.nextFreeLifeTime )
- {
- giveFreeLife();
- this.lastFreeLifeTime += lifeTime;
- this.nextFreeLifeTime += lifeTime;
- }
- // load our SharedObject/XML and set our lastFreeLifeTime
- ...
- // check how much time has passed and give any lives necessary
- var currTime:Number = ( new Date() ).time;
- var diff:Number = currTime - this.lastFreeLifeTime;
- var lifeTime:Number = 1000 * 60 * 20; // 20 minutes
- var numLives:int = int( diff / lifeTime );
- if( numLives > 5 )
- numLives = 5; // only give a maximum number of lives
- if( numLives > 0 )
- {
- giveFreeLives( numLives );
- // update our lastFreeLifeTime only if we didn't give the max number of lives
- // (as otherwise we don't need it)
- // NOTE: because we're adding (lifeTime * numLives), it handles the time between
- // lives nicely. E.g. If we get a life every 20m and we come back after 30m, then
- // our lastFreeLifeTime will be (20 * i), meaning a 10m difference between the
- // current time, meaning we only have to wait 10m to get our next one
- if( numLives < 5 )
- this.lastFreeLifeTime += lifeTime * numLives;
- }
- <?php
- echo round( microtime( true ) * 1000 );
- ?>
- // NOTE: add all the other listeners, like IOErrorEvent, and SecurityErrorEvent
- var urlLoader:URLLoader = new URLLoader( new URLRequest( "http://myserver.com/timestamp.php" ) );
- urlLoader.addEventListener( Event.COMPLETE, onGetTime );
- function onGetTime( e:Event ):void
- {
- // remove our event listener so we can clean up
- var urlLoader:URLLoader = ( e.target as URLLoader );
- urlLoader.removeEventListener( Event.COMPLETE, onGetTime );
- // the data is the timestamp returned by php, as a string, so convert it
- var timestamp:Number = Number( urlLoader.data );
- if ( isNaN( timestamp ) )
- {
- trace( "Couldn't get the timestamp from the server! Returned details: " + urlLoader.data );
- timestamp = ( new Date() ).time; // fallback to client
- }
- // do something with the time
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement