我正在使用画架来构建某种结构。 在该结构内部,有许多容器和形状。
我遇到了一个问题,当用户用鼠标悬停它时,我需要更改某个元素的颜色。我设法做到了但是,在绘制颜色并返回其原始颜色之前会有相当长的延迟,因为舞台会自行重绘。
我看到我可以为此目的使用缓存,所以我按照这样的文档中的示例: myShape.cache(150,150,100,100,1);然而,没有发生,我没有看到形状。 我不得不说,形状位于一个容器内,该容器被添加到舞台上。
以下是相关代码:
在这里输入代码
var g = curShape.graphics.clone().clear();
g.beginFill("#2aa4eb");
g.drawRoundRect(0, 0, curShape.width, curShape.height, 1.5);
//g.drawRect(0, 0, curShape.width + 2, curShape.height + 2);
g.endFill();
g.endStroke();
var newShape= new createjs.Shape(g);
newShape.cache(150, 150, 100, 100, 2);
任何帮助将不胜感激
答案 0 :(得分:0)
你在x:150和y:150缓存,但是你的形状是0,0。如果你的形状小于150x150,那么它将无法缓存。将您的缓存更改为0,0,它应该没问题。
此外,您没有向drawRoundRect调用提供第5个参数(角半径),这将使其失败。这是一个包含代码修改版本的快速示例。
var stage = new createjs.Stage("canvas");
var g = new createjs.Graphics();
g.beginFill("#2aa4eb");
g.drawRoundRect(0, 0, 300, 200, 5);
var newShape = new createjs.Shape(g);
//newShape.cache(150, 150, 100, 100, 2);
newShape.cache(0, 0, 100, 100, 2);
stage.addChild(newShape);
stage.update();