MouseOver和Mousedown在一个对象中

时间:2013-12-23 18:13:45

标签: html5-canvas kineticjs

你好,抱歉我的英语不好。我使用循环“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;
});

谢谢 如果有人能帮助我的话。

1 个答案:

答案 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();
  });