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

201 lines
9.0 KiB
Groff

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>/* @pjs */ directives | 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 */ directives</h3></td>
</tr>
<tr class="">
<th scope="row">Examples</th>
<td><div class="example"><pre>A single directive:<br />
/* @pjs preload="image1.jpg"; */<br />
Multiple directives on a single line: <br />
/* @pjs preload="image1.jpg,image2.jpg"; crisp="true"; */ <br />
Multiple directives over multiple lines:<br />
/*
@pjs preload="image1.jpg,image2.jpg";
crisp="true";
*/
<strong>Note: You can only have one directives block in a sketch, which should
be the first line of your sketch. If you wish to use multiple directives,
see the examples.</strong>
</pre></div></td>
</tr>
<tr class="">
<th scope="row">Description</th>
<td><p>As Processing.js offers a tighter integration between Processing sketches and webpages than the traditional applet approach, certain
functions that are normally regulated by Processing are left to be handled by the browser. This approach means that certain behaviour that is
expected from a sketch may not work without additional "outside the sketch" instructions, for which /* @pjs */ directives must be used. There
are two types of directives: directives that tell Processing.js to buffer data that must be available to a sketch when it is run (<a href="preload.1">preload</a>,
<a href="font.1">font</a>), and directives that tell Processing.js how to behave once the sketch is running (<a href="crisp">crisp</a>,
<a href="globalKeyEvents.1">globalKeyEvents</a>, <a href="pauseOnBlur.1">pauseOnBlur</a>).</p>
<p>These directives are in block comment syntax so that they do not interfere with a sketch when it runs as native Processing, but if you do not wish
to pollute your source with @pjs directives, you can also store your directives in a separate file, and only call this file on your page:</p>
<p><u>directives.pde:</u></p>
<p>/* @pjs crisp="true"; pauseOnBlur="true"; */</p>
<p><u>html:</u></p>
<p>&lt;canvas id="sketchcanvas" data-processing-sources="directives.pde mysketch.pde"&gt;&lt;/canvas&gt;</p>
</td>
</tr>
<tr class="">
<th scope="row">Syntax</th>
<td>
<pre>
<kbd>
/* @pjs directive="value"; */ </kbd></pre><br />
Multiple directives can be on one line or on multiple lines.
Both ways require semi-colons between directives.
<pre><kbd>
/* @pjs directive_1="value"; directive_2="value"; ... */</kbd>
<kbd>
/* @pjs directive_1="value";
directive_2="value";
...
*/</kbd></pre><br />
In Javascript-only Processing.js code you cannot use these directives. You must change the options directly on the Processing.Sketch object. See the examples below for changing these properties on variables bound to a Processing or Processing.Sketch instance:
<pre><kbd>
var mySketch = new Processing.Sketch(
function(p) { p.draw = function(){...}; ... }
);
mySketch.options.crispLines = true;
var myProcessing = new Processing("myCanvas", mySketch);
var pi = new Processing("myCanvas");
pi.externals.sketch.options.crispLines = true;
</kbd></pre><br />
NOTE: all @pjs directives, including the "@pjs" instruction, are case-sensitive.
</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="font.1">font</a>
<br /><a href="crisp">crisp</a>
<br /><a href="pauseOnBlur.1">pauseOnBlur</a>
<br /><a href="globalKeyEvents.1">globalKeyEvents</a>
<br /><a href="preload.1">preload</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>