【问题标题】:Dart language: build a clock (with date and time)Dart 语言:构建时钟(带日期和时间)
【发布时间】:2014-07-11 06:29:20
【问题描述】:

我想知道如何使用 Dart 构建时钟(日期和当前时间)。我会将生成的 observable 字符串(因此它会自动刷新)绑定到 HTML Polymer 元素。

我曾想过使用计时器来使用 DateTime.now() 刷新字符串,但这似乎是一种解决方法,而不是最佳解决方案。

我只需要知道如何编写 dart 文件,因为 HTML 和 Polymer 元素已经配置好了。

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

    你可以看看这个例子
    https://github.com/bwu-dart/polymer_ui_elements/blob/master/example/polymer_ui_clock.html
    https://github.com/bwu-dart/polymer_ui_elements/blob/master/lib/polymer_ui_clock/polymer_ui_clock.dart 它需要稍作调整才能与当前的 Polymer 版本一起使用。

    var oneSecond = new Duration(seconds: 1);
    _timer = new Timer.periodic(oneSecond, updateTime);
    

    updateTime 是每秒调用一次的方法。

    【讨论】:

    • Günter,我不得不用 attach() 和 detached() 更改不推荐使用的 enterView() 和 leftView() 方法。它奏效了,但时钟似乎有点延迟。有机会解决这个问题吗?这种(最初很小的)差异会随着时间的推移而变大吗?
    • 我们不再维护这个包了。它被核心元素和纸张元素取代,即使它们不包含时钟(据我所知)。差别有多大?时间每秒更新一次,然后从系统时钟(time = new DateTime.now();)中重新读取当前时间。这个Timer.periodic 可能不会在系统时钟的第二秒发生变化时准确触发,因此偏差可能会上升到一秒但不会更多。
    • 您可以使持续时间更小(例如 50 毫秒),但仅在秒实际更改时才更新时钟。这样你可以减少偏差。这取决于你想用时钟做什么。目前,它针对最少的资源使用进行了优化。
    • 您还可以检查毫秒数,并在 Timer.periodic 与精确的秒数变化相差很大时尝试重新初始化它。
    • 其实我不需要那么精确。我只是担心差异会变大(但事实并非如此)。非常感谢,君特!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2022-12-10
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2020-09-04
    相关资源
    最近更新 更多