円のSymbolDefinition
を作成し、new SymbolItem(definition)
を使用してキャンバスに配置します。定義を作成するために使用された円オブジェクトは、デフォルトの用紙設定のため、デフォルト位置(0,0)、デフォルトの色、追加情報はありませんでした。PaperJS SymbolItemsヒット結果検索後にプロパティを失う
シンボルをインスタンス化して特定の位置に配置すると(たとえば(20,30)など)、名前やデータプロパティなどの補足情報も追加されます。
円をクリックして、project#hitResultAll
を使用してそのアイテムのコールバック検索を行った場合、ヒット結果に含まれるアイテムは上記の情報を保持しなくなります。実際には、定義を作成するために使用された元の円オブジェクトのようです。その位置は実際は(0,0)であり、名前はなく、dataプロパティは空です。
ここにはjsFiddle with an example(出力を表示するためのオープンな開発コンソール)があります。
リンクが機能しない場合は、ここでのサンプルコードは、次のとおりです。
var canvas = paper.createCanvas(100, 100);
document.getElementById("canvasDiv").appendChild(canvas);
paper.setup(canvas);
var circle = paper.Path.Circle([0,0], 10);
circle.fillColor = 'red';
var definition = new paper.SymbolDefinition(circle);
var tool = new paper.Tool();
tool.onMouseUp = function(event){
var hitResult = paper.project.hitTestAll(event.point);
if(hitResult.length > 0){
var result = hitResult[0];
var item = result.item;
console.log("Item name should be 'Bob', but is actually " + item.name);
// Output is: Item name should be 'Bob', but is actually null
}
};
var actualCircle = new paper.SymbolItem(definition);
actualCircle.position = [20,30];
actualCircle.name = 'Bob';
console.log("Symbol Item was created with the name " + actualCircle.name);
// Output is: Symbol Item was created with the name Bob
なぜこれが起こっている誰もが知っていて、どのように私はそれを解決して行くことができますか?