2009-05-13 11 views

Antwort

5

Die sparklines example auf der processing.js exhibition Seite verwendet ExplorerCanvas. Es scheint, als wäre es nur eine Drop-In-Lösung, keine extra Codierung notwendig.

+0

Danke, das war hilfreich. Es sieht so aus, als ob das Sparklines-Beispiel seine eigene onload-Methode hat, während andere Beispiele irgendeine Art von init.js verwenden, was nicht in IE + excanvas funktioniert. – meleyal

1

This page beschreibt, wie man processing.js + excanvas zusammen arbeiten.

Es beinhaltet im Grunde das Schreiben Ihrer eigenen Onload-Init-Methode, die IE verstehen kann.

+0

Leider funktioniert es, obwohl der VML-IE nicht scheint unterstütze einige wichtige Dinge. Wenn Sie eine Verarbeitungs-App portieren, erwarten Sie nicht viel mehr als die 2D-Linienzeichnung von IE :( – meleyal

+0

Google Group Diskussion von processing.js + excanvas - http://bit.ly/vQZjg – meleyal

7

Es kann getan werden! Es gibt jedoch einige Fehler. The page htxt links to ist in Ordnung, so weit wie es geht, aber bitte beachten Sie Folgendes:

1) Sowohl Skript und Canvas-Elemente müssen ID-Attribute haben. Die Init-Funktion verwendet diese Attribut-IDs, um ein bestimmtes Skript mit einer bestimmten Zeichenfläche zu verknüpfen. Ich fand die vereinfachte Init-Funktion leichter zu verstehen als die offizielle. Wenn Sie mehrere Leinwände auf einer Seite haben, sollten Sie die offizielle Seite meistern.

2) Wenn Sie Internet-Stil Farbbezeichnungen verwenden, wie # 23ff9a, aufgepasst! IE 8 will alle Großbuchstaben hexadezimale Farbnummern von Processing.js/Leinwand. Schreibe # 23FF9A! Dies ist, was die Dokumentation zeigt, also sollte es keine komplette Überraschung sein. Der Fehler ist eine Sache, die es verrückt macht herauszufinden. Meistens scheinen größere Zahlen (für hellere Farben) mit vielen f's betroffen zu sein. Weiß, #ffffff, ist OK, aber # ff00ff ist nicht OK. Firefox und Safari sind in dieser Hinsicht nicht zwischen Groß- und Kleinschreibung zu unterscheiden. Die documentation sagt, dass Sie eine alternative hexadezimale Schreibweise mit Alpha-Kanal (CC) verwenden können, die wie 0xCC006699 aussieht. Das hat nicht für mich funktioniert; vielleicht steht es auf der To-Do-Liste.

3) Die .equals() Methode für Strings fehlt! Andor Salga, einer der Seneca College Crew, der an Processing.js arbeitet, schrieb eine einfache boolesche stringsEqual (str1, str2) -Funktion, die Sie here sehen können. Dies wird tun, bis die Angelegenheit endgültig festgelegt ist.

4) Es ist nicht wahr, dass stroke() nicht mit excanvas.js funktioniert. Es tut. Wenn Ihr Processing.js-Code jedoch nur einen kleinen Syntaxfehler hat (ich kann nicht wirklich kategorisieren welche Arten, aber versuchen, equals() zu verwenden), wird Ihre Routine wahrscheinlich in IE8 stumm schlagen, während in Safari oder Firefox, Ihre Rechtecke verlieren ihre Umrisse, dh stroke() hört auf zu arbeiten. IE auf Vista und Safari auf dem Mac haben beide eine stärkere Syntaxprüfung als Safari oder Firefox unter Vista, die durch bestimmte Fehler blasen und eine fehlerhafte Grafik darstellen.

5) Text, der mit der Funktion text() aufgerufen wird, wird in Firefox gerendert (in einer unveränderbaren Schriftart von Firefox), aber, soweit ich das beurteilen kann, nicht in IE8 oder Safari. Die Glyph-Methode wird vorgeschlagen here. Der Code ist vorhanden, aber die Schriftarten sehen wie ein Problem aus. Inkscape sieht für mich ziemlich undurchdringlich aus. Soweit ich das beurteilen kann, ist viel wie bei alten Stift-Plotter-Fonts erforderlich - ein Vektorpfad mit Stift-Hoch- und Stift-Abwärts-Befehlen zwischen Knotenläufen. Es stellt sich heraus, dass FSF/GNU einige hat, die ohne Probleme in das richtige Format einmassiert werden können. Ich weiß nicht, wo das Format definiert ist, aber wahrscheinlich ist es irgendwo bei W3C vorbei. Der Ansatz mit realem Potenzial für darstellbare Schriftarten ist der IE/VML-Flügel von Cufon. Siehe How does it work? Ich möchte wirklich dieses letzte Glied in der Kette, aber ich könnte etwas Hilfe gebrauchen.

Processing.js ist ein Wal eines Projekts, das unsere Unterstützung verdient. Es hat ein enormes Potenzial. Ich würde Sie ermutigen, wenn Sie dazu in der Lage sind.