use*_*536 3 javascript arrays kineticjs
我有一个 kinecticjs 图像对象,我根据某些参数应用过滤器,但是当需要重新绘制时,它将再次应用过滤器,这意味着它将复制过滤器。
我知道我应该进行某种检查,但它会将函数应用于数组。
//create object
var image = new Kinetic.Image({
image: alreadyLoadedImageObject
});
function addFilter(shouldAdd){
if(shouldAdd){
var filters = image.filters() || [];
filters.push(Kinetic.Filters.RGB);
image.filters(filters);
}
}
layer.add(image);
stage.add(layer);
addFilter(true);
stage.draw();
setTimeout(function(){
addFilter(true);
stage.draw();
},500);
Run Code Online (Sandbox Code Playgroud)
这应该大致显示我当前正在做什么,在这种情况下,一旦超时,就会将 2Kinetic.Filters.RGB应用于图像对象。
我认为这是一个一般的javascript问题,而不仅仅是kineticjs,因为根源是我需要以某种方式知道Kinetic.Filters.RGB过滤器数组中已经有一个函数。
所以有两个问题,是否有办法检查Array.indexOf数组中是否已存在函数名称之类的内容?或者 KineticJS 中是否已经有某种我没有见过的预构建方法?
x = function(){};
y = function(){};
a = [];
a.push(x);
a.indexOf(x); //0
a.indexOf(y); //-1
Run Code Online (Sandbox Code Playgroud)
所以你可以尝试:
if(filters.indexOf(Kinetic.Filters.RGB) !== -1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2133 次 |
| 最近记录: |