Files
2015-09-01 19:05:48 -04:00

230 lines
8.7 KiB
Groff

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>/* @pjs globalKeyEvents */ directive | reference | Processing.js</title>
<link rel="stylesheet" href="../css/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="../css/syntax.css" type="text/css" />
<link rel="stylesheet" href="../css/processing-js.css" type="text/css" />
<script src="../js/processing.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.tweet.min.js" type="text/javascript"></script>
<script src="../js/tabselector.js" type="text/javascript"></script>
<script src="http://cdn.webglstats.com/stat.js" defer="defer" async="async"></script>
<script type="text/javascript">
// Only do tracking on the actual site
if (document.location.host === "processingjs.org") {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-8565070-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
}());
}
</script>
</head>
<body>
<div class="container">
<div class="header">
<a href="http://processingjs.org/"><img src="../images/header.png" width="177" height="42"></a>
</div>
<span class="tagline">a port of the Processing Visualization Language</span>
<div class="navbar">
<canvas width="940px" height="78px" data-processing-sources="/sketches/bannerSketch.pde"></canvas>
<ul>
<li><a href="http://processingjs.org/"><span>home</span></a></li>
<li><a href="http://processingjs.org/download/"><span>download</span></a></li>
<li><a href="index.html"><span>reference</span></a></li>
<li><a href="http://processingjs.org/exhibition/"><span>exhibition</span></a></li>
<li><a href="http://processingjs.org/learning/"><span>learning</span></a></li>
<li><a href="http://processingjs.org/articles/"><span>articles</span></a></li>
<li><a href="http://processingjs.org/community/"><span>community</span></a></li>
<li><a href="http://processingjs.org/blog/"><span>blog</span></a></li>
</ul>
<a class="viewsource" href="http://processingjs.org/sketches/bannerSketch.pde">view source</a>
</div>
<div class="page row">
<div class="span11">
<table cellpadding="0" cellspacing="0" border="0" class="ref-item">
<tr class="name-row">
<th scope="row">Name</th>
<td><h3>/* @pjs globalKeyEvents */ directive</h3></td>
</tr>
<tr class="">
<th scope="row">Examples</th>
<td><div class="example"><pre><u>bypass.pde:</u>
/* @pjs globalKeyEvents="true"; */
<u>sketch.pde:</u>
int linepos;
void setup()
{
size(200,200);
noLoop();
linepos = height/2;
}
void draw()
{
line(0,linepos,width,linepos);
}
interface Javascript {}
Javascript javascript=null;
void bindJavascript(Javascript js) { javascript=js; }
// due to every browser implementing key events differently,
// proper keyhandling requires knowing whether this
// sketch is running under Processing or under Processing.js
void keyPressed()
{
if( (javascript==null && key=='+' && keyCode==61) ||
(javascript!=null && (key==187 || key==119))) {
// if someone types a "+", draw the line lower
linepos++;
redraw();
}
else if( (javascript==null && key=='-' && keyCode==45)
|| (javascript!=null && (key==189 || key==115))) {
// if someone types a "-", draw the line higher
linepos--;
redraw();
}
}
<u>sketch.html:</u>
&lt;html&gt;
&lt;head&gt;
&lt;script type="text/javascript" src="processing.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
// bind javascript to all Processing instances
function bindJavascript() {
canvaslist = document.getElementsByTagName("canvas");
for(c=0; c&lt;canvaslist.length; c++) {
pjs = Processing.getInstanceById(canvaslist[c]);
try { pjs.bindJavascript(this); }
catch(e) { setTimeout(bindJavascript, 250); }
}
}
bindJavascript();
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;canvas id="first" data-processing-sources="sketch.pde"&gt;&lt;/canvas&gt;
&lt;canvas id="second" data-processing-sources="bypass.pde sketch.pde"&gt;&lt;/canvas&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></div></td>
</tr>
<tr class="">
<th scope="row">Description</th>
<td><p>By default sketches loaded using Processing.js will only accept keyboard events when they have focus (i.e. after having tab-navigated to them,
or having clicked on them). Using this directive will allow a sketch to receive any keyboard event sent to the page, regardless of whether the canvas
it is loaded in has focus or not. Using this directive means that people who visit your page will not need to explicitly click on your sketch to
interact with it, but it also means that if you have multiple sketches on a page, any sketch that uses this directive will receive input that may not
have been intended for it.</p>
</td>
</tr>
<tr class="">
<th scope="row">Syntax</th>
<td>
<pre>
<kbd> /* @pjs globalKeyEvents="true"; */</kbd>
</td>
</tr>
<tr class="">
<th scope="row">Parameters</th>
<td><table cellpadding="0" cellspacing="0" border="0">
<tr class="">
<th scope="row">globalKeyEvents</th>
<td>"true" (implicitly false for any other value)</td>
</tr>
</table></td>
</tr>
<tr class="">
<th scope="row">Usage</th>
<td>Web & Application, Processing.js compatibility</td>
</tr>
<tr class="">
<th scope="row">Related</th>
<td>
<a href="http://processingjs.org/reference/pjs&#32;directive">@pjs directives</a>
</td>
</tr>
</table>
<div class="cclicense">
<p>This reference is licensed under the CC BY-NC-SA 2.0 license:</p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/">
<img alt="Creative Commons License" border="0" src="../images/somerights20.gif" />
</a>
</div>
</div>
<div class="sidebar span4">
<h3><a href="http://processingjs.org/download/">Downloads</a></h3>
<ul>
<li><a href="http://processingjs.org/download/">Download the latest version of Processing.js!</a></li>
</ul>
<h3><a href="http://processingjs.org/articles/">Articles</a></h3>
<ul>
<li><a href="http://processingjs.org/articles/jsQuickStart.html">Quick Start - JavaScript Developer</a></li>
<li><a href="http://processingjs.org/articles/p5QuickStart.html">Quick Start - Processing Developer</a></li>
<li><a href="http://processingjs.org/articles/RenderingModes.html">Rendering Modes</a></li>
<li><a href="http://processingjs.org/articles/PomaxGuide.html">Pomax's Guide to processing-js</a></li>
</ul>
<h3><a>Web IDEs</a></h3>
<ul>
<li><a href="http://sketchpad.cc">Sketchpad.cc</a></li>
<li><a href="http://processingjs.org/tools/processing-helper.html">Processing.js Helper</a></li>
<li><a href="http://www.openprocessing.org">OpenProcessing.org</a></li>
</ul>
<h3><a href="http://processingjs.org/community/">Community</a></h3>
<ul>
<li><a href="irc://irc.mozilla.org/processing.js">IRC Channel</a></li>
<li><a href="http://processing-js.lighthouseapp.com/">Bug Tracker</a></li>
<li><a href="http://github.com/processing-js/processing-js/">Github Repository</a></li>
<li><a href="http://groups.google.com/group/processingjs">Google Group</a></li>
<li><a href="http://zenit.senecac.on.ca/wiki/index.php/">Open Source @ Seneca</a></li>
</ul>
<h3><a href="http://twitter.com/processingjs">Twitter Feed</a></h3>
<div class="twitter"></div>
</div>
</div>
<div class="footer">
Processing is an open visualization language developed by
<a href="http://benfry.com/">Ben Fry</a> &amp; <a href="http://reas.com/">Casey Reas</a>,
and originally ported to Javascript by
<a href="http://ejohn.org/blog/processingjs/">John Resig</a>.
Processing.js is maintained by the Processing.js team.
</div>
</div>
<a href="http://github.com/processing-js/processing-js/">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="../images/forkme-right-orange.png" alt="Fork me on GitHub">
</a>
</body>
</html>