【问题标题】:How to sampleOn signal and keep the sampled value in Elm?如何对信号进行采样并将采样值保留在 Elm 中?
【发布时间】:2015-11-04 10:50:12
【问题描述】:

考虑一个模型:

model : Signal Model

以及以下 2 个信号:

clickPosition = Mouse.position
  |> Signal.sampleOn Mouse.clicks

和:

dimensions = Window.dimensions

我想得到以下desiredSignal

            (0,0)       (30,20)               (60,70)
clickPosition +------------+---------------------+---------

              M0   M1                  M2     M3
        model +----+-------------------+------+------------

          (600,800)         (400,300)  (200,800)
   dimensions +-----------------+----------+---------------

              D1           D2                    D3
desiredSignal +------------+---------------------+---------


where:

  D1 = ((0,0), M0, (600,800))
  D2 = ((30,20), M1, (600,800))
  D3 = ((60,70), M3, (200,800))

即我想对clickPosition 进行采样,但保留采样值。

我该怎么做?

【问题讨论】:

    标签: elm elm-signal


    【解决方案1】:

    看起来您的 desiredSignal 是三个信号的最新值,经过元组处理,但仅在 clickPosition 信号发生变化时发生变化。您可以先将它们组合起来,然后对clickPosition 信号进行采样:

    desiredSignal =
      Signal.map3 (,,) clickPosition model dimensions
      |> Signal.sampleOn clickPosition
    

    【讨论】:

    • 啊哈!出于某种原因,我认为如果我对clickPosition 进行采样,那么它不应该参与映射。现在很有意义,谢谢!
    猜你喜欢
    • 2021-07-23
    • 2021-11-13
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多