14.1.获得当前日期和时间

问题
我想知道当前日期和时间
解决办法
使用Date( ) 创建一个date对象,或者使用一个CGI脚本或其他服务端脚本返回服务器时间,然后根据返回值创建date对象
讨论
ActionScript计算出来的日期和时间是根据客户端计算机的日期和时间而得出的,因此如果客户端的时间不正确,那么date对象也是不正确的。
+展开
-ActionScript
// 创建新的Date对象
var current:Date = new Date( );
// 显示客户端日期和时间
trace(current);

如果你连接上了互联网,Flash可以从服务器获得日期和时间,这项技术可以保证获得正确的日期和时间(当然了你也可以故意把服务器时间设置错误,但是至少可以保证所有的客户端的时间是一致的)。

一般从服务器获得时间的步骤如下:
在Web服务器上创建CGI脚本,输出时间(秒)。
使用flash.net.URLLoader对象读取时间。
转换数值为number类型,乘以1000,再用这个数值重新构造一个date对象。
PHP是一种被广泛使用的脚本语言,用它输出服务器时间是很简单的:
+展开
-PHP
 echo time( );

如果你的服务器不支持PHP,或者说你更熟悉Perl (另一种脚本语言),输出也很简单:
#!/usr/local/bin/perl
print "Content-type:text/plain\n\n";
print time;

不管你使用什么服务端脚本,最后都要用ActionScript的flash.net.URLLoader对象载入服务器返回的时间值。
+展开
-ActionScript
package {
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
public class ServerDateTimeExample {
public function ServerDateTimeExample( ) {
// 下面的代码创建一个URLLoader对象,添加一个监听器,当数据载入
// 完成时激活onDateTimeLoad( )方法
var loader:URLLoader = new URLLoader( );
loader.addEventListener(Event.COMPLETE, onDateTimeLoad);
loader.load(new URLRequest("script.cgi"));
}
private function onDateTimeLoad(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var data:int = parseInt(loader.data);
var current:Date = new Date(data * 1000);
trace(current);
}
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(122)喜欢(0)flash/flex/fcs/AIR