カスタムプロパティと関数を使用してカスタムRaphael要素を作成したいと考えています。このオブジェクトには、あらかじめ定義されたRaphaelオブジェクトも含まれている必要があります。たとえば、ノードクラスがあります。ノードクラスには、テキストとその他の要素が含まれる円が含まれています。問題は、この新しいオブジェクトをセットに追加することです。 Raphael以外のオブジェクトはセットに追加できないため、これらの要求が必要です。その結果、Raphaelオブジェクトを含むカスタムオブジェクトは使用できません。コードは次のようになります。Raphael.js:新しいカスタム要素を追加する
var Node = function (paper) {
// Coordinates & Dimensions
this.x = 0,
this.y = 0,
this.radius = 0,
this.draw = function() {
this.entireSet = paper.set();
var circle = paper.circle(this.x, this.y, this.radius);
this.circleObj = circle;
this.entireSet.push(circle);
var text = paper.text(this.x, this.y, this.text);
this.entireSet.push(text);
}
// other functions
}
var NodeList = function(paper){
this.nodes = paper.set(),
this.populateList = function(){
// in order to add a node to the set
// the object must be of type Raphael object
// otherwise the set will have no elements
this.nodes.push(// new node)
}
this.nextNode = function(){
// ...
}
this.previousNode = function(){
// ...
}
}
あなたはこのような何かを探していますか? http://raphaeljs.com/reference.html#Raphael.fn。 .arrow()などの関数の結果として複雑なオブジェクトを作成するカスタム関数を追加する方法について説明します。 – cabreracanal
私が知る限り、Raphael.fnはRaphaelオブジェクトを作成しません。したがって、作成されたオブジェクトをRaphaelセットに追加することはできません。私のクラスは次のようになります。 VARノード=機能(){// 座標および寸法 this.x = 0、 this.y = 0、 this.radius = 0、 this.stroke = 1、 // ... これを返す。 } – Claudia
作成した.fnに添付する機能です。あなたがあなたの質問を理解していれば、テキストを内部に持つ円を作成したいと思うなら、私はこのようにします。この例では、https://gist.github.com/1043360のようにします。あなたのオブジェクトがパスの場合は、それをセットに追加できます。さらに、テキストとサークルを別々に作成してセットに入れることもできます。また、カスタム属性を設定することもできます。 – cabreracanal