正确使用 inject 创建 js

Createjs using inject correctly

本文关键字:创建 js inject      更新时间:2023-09-26

所以我开始使用createjs,在绘制了一些立方体之后,我想改变立方体的颜色,这让我感到惊讶,因为这并不像我那么容易,尽管它可以与raphaeljs进行比较,因为它只是

object.attr ("stroke", "#0000FF");

或者类似的东西,现在在createjs中有两种方法可以更改对象的颜色,第一种方法是完全重绘形状设置,再次设置每个贡品,这在我看来很可怕,因为我需要将x,y,宽度,高度和其他可能具有不同形状的东西保存到某些数据结构中。另一种方法是使用称为 inject 的东西,从我看到的例子来看,它是这样的(链接(

var shape = new createjs.Shape().set({x:50,y:50});
var g = shape.graphics;
var fillCommand = g.beginFill("#ff0000").command;
// Note that this is equivalent to:
g.beginFill("#ff0000");
var fillCommand = g.command; // The last command
var shapeCommand = g.drawRect(0,0,100,100).command;
// Then later:
fillCommand.style = "#0000ff";
shapeCommand.w = 200;

为什么它确实解决了只需要更改我想更改的内容的问题也非常复杂,我找不到任何关于实际变量(在本例中为 .style.w(的文档对于其中一些注入命令。所以有人有使用这种注入风格的经验吗?

查看文档中的图形方法(如 Graphics.Fill http://www.createjs.com/Docs/EaselJS/classes/Graphics.Fill.html(。我们绝对想扩展文档,但它至少应该让你了解 API 的期望。

我不认为它太复杂,只是记住它是一个通用的绘图 API,并且没有单个笔触或填充的具体形状对象的概念。这使得它更加强大,您可以做的不仅仅是定义彩色多边形。

您包含的示例过于说明。要创建具有自定义描边的简单矩形,可以执行以下操作:

var stroke = shape.graphics.beginStroke("#000").command; // Save this to modify it later
shape.graphics.beginFill("#f00").drawRect(0,0,100,100);
stage.addChild(shape);
//Then
stroke.style = "#00f";

下面是一个快速示例:http://jsfiddle.net/lannymcnie/L2tm9xdm/

或者你可以做一些更复杂的事情:http://jsfiddle.net/lannymcnie/L2tm9xdm/1/