konami.html revision 011173392d3a1a59092095d5a24857134cb16f93
0N/A<!doctype html>
0N/A<html>
0N/A<head>
0N/A <title>Test Page</title>
0N/A <style type="text/css">
0N/A div {
0N/A margin: 1em 0;
0N/A }
0N/A </style>
0N/A</head>
0N/A<body class="yui-skin-sam">
0N/A<input type="text" value="" id="k"><label for="k">&lt;-- up,up,dn,dn,l,r,l,r,b,a</label>
0N/A<ul id="output"></ul>
0N/A
0N/A<script src="/build/yui/yui.js"></script>
0N/A<!--
0N/A<script src="http://yui.yahooapis.com/3.2.0/build/yui/yui-min.js"></script>
0N/A<script src="/build/event/event-synthetic.js"></script>
0N/A-->
0N/A<script>
0N/AYUI({
0N/A useBrowserConsole: false,
0N/A filter: 'raw'
0N/A}).use('event-synthetic', function (Y) {
0N/A
0N/AY.on('yui:log', function (e) {
0N/A Y.one("#output").append("<li>" + e.msg + "</li>");
0N/A});
0N/A
Y.Event.define('konami', {
on: function (node, sub, ce) {
var guid = Y.guid();
node.on(guid + '|keydown', function (e) {
Y.log(e.keyCode);
if (e.keyCode === sub.keys[sub.progress]) {
if (++sub.progress === sub.keys.length) {
ce.fire();
ce.detach(sub.fn, sub.context);
}
} else {
sub.progress = 0;
}
});
Y.mix(sub,{
progress : 0,
keys : [38,38,40,40,37,39,37,39,66,65],
keys : [38,38,40,40,37,39,37,39,66,65],
_evtGuid : guid
});
},
detach: function (node, sub, ce) {
node.detach(sub._evtGuid + '|*');
}
});
Y.one('#k').on('konami', function (e) {
Y.one('#output').append('<li>UNICORNS!</li>');
});
});
</script>
</body>
</html>