Demo 3. This is a hello world application based on my NECEC 2015 talk. The TBC code is shown at the bottom.
The TBC code is as follows.
loop (
clearText( nameBox ) >
show( nameBox ) >
show( question ) >
getAndDisplayAnswer() > // See below
hide( question ) >
hide( nameBox ) >
pause( 1000 )
)
where getAndDisplayAnswer is defined by
static function getAndDisplayAnswer( ) : Process<Triv> { return
await( enter( nameBox ) && getValue( nameBox ) ) >= hello ;
}
static function hello( name : String ) { return
putText( reply, "Hello "+name ) ; }
The enter function returns a guard. Because HTML has no event specifically for the enter key being pressed, we use the keypress event (defined in module TCBHTML) combined, using the filter operator "&", with a filter function isEnterKey.
static function enter( el : Element ) : Guard<Event> {
function isEnterKey( ev : Event ) : Bool {
var kev = cast(ev, KeyboardEvent) ;
return kev.keyCode == 13 || kev.which == 13 ; }
return keypress( nameBox ) & isEnterKey ; }
The haxe code is here.