你好,抱歉我的英语不好。我使用循环“for”创建对象,或多或少200个对象,其中包含带有鼠标悬停和鼠标移动的动态图像。问题是所有的对象都没问题,对于图像,问题是更多不能很好地将鼠标移出并且我不知道为什么。没有在javascript中给我一个错误,只有一个警告与库。如果任何人可以检查具有鼠标掠过的图像的对象数组。
CREATE OBJECTS--->
for (var j=0;j<datos.length;j++){ //
iconos[j]= new icono(images._icono,1, datos[j] ,_conv_lat,_conv_long,factor_conversion_mapa,ConvLat,ConvLong,layer_iconos,stage,j,etiquetas);
FUNCTION --->
function icono(icono_mapa,tipo,datos,_conv_lat,_conv_long,factor_conversion_mapa,ConvLat,ConvLong,layer_icono,stage,i,etiquetas){
// DEL PIXEL 679 VA EN NEGATIVO ESTE VALOR (IBIZA-CORUÑA) //Pixel /Grado
//this._conv_lat=_conv_lat;
this.num=i;
// DEL PIXEL 241 VA EN POSITIVO ESTE VALOR
//this._conv_long=_conv_long;
//this.factor_conversion_mapa= factor_conversion_mapa;
this.Datos= new Array();
this.Datos= datos.slice();
this.imagen=icono_mapa;
this.Lat=0;
this.Long=0;
this.ConvLat=ConvLat;
this.ConvLong=ConvLong;
var _this = this;
.
.
.
.
.
this.base = new Kinetic.Image({x: _this.Long-( _this.size/2.0), y: _this.Lat -(this.size/2.0)+5, image:_this.imagen, width: _this.size, height: _this.size , name: "icono_"+_this.num});
this.base.on('mouseover', function(evt) {
document.body.style.cursor = 'pointer';
etiquetas[_this.num].labelLeft.setAttr('opacity',1);
layer_etiquetas.draw();
evt.cancelBubble = true;
});
this.base.on('mouseout', function(evt) {
document.body.style.cursor = 'default';
etiquetas[_this.num].labelLeft.setAttr('opacity',0);
layer_icono.draw();
evt.cancelBubble = true;
});
谢谢 如果有人能帮助我的话。
答案 0 :(得分:0)
谢谢。
我省略的东西,因为代码更大但不是问题。此外,我找到了解决方案,以便重新绘制并在此刻工作得很好。
只有一个Tooltip对象移动到位置AND mouseenter not mouseover
var base = new Kinetic.Image({x:Long-( size/2.0), y:Lat -(size/2.0)+5, image:imagen, width:size, height:size , name: "icono_"+num});
base.on('mouseenter mousemove', function(evt) {
document.body.style.cursor = 'pointer';
tooltip.setPosition(this.getX()+this.getWidth(), this.getY()+this.getHeight()/2);
tooltip.setVisible(true);
tooltip.getText().setText(Datos[4]);
//tooltip.getText()setText(0,Datos[4]);
tooltip.moveToTop();
layer.draw();
});
base.on('mouseout', function(evt) {
document.body.style.cursor = 'default';
tooltip.setVisible(false);
layer.draw();
});