私はまだ JS を学んでおり、KineticJS を使用してアプリを作成しようとしていますが、オブジェクト指向の方法で維持しています。
だから私は次のようなものを持っています:
/* ClassA Constructor */
var ClassA=function(id, x, y, name, layer){
this.id=id;
this.x=x;
this.y=y;
this.name=name;
this.layer=layer;
this.object_group=new Kinetic.Group({
x: x,
y: y,
id: id,
draggable: true,
name: "A_object_group"
});
var object_polygon=new Kinetic.Polygon({
points: [0,0,1,1],
fill: '#ffffff',
stroke: 'black',
strokeWidth: 1,
opacity: 0.5,
name: "A_object_polygon"
});
this.object_group.methodA=function(){
//Method A goes here
};
this.object_group.add(object_polygon);
this.layer.add(this.object_group);
return(this.object_group);
}
次に、KineticJS メソッド toJSON() を使用してステージを JSON に変換し、後で Kinetic.Node.create() メソッドを使用して JSON から再度読み込みます。
問題は、オブジェクトをロードした後、「ClassA」クラスで定義された「MethodA」を認識しないことです。
これが最善のアプローチであるかどうかはわかりません。Kinetic.Group 部分だけでなく、オブジェクト全体を JSON にシリアル化する必要があるかもしれません。また、メソッドをシリアル化することも有効なアプローチではないように思われるため、質問: JSON から KineticJS オブジェクトをロードし、それらを引き続きクラスに属させ、そのクラスのメソッドへのアクセスを許可するにはどうすればよいですか?