Vererbung zwischen Processing.js und anderen Bibliotheken nicht alle gemustert draußen noch. Es gibt eine Problemumgehung.
Das erste, was ist zu VerletParticle2D durch seinen vollständigen Namespace zu verweisen:
class Particle extends toxi.physics2d.VerletParticle2D
Zweiter Teil ist dieser Konstruktor zu toxiclibs.js hinzufügen für VerletParticle2D (zum Zeitpunkt der Abfassung dieses, dh Zeile # 9941 von build/toxiclibs.js):
if(!(this instanceof VerletParticle2D)){
return new VerletParticle2D(x,y,w);
}
der dritte Teil ist diese 2 Zeilen überall hinzuzufügen, nachdem Sie Ihre Klasse definiert haben. Leider werden diese 2 Zeilen nicht mit der Verarbeitung IDE schön spielen:
Particle.prototype = new toxi.physics2d.VerletParticle2D();
Particle.prototype.constructor = Particle;
Sie können diese drei Muster auf jede andere Klasse gelten auch sie zu verlängern. Auch Processing 2.0 Alpha 5 veröffentlicht eine neue Funktion, die eine .js-Datei neben einem begleitenden .jar ziehen wird. Wenn Sie also toxiclibs.js neben toxiclibscore.jar platzieren und umbenennen, wird es mit Ihrer Skizze exportiert. Dadurch wird es einfacher, eine Version zu haben, an der Sie Änderungen vornehmen, um Klassen zu erweitern.
ich die Web-exportierte Skizze hochgeladen haben, mit den modifizierten toxiclibscore.js Datei hier: http://haptic-data.com/toxiclibsjs/misc/ToxiclibsjsExtend.zip
viel Glück!
wow vielen dank! – Stpn
Hallo ich habe diesen Ansatz versucht und es funktioniert für die Erweiterung anderer Klassen, ich frage mich aber, wenn Sie den besten Weg für das Hinzufügen der erweiterten Klassen Physik empfehlen können? Es sieht aus wie physics.addParticle (extendedParticle); wird nicht funktionieren. Oder ich mache etwas falsch. – Stpn