2010-06-10 31 views

回答

0

因爲在客戶端的計算機上執行了Flash,所以無法使用某些AS類。你需要一個服務器上的腳本來返回時間和呼叫,以同步你自己的時鐘。你可以只做一次,當應用程序啓動時,你也可以計算你提出請求的時間,以及它回來的時間,並從時間中減去延遲,這樣你就不會受到網絡延遲的影響。

當然,您可以不時地ping該腳本並在需要時重新同步。

+0

-1 - _「你不能用一些AS類獲得它,因爲在客戶機的計算機上執行了flash。」_這是錯誤的。所有人真正需要的是來自服務器的HTTPResponse來確定服務器時間,哪個Flash完全能夠通過套接字訪問。標準的'URLLoader'不公開這樣的標題,但第三方庫,如[as3httpclient(https://github.com/gabriel/as3httpclient),就允許訪問這些信息。 – merv 2011-09-27 19:11:41

0
  • 初始化時,使用URLLoader從服務器加載時間。服務器腳本可以以UTC時間或以毫秒爲單位傳遞自Linux時代以來的當前時間;添加第二個或兩個接收到的值,如果你想佔一個單程的Flex應用程序
  • 使用Date類讀取本地時間(在客戶端機器時間)和存儲服務器之間的差異的延遲,從服務器時間和當地時間在一個變量中。
  • 用服務器時間初始化您的數字時鐘。
  • 使用每秒觸發的定時器或從事件處理程序更新時鐘。
  • 而不是在每個時鐘滴答中添加一秒鐘,讀取本地時間並添加存儲的差異。這是因爲定時器/ enterFrame事件不能保證在精確的時間間隔火,因爲它被指定爲 - 如果您的應用程序是計算繁重它可能會更慢。
相關問題