gpt4 book ai didi

javascript - 如何覆盖/替换现有对象

转载 作者:行者123 更新时间:2023-11-30 20:15:27 25 4
gpt4 key购买 nike

由于需要,我给出了关于onmouseClick的所有代码:

首先,我将每个新层中的 svg 导入到 Canvas 中:

//imports svg from external js script
var svgimportSVG = function (elem,x) {

// creates a new layer for each imported svg
var layer = new Layer();
layer.name = "Layer" +x;
layer.activate();

// import here
rect = paper.project.importSVG(elem,function(item){
console.log("Elem: " + elem);
});

然后我将“框架”构建为边界路径:

// build a frame
rect.data.showBounds = new Path.Rectangle({
rectangle: rect.bounds,
strokeColor: 'aqua'
});

return rect;
}

我想要只有被点击的元素或者导入最少的元素有可见边框的效果:

tool.onMouseDown = function(e) {
var hitResult = project.hitTest(e.point, hitOptions);
if(hitResult){
var SVGGroup = searchSVGGroup(hitResult.item,"svg");
var SVGLayer = searchSVGGroup(hitResult.item,"layer");

// Layer of clicked object shall be in front or last element in project.layers

console.log(SVGLayer.name);
var IndexOfLayer = project.layers.indexOf(SVGLayer);
project.layers.splice(IndexOfLayer,1);
project.layers.push(SVGLayer);
var LayersLengthnew = project.layers.length;

//Clicked object can be influenced ouside paperscope
window.globals.extExportOnMouseClick(project.layers[LayersLengthnew -1].name);

SVGGroup.data.showBounds = new Path.Rectangle({
rectangle: rect.bounds,
strokeColor: 'aqua'
});

// sent as old clicked object
svgSetRemoveFrameofGroup(SVGGroup);
}
else{...}
}

//create an empty object that holds the last clicked object
var svgFramedGroup = {};

var svgSetRemoveFrameofGroup = function(rect){

var rectold = {};
console.log("rect name: "+ rect.name); // gives correct name
if(svgFramedGroup.data){
rectold = svgFramedGroup;
console.log("rect old name: "+ rectold.name); // gives correct name
}

svgFramedGroup = rect;

if(!svg_isEmpty(rectold)){
//... showBounds should go to Garbage collector
rectold = rectold.data.showBounds.remove();
}

return rectold;
}

但是进一步点击的元素仍然有它的边界,这是一条路径!?

最佳答案

我回答你here对于同一个问题。

唯一不同的是,在这里您要求在单击元素时显示“框架”,而在此处您要求在单击元素时隐藏它(我在示例中就是这样做的) .

但是无论如何你应该能够得到逻辑。

关于javascript - 如何覆盖/替换现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com