필드를 작동 시키려고했지만 계속 실패하고 있습니다. 또한 예제를 찾으려고했지만 엘름 0.14를 사용하는 유일한 예제는 Elm 0.13에서 사용할 수없는 새로운 채널 API를 사용하는 경우입니다. Elm의 필드 사용 방법 0.13
그래서 나는 catalogimport Graphics.Input.Field (..)
import Graphics.Input (..)
name : Input Content
name = input noContent
nameField : Signal Element
nameField = field defaultStyle name.handle identity "Name" <~ name.signal
에서 제공되는 예에서 시작 그리고 필드를 사용하기 위해 나는
main : Signal Element
main = Signal.lift2 display Window.dimensions gameState
display : (Int,Int) -> GameState -> Element
display (w,h) g =
container w h middle <|
collage gameWidth gameHeight
(if | g.state == Menu ->
[ rect gameWidth gameHeight
|> filled black
, toForm nameField
, plainText "*The name entered in the nameField*"
]
| otherwise -> []
)
을 시도하지만 다음과 같은 오류
Expected Type: Signal.Signal Graphics.Element.Element
Actual Type: Graphics.Element.Element
가 계속
요소가 더 이상 신호가 아닌 이유 ... 함수 정의에 명확하게 명시되어 있습니다. 신호를 출력해야합니다, 맞습니까? 이제 어떻게하면 변수를 사용할 수 있을까요?
그래서이 동작을 게임의 메뉴로 확장하고 싶습니다. 귀하의 회신에서 내가 이해 한 것은, 그 신호가 시간과 관련이 있는지 여부에 상관없이 모든 신호를 '표시'에 대한 추가 입력으로 보내야한다는 것입니다. 그러면 메뉴가 표시되지 않을 때 무시되고 메뉴가 팝업되면 관련성이 높아집니다. 이것은 많은 의미가 있습니다. 이제는 내 유일한 관심사는 어떻게 정보를 현장으로 보낼 수 있을까요? 현재의 가치를 어떻게 되돌려 보낼 수 있습니까? –
나는 무엇을 의미하는지 완전히 모르겠다. 필드에 표시된 정보에 영향을주고 싶습니까? 코드를 편집하여 필드에 영향을 줄 수있는 곳을 더 자세히 볼 수 있습니다. – Apanatshka
예를 들면. 이름이있는 플레이어가 있습니다. 그래서'name'은'Player' 타입의 필드입니다. 메뉴가 열리면 플레이어 이름이 필드 밖으로 나와 필드에 채워집니다. 이제 사용자는 다른 이름으로 재생하려는 경우 필드의 이름을 변경할 수 있으며 필드는 새 이름으로 업데이트됩니다. –