回答
AS3超時(例如setTimout
)像JavaScript一樣。 use of setTimeout in AS is talked about here。給定兩個日期(現在和何時應該觸發警報),以毫秒爲單位計算差值並將其用作超時參數。
或者(並且效率低下,但不足以睜大眼睛),setTimeout
可以每分鐘運行一次,如果它是「神奇的時間」(或者在先前的時間間隔之前過去!記住需要2倍的頻率觀察所有的變化,並且可能發生時鐘偏移...)然後發出警報。
請注意,有一些限制,如AS主機在超時或時鐘週期期間關閉。可能沒有DST擔心這裏,但夏時制問題做來處理日期/時間。
快樂編碼。
編輯: AS還有Timer
class它是setTimeout/setInterval/clearTimeout/clearInterval功能的包裝。無論如何,如果「使用對象」是首選。
我想說你創建一個循環來檢查Date對象的當前時間。
package {
import flash.display.Sprite;
import flash.utils.clearInterval;
import flash.utils.setInterval;
public class TimeCheck extends Sprite
{
private var interval:int;
public function TimeCheck()
{
interval = setInterval(checkTime, 1000);//check performed every second
checkTime();
}
private function checkTime():void
{
var date:Date = new Date();
if (date.hours == 23 && date.minutes == 55)//actual time check
{
clearInterval(interval);//kills the loop
//... do something ...
}
}
}
}
請注意,這是執行客戶端,因此將使用客戶端時間。可能有辦法將它同步到服務器時間。
希望它有助於
+1良好的代碼文章。但是,*檢查間隔必須至少是頻率的兩倍或者一分鐘可能會丟失!*(或者至少這是我從基礎物理學中記得的,但我無法在網上找到任何信息......)無論如何,確定在setTimeout中建立鬆弛:假設時間是'23:54.99',下一個超時*需要稍微超過1000ms才能運行*,因此接下來會看到值'23:56.01`並跳過23.55。 ?`。雖然這是一個邊緣案例,但可能會發生。增加觀察頻率,嘗試糾正觀察者時間,和/或觀察23:55是否在「當時」和「現在」之間。 – 2011-01-28 03:34:39
我沒有測試過,但這樣的事情應該工作...
var eventDate:Date = new Date();
eventDate.setHours(23, 55);
var now:Date = new Date();
var delay:Number = eventDate.time - now.time;
if(delay > 0)//if we haven't yet passed 23:55
{
var timer:Timer = new Timer(delay , 1);
timer.addEventListener(TimerEvent.TIMER , yourMethod);
timer.start();
}
我相信上述解決方案的工作;然而,它們在性能方面似乎非常昂貴。我有一個(相對)優雅和直截了當的雙線程。該解決方案使用匿名函數,即客戶端時間,並假定給出了一個參數startDate:Date
。我沒有測試過,所以可能會出現一個簡單的邏輯錯誤,但這個想法應該給一些想法。
var timer:Timer = (new Timer(startDate.time - (new Date()).time, 1)).addEventListener(TimerEvent.TIMER, function():void {
// This area is called after the allocated time.
});
timer.start();
- 1. 在特定的時間(和日期)調用函數
- 2. 如何在特殊日期和時間調用函數?
- 3. MSON指定日期,時間
- 4. 用戶指定的日期時間
- 5. 包含UTC指定符(「Z」)的日期時間的SQLite日期函數失敗
- 6. SQL日期時間 - 指定時間
- 7. 有日期時間指數
- 8. 在指定的時間間隔後第一次調用函數
- 9. 日期/時間在甲骨文 - 日期時間函數
- 10. 如何在特定時間和日期(React)運行函數?
- 11. 從指定的日期/時間減去指定的小時數以獲得新的日期/時間
- 12. 在定期時間間隔內調用函數的API
- 13. 當使用具有時間函數的日期函數時,日期問題在日期函數
- 14. Rails:如何在DB中保存時間時指定日期
- 15. Python - 日期時間函數
- 16. javascript日期時間函數
- 17. SparkSQL日期時間函數
- 18. 時間日期函數
- 19. PHP日期時間函數
- 20. 日期時間函數PHP
- 21. PHP日期/時間函數
- 22. 如何在指定的日期/時間運行bat文件?
- 23. 使用date()函數在特定時區顯示時間/日期
- 24. 如何爲時間戳數組(日期時間)指定psycopg2參數
- 25. 調用整數日期時間的成員函數格式()
- 26. log4net在每行上打印日期時間/調用類/函數
- 27. 未定義不是在新的日期調用getTime時函數
- 28. 如何指定日期間隔?
- 29. 如何創建函數將IST日期時間轉換爲CST日期時間
- 30. 的setInterval不會調用一個函數在指定時間後
@pst。你應該把它作爲答案,而不是評論 – Ben 2011-01-25 02:13:57