我尝试在KineticJS中创建方法。我添加了这个代码:从一个对象引用原型方法到另一个JavaScript(KineticJS)
Kinetic.Circle.prototype.test = function(){
alert(1);
}
它的工作,但我想添加此方法不仅适用于圆,但层和更多。所以我尝试使用此代码
Kinetic.Node.prototype.test = function(){
alert(1);
}
,我有错误在我的控制台:遗漏的类型错误:对象#有没有方法“测试”。
我试图在谷歌搜索一些解决方案,但我找不到它。
@EDITED 对于BERGI :) 我有其中层[LAYER_NAME] .object我创建Kinetic.Layer对象像下面的代码层阵列:
layers.names[name]={
id:variable,
object:new Kinetic.Layer()
};
stage.add(layers.names[name].object);
是,阶段之前创建在此代码:
var stage=new Kinetic.Stage({
container:'canvas',
draggable:true,
height:document.documentElement.clientHeight,
width:document.documentElement.clientWidth
});
之后我加入点到我的对象数组:
var point=new Kinetic.Circle({
fill:'#000',
radius:3,
x:parent.children('input[name="x"]').val(),
y:parent.children('input[name="y"]').val()
});
var layer_name=$('input[name="layer"]').val();
layers.names[layer_name].object.add(point).draw();
而在这等一下我特林运行我的方法:
var layer_name=$('input[name="layer"]').val();
var point=layers.names[layer_name].object.children[$('input[name="element_index"]').val()];
point.test();
但在控制台我只有我之前粘贴错误。
还请包括你如何尝试调用它。 – Bergi 2014-09-03 19:55:39
@Bergi - 我为你编辑过文章,希望它能帮助你尝试帮助我。最好的祝福。 – user242302 2014-09-03 20:06:05