[AS3]AS3.0如何获取所在服务器的时间(实例代码)
[AS3]AS3.0如何获取所在服务器的时间(实例代码)
- package {
- import flash.events.Event;
- import flash.events.EventDispatcher;
- import flash.net.URLLoader;
- import flash.net.URLRequest;
- import flash.utils.getTimer;
- import flash.display.MovieClip;
- /**
- * 获取并计算服务器当前时间工具
- * */
- public class ServerTimeUtil extends MovieClip {
- // 连接服务器获取当前服务器时间的类
- private var loader:URLLoader;
- // 记录请求时返回的服务器时间
- private var serverTime:Number=-1;
- // 记录请求时当前flash player运行的时间
- private var regTime:int;
- private var startTime:int;
- private var url:String="http://192.168.1.240:9080/GDMCDCWeb/demo/getBusiness.do?type=HTY";
- private var endTime:int;
- public function ServerTimeUtil() {
- loader=new URLLoader();
- loader.addEventListener(Event.COMPLETE,onComplete);
- load(url);
- }
- /**
- * 初始获取服务器时间
- * @url 服务器端用于返回当前时间的url地址,请求该地址必须可以返回服务器时间
- * */
- public function load(url:String):void {
- loader.load(new URLRequest(url));
- startTime=getTimer();
- }
- private function onComplete(event:Event):void {// 记录请求完成时FlashPlayer时间
- endTime=getTimer();
- regTime=startTime + endTime / 2;
- var st:Number=Number(loader.data);
- serverTime=st;
- dispatchEvent(new Event(Event.COMPLETE));
- }
- /**
- * 获取当前服务器时间
- * @return 返回的数据为当前时间的Date对象,如果您需要一个Number对象,可以修改返回值
- * */
- public function getServerTime():Date {
- if (serverTime < 0) {
- // 服务器时间计算方式:当前服务器时间 = 当前FlashPlayer运行时间 - 请求时FlashPlayer运行时间 + 请求时服务器时间
- var span:int=getTimer() - regTime;
- var date:Date=new Date ;
- date.setTime(serverTime + span);
- trace(date);
- return date;
- }
- throw new Error("尚未获取到服务器时间");
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...