2012-10-02 81 views
2

我想在actionscript 3中獲取當前日期/時間,並且我想避免使用Date類,因爲系統時間可以由用戶輕鬆操作。在ActionScript 3中獲取服務器安全的時間戳

我可以訪問服務器並獲取時間戳嗎?

是否有更好的替代方法(簡單的URL請求)?

回答

1

這裏是你如何能做到這一點:

Flash端:

var loader:URLLoader = new URLLoader() 
loader.load(new URLRequest("yourserverpage.php")) 
loader.addEventListener(Event.COMPLETE, onLoaded) 
function onLoaded(evt:Event){ 
    var date:Date; 
    try{ 
     date = new Date(Number(loader.data)); 
    }catch(e:Error){ 
    } 

    if(!date){ 
     //flash couldn't convert the date properly, there was an error 
    } 
} 

,而PHP的一面:

<?php 
    header("Content-Type: text/plain"); 
    print time() * 1000; 
?> 
+0

太棒了!正是我想要的。非常感謝你 – Jake

2

在ActionScript中你可以做的任何事情都可以由用戶操作,因爲它在自己的計算機上運行,​​並且你無法對此做任何事情。

也就是說,您可以從您擁有的服務器獲取當前時間戳(用於跨域原因)。只需在PHP中輸出time()(例如)並通過URLLoader獲取它。

+0

返回值仍然可以用容易被篡改。最安全的是檢查服務器本身的日期。 –

+0

@WillKru完全一樣,那是我第一句話的要點。 – blue112

+0

感謝您的快速回復。我知道日期對象可能被代碼篡改。但即使改變時間設置(任何人都可以做到這一點),將改變日期對象... – Jake