KineticJS 中的动画
Animation in KineticJS
我在图层中添加了一个圆圈。在图层的顶部,我添加了一个文本。当鼠标悬停在圆上时,我想 运行 播放动画,但是当鼠标到达文本时,会调用 mouseout
回调函数。我怎样才能防止这种情况发生?
var circle = new Kinetic.Circle({
x: j * xcenterstep + xshift,
y: i * ycenterstep + yshift,
radius: t_radius,
fill: t_fill,
stroke: t_stroke,
strokeWidth: t_stroke_w,
strokeOpacity: 0.1,
opacity: 0.3 + t_number * 0.05,
});
if (t_number) {
circle.tw;
circle.on("mouseover", function () {
this.tw = new Kinetic.Tween({
node: this,
duration: 0.3,
strokeWidth: 6
});
this.tw.play();
});
circle.on("mouseout", function () {
this.tw.reverse();
});
}
// Adding the text
var radiusText = new Kinetic.Text({
x : circle.getX(),
y : circle.getY(),
text : t_number,
fontSize : radius,
fill : '#fff',
fontStyle: 'bold',
align : 'center'
});
radiusText.setOffset({
x : radiusText.getWidth()/2,
y : radiusText.getHeight()/2
});
bgLayer.add(circle);
bgLayer.add(radiusText);
检查您的代码,您缺少 }
来关闭 if (t_number) {
。我不确定它是否应该包含 mouseover
和 mouseout
事件,但它可能导致您的代码响应与您预期的不同。
我觉得用mouseenter
事件比较好。您可以禁用文本事件以防止 mouseout
圈出。
radiusText.listening(false)
我在图层中添加了一个圆圈。在图层的顶部,我添加了一个文本。当鼠标悬停在圆上时,我想 运行 播放动画,但是当鼠标到达文本时,会调用 mouseout
回调函数。我怎样才能防止这种情况发生?
var circle = new Kinetic.Circle({
x: j * xcenterstep + xshift,
y: i * ycenterstep + yshift,
radius: t_radius,
fill: t_fill,
stroke: t_stroke,
strokeWidth: t_stroke_w,
strokeOpacity: 0.1,
opacity: 0.3 + t_number * 0.05,
});
if (t_number) {
circle.tw;
circle.on("mouseover", function () {
this.tw = new Kinetic.Tween({
node: this,
duration: 0.3,
strokeWidth: 6
});
this.tw.play();
});
circle.on("mouseout", function () {
this.tw.reverse();
});
}
// Adding the text
var radiusText = new Kinetic.Text({
x : circle.getX(),
y : circle.getY(),
text : t_number,
fontSize : radius,
fill : '#fff',
fontStyle: 'bold',
align : 'center'
});
radiusText.setOffset({
x : radiusText.getWidth()/2,
y : radiusText.getHeight()/2
});
bgLayer.add(circle);
bgLayer.add(radiusText);
检查您的代码,您缺少 }
来关闭 if (t_number) {
。我不确定它是否应该包含 mouseover
和 mouseout
事件,但它可能导致您的代码响应与您预期的不同。
我觉得用mouseenter
事件比较好。您可以禁用文本事件以防止 mouseout
圈出。
radiusText.listening(false)