Die Dokumentation für GetBoundingBox() in Dojo sagt:dojox.gfx Begrenzungsrahmen für Text und Gruppenknoten
Gibt einen Begrenzungsrahmen einer Form. Eine Textform ist ein punktbasiertes Objekt, so dass keine Begrenzungsbox definiert ist.
Ich verstehe es nicht. Jede sinnvolle Implementierung von Vektorgrafiken für das Web enthält eine Begrenzungsbox für Textobjekte (raphaelJS und jQuery SVG)! Was bedeutet "ein punktbasiertes Objekt"?
fand ich keinen Hinweis für eine Begrenzungs für Gruppenobjekt Box, aber bei der Verwendung der neuesten Dojo Version, getBoundingbox
kehrt null
für Gruppen
ich leicht Box selbst für Rechteck Sie begrenzen können, aber die einzige wirklich problematisch Formen, für die ich einen Begrenzungsrahmen brauche, sind die Gruppe und der Text.
I ended Hotpatching Dojo wie:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
Welche wird natürlich Arbeit nur für die SVG-Ausgabe Frontend.
Aber ich frage mich, fehle ich etwas? Gibt es einen besseren Weg, das zu tun?
Nun, ich bin ein Noob ... aber in SVG Text ist nicht nur ein Punkt-basierte Objekt .. http://srufaculty.sru.edu/david.dailey/svg/getCTM.svg oder ich din ' Ich verstehe das Problem nicht. – Alex
dojox.gfx ist nicht nur SVG. Es ist eine Normalisierung der browserübergreifenden gfx-Engines, die verfügbar sind (svg || vml || silverlight || usw.) ... Wenn ein Renderer nicht "etwas tun kann", hat er es wahrscheinlich nicht in die "normalisierte" API geschafft ist dojox.gfx (eine andere Sache, die mir persönlich in den Sinn kommt, ist Mehrfachstopps bei Farbverläufen, die afaik VML nicht beherrscht, aber SVG funktioniert ganz gut) – dante