forked from: Final Party

by yonatan forked from Final Party (diff: 5)
♥1 | Line 77 | Modified 2017-03-14 09:47:09 | MIT License
play

ActionScript3 source code

/**
 * Copyright yonatan ( http://wonderfl.net/user/yonatan )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ggT9
 */

// forked from makc3d's Final Party
// forked from kousho's Countdown_WIF2010
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;

	public class CountdownClock extends Sprite
	{
                // March 31, 2017 at 2:00 p.m.(JST) is 5:00 a.m. UTC
                // https://savvytime.com/converter/jst-to-utc/mar-31-2017/2pm
		private const END_TIME_UTC:Array = [2017, 3, 31, 5, 0, 0];
		
		private var endTime:Number;
		private var textField:TextField;
		private var date:Date = new Date();
		private var tmpsec:int;
		
		public function CountdownClock() 
		{
			
			init();
			setView();
			startCountdown();
		}
		
		private function init():void
		{
			endTime = new Date(
				END_TIME_UTC[0],
				END_TIME_UTC[1] - 1,
				END_TIME_UTC[2],
				END_TIME_UTC[3],
				END_TIME_UTC[4],
				END_TIME_UTC[5],
				0
			).getTime();
			
			textField = new TextField();
                        textField.multiline = true;
			textField.width = 465;
			textField.y = 210;
                        
			addChild(textField);
		}
		
		private function setView():void
		{
			var nowTime:Number = date.getTime() + date.timezoneOffset * 60 * 1000;
			
			if (nowTime > endTime)
			{
				textField.htmlText = "<font size='40'>END</font>";
			}
			else
			{
				var restTime:Number = endTime - nowTime;
				var url:String = "http://wa.zozuar.org/user.php?name=" + stage.loaderInfo.parameters["viewer.displayName"];
				textField.htmlText = "<font size='28'>" +
                                    str2(int(restTime / 86400000)) + " days " +
                                    str2(int(restTime / 3600000) % 24) + " hours " +
                                    str2(int(restTime / 60000) % 60) + " minutes " +
                                    str2(int(restTime / 1000) % 60) + " seconds</font>" +
                                    "<br><br><p align='center'><a href='" + url + "'>"+url+"</a></p>";
			}
		}

		private function str2(val:*):String
		{
			var str:String = String(val);
			while(str.length < 2) { str = "0" + str; }
			return str;
		}
		
		private function checkUpdate(e:Event):void 
		{
			date = new Date();
			if (sec != tmpsec)
			{
				tmpsec = sec;
				setView();
			}
		}
		
		private function startCountdown():void
		{
			tmpsec = sec;
			addEventListener(Event.ENTER_FRAME, checkUpdate);
		}
		
		private function get sec():int { return int(date.seconds);}
		
	}

}