Convert the random and touch modules to the new format.
This commit is contained in:
parent
f70fdaa300
commit
ccf9917f2e
2 changed files with 27 additions and 25 deletions
|
@ -1,20 +1,21 @@
|
||||||
|
|
||||||
/*
|
Elm.Native.Random = function(elm) {
|
||||||
import Signal
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
elm.Native = elm.Native || {};
|
||||||
|
if (elm.Native.Random) return elm.Native.Random;
|
||||||
|
|
||||||
function inRange(min, max) {
|
var Signal = Elm.Signal(elm);
|
||||||
return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomize(min, max, signal) {
|
function range(min, max, signal) {
|
||||||
function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
|
function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
|
||||||
return Elm.Signal.lift(f)(signal);
|
return A2( Signal.lift, f, signal );
|
||||||
}
|
}
|
||||||
|
|
||||||
Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) };
|
function float(signal) {
|
||||||
|
function f(x) { return Math.random() }
|
||||||
|
return A2( Signal.lift, f, signal );
|
||||||
|
}
|
||||||
|
|
||||||
}());
|
return elm.Native.Random = { range: F3(randomize), float: float };
|
||||||
|
|
||||||
|
};
|
|
@ -1,11 +1,13 @@
|
||||||
/*
|
|
||||||
import Signal
|
|
||||||
import JavaScript
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function() {
|
Elm.Native.Touch = function(elm) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
elm.Native = elm.Native || {};
|
||||||
|
if (elm.Native.Touch) return elm.Native.Touch;
|
||||||
|
|
||||||
|
var Signal = Elm.Signal(elm);
|
||||||
|
var JS = Elm.JavaScript(elm);
|
||||||
|
|
||||||
function Dict() {
|
function Dict() {
|
||||||
this.keys = [];
|
this.keys = [];
|
||||||
this.values = [];
|
this.values = [];
|
||||||
|
@ -28,7 +30,7 @@ import JavaScript
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var root = Elm.Signal.constant([]),
|
var root = Signal.constant([]),
|
||||||
tapTime = 500,
|
tapTime = 500,
|
||||||
hasTap = false,
|
hasTap = false,
|
||||||
tap = {_:{},x:0,y:0},
|
tap = {_:{},x:0,y:0},
|
||||||
|
@ -76,24 +78,23 @@ import JavaScript
|
||||||
listen("touchleave", end);
|
listen("touchleave", end);
|
||||||
|
|
||||||
function dependency(f) {
|
function dependency(f) {
|
||||||
var sig = Elm.Signal.lift(f)(root);
|
var sig = A2( Signal.lift, f, root );
|
||||||
root.defaultNumberOfKids += 1;
|
root.defaultNumberOfKids += 1;
|
||||||
sig.defaultNumberOfKids = 0;
|
sig.defaultNumberOfKids = 0;
|
||||||
return sig;
|
return sig;
|
||||||
}
|
}
|
||||||
|
|
||||||
var touches = dependency(function(ts) {
|
var touches = dependency(JS.fromList);
|
||||||
return Elm.JavaScript.castJSArrayToList(ts);
|
|
||||||
});
|
|
||||||
|
|
||||||
var taps = function() {
|
var taps = function() {
|
||||||
var sig = dependency(function(_) { return tap; });
|
var sig = dependency(function(_) { return tap; });
|
||||||
sig.defaultNumberOfKids = 1;
|
sig.defaultNumberOfKids = 1;
|
||||||
function pred(_) { var b = hasTap; hasTap = false; return b; }
|
function pred(_) { var b = hasTap; hasTap = false; return b; }
|
||||||
var sig2 = Elm.Signal.keepIf(pred)({_:{},x:0,y:0})(sig);
|
var sig2 = A3( Signal.keepIf, pred, {_:{},x:0,y:0}, sig);
|
||||||
sig2.defaultNumberOfKids = 0;
|
sig2.defaultNumberOfKids = 0;
|
||||||
return sig2;
|
return sig2;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
Elm.Native.Touch = { touches: touches, taps: taps };
|
return elm.Native.Touch = { touches: touches, taps: taps };
|
||||||
}());
|
|
||||||
|
};
|
Loading…
Reference in a new issue