- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个现有的代码库,它创建了一个舞台,然后添加了一些图层,并在其中一个图层中绘制了 KineticJS 多边形。现在我需要在用户单击舞台外的元素时更新多边形的背景。
我已经设法获取了舞台细节,然后是我想要更改的确切多边形,并且还设法使用 .SetFill
方法更改了多边形的fill
。当我访问多边形的属性时,我看到填充属性设置正确。但是多边形的背景没有改变。
在 .SetFill
函数之后我们需要做些什么吗?或者,在创建 KineticJS 形状后更改/更新填充的正确方法是什么?我没有看到任何更新或重绘方法...
代码在 Clojurescript 中,所以我没有确切的 JS 代码,但这些是我的步骤:
polygon.setFill(color hexcode)
layer.add(多边形)
stage.add(层)
stage.draw()
最佳答案
这是一个使用 setAttrs
方法更新多边形背景的 kinetic.js 示例。更改后,使用batchDraw
方法更新图层。
let index = 0;
const colors = [
[0, 'yellow', 1, 'red'],
[0, 'red', 1, 'yellow']
];
document.querySelector('#container').addEventListener('click', function() {
if (index++ > 0) index = 0;
polygon.setAttrs({
fillLinearGradientColorStops: colors[index]
});
// force update of layer
layer.batchDraw();
});
const stage = new Kinetic.Stage({
container: 'container',
width: 615,
height: 145
});
const layer = new Kinetic.Layer();
const polygon = new Kinetic.RegularPolygon({
x: stage.width() / 2,
y: stage.height() / 2,
sides: 5,
radius: 70,
fillLinearGradientStartPoint: {
x: -50,
y: -50
},
fillLinearGradientEndPoint: {
x: 50,
y: 50
},
fillLinearGradientColorStops: colors[index],
stroke: 'black',
strokeWidth: 4,
draggable: true
});
layer.add(polygon);
stage.add(layer);
stage.draw();
<script src="https://cdnjs.cloudflare.com/ajax/libs/kineticjs/5.2.0/kinetic.min.js"></script>
<div id='container'></div>
<div>Click or drag polygon</div>
关于javascript - KineticJS:多边形上的 .SetFill 更新填充属性但不填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57718124/
我试图让我的输出看起来像这样: size time1 time2 ------------------------------- 10 4
我正在尝试在 Java 中传递一个变量,我需要帮助让它工作,我在下面包含了所有相关代码,我正在使用三个 .java 文件。以下是所有设置的方式以及我需要它的工作方式; 属性.java public e
要点如下:我有一个 getColor 方法和一个 setColor 方法。 getColor 将全局指针 color_obj 更新为当前对象。 setColor 使用该指针来更改对象的颜色。 问题是,
我正在尝试创建一个基于多个文件的程序来读取时间,但我无法以所需的格式显示时间。更具体地说,setfill 似乎给我带来了问题。 这是我在编译时收到的一条很长的错误消息的开头: error: no ma
我试图了解 JavaFX Canvas setStroke 方法的工作原理。它不会将像素的颜色设置为所需的值。不过 setFill 方法没有问题。 Canvas canvas = new Canvas
这个问题已经有答案了: Can we call a method at class level rather than in a method? (3 个回答) 已关闭 3 年前。 我正在启动 Jav
我正在编写一款受康威的“生命游戏”启发的游戏。 虽然我已经弄清楚了整体游戏逻辑(但没有编码),但我仍然无法在玩家的第一个回合结束后更改矩形对象的填充颜色。当我运行我的程序时,它会跳过对玩家一号颜色(C
基本上,我正在尝试通过 setfill 和 setw 创建一个固定表来显示存储在数组中的信息,但是设置宽度似乎没有起作用,我不确定为什么。这是我正在使用的代码: const int MAXWIDTH
我有两个并排的函数,它们循环不断地绘制两个 UIBezierPaths,问题是,它们每个都有不同的颜色,所以我经常需要重申 UIColor.blackColor().setFill() 和 UICol
根据我的理解,setw(n) 通过创建一个宽度为 n 个字符的行为。另一方面,setfill('x') 允许我们打印 n 个 x 个字符。 我想得到两排星星,像这样: ****************
所以我已经解决这个问题一段时间了,在成员的帮助下,我快完成了。我的最后一个问题在上面。 如有必要,我需要将 cout 时间格式化为 01:01:01,但是,我的输出是 1:1:1 问题出在这里: st
Win7 - 64 cygwin Netbeans 7.4 gcc (cygwin) 4.8.3 编译器调用 g++ -Wall -Wno-reorder -Wno-unused-value -c -
在 C++ 中: int main() { cout << setfill('#') << setw(10) << 5 << endl; return 0; } 输出: #######
我有一个现有的代码库,它创建了一个舞台,然后添加了一些图层,并在其中一个图层中绘制了 KineticJS 多边形。现在我需要在用户单击舞台外的元素时更新多边形的背景。 我已经设法获取了舞台细节,然后是
我有一些 Java 代码: public static String getSaveFilePath(String title2) { FileDialog fd = new FileDial
一个简单的 C++ 乘法表。 int main() { int i, j; i = j = 1; for (i; i < 10; i++) { for (j = 1
我不明白为什么这段代码在 drawRect: 中有效: UIBezierPath *buildingFloor = [[UIBezierPath alloc] init]; // draw the s
我很好奇 std::setw 和 std::setfill 的真正返回类型 正如我们所见,它们返回值的数据类型是“未定义”。但是,是否可以声明一个没有返回类型的函数? 在我必须开发一种方法为“cout
所以我知道有很多次我想重置我使用 iomanip 所做的格式更改。我创建了一个类,您可以使用它来获取 ostream 对象的格式,例如用于写入/读取文件的 std::cout 或 fstream 对象
我正在尝试使用 setw 和 setfill 获得以下输出: OPTIONS: The usual operators +, -, *, / and % (remainder)
我是一名优秀的程序员,十分优秀!