2011-09-21 76 views
0

这里有一块类,它在我已经绘制了一些对象后调用,问题是当我有sprite.addChild(textfield)包含它开始闪烁很多。actionscript闪烁工具提示时addChild(textfield);

 addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); 
     addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); 
     addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 

     } 



      private function mouseOverHandler(e:MouseEvent):void{ 
       //creating a new tooltip instance 
       var tooltip:Sprite = new Sprite(); 
       /*//we tell the holder to hold our tooltip 
     holder = tooltip; 
     //adding text to the tooltip 
     //tooltip.myText = "ASS"; 
     //positioning the tooltip on the stage 
     holder.x = stage.mouseX; 
     holder.y = stage.mouseY - 15; 
     //adding the tooltip to the stage*/ 
       textfield.selectable = false; 
     textformat.align = TextFormatAlign.CENTER; 
     textformat.size = 12; 
     textformat.color = 0x000000; 
     textfield.defaultTextFormat = textformat; 
     textfield.x = x; 
     textfield.y = y; 
     textfield.width = width; 
     textfield.height = height; 
     textfield.text = myName; 
     sprite.graphics.lineStyle(2,0x00BB00); 
     sprite.graphics.beginFill(0xFFFFFF, 1); 
     sprite.graphics.drawRect(x, y, width, height); 
     sprite.graphics.endFill(); 
     sprite.addChild(textfield); 
     sprite.x = stage.mouseX; 
     sprite.y = stage.mouseY - 15; 
     tooltip.addChild(sprite); 
       //holder.addChild(tooltip); 
     addChild(sprite) 
     } 

      private function mouseOutHandler(e:MouseEvent):void{ 
       //we remove the holder when the cursor is outside our button 
     removeChild(sprite); 
     } 

      //we create this function to move the tooltip everytime the cursor is moved 
      private function mouseMoveHandler(e:MouseEvent):void{ 
     sprite.x = stage.mouseX; 
     sprite.y = stage.mouseY - 15; 
     } 

回答

0

即使我不确定,这可能会解释您的问题。您可以提供更多信息以获得更好的解决方当你添加精灵时,它会调用mouseOutHandler,导致你在你的光标下添加你的精灵,并且你使用removeChild(精灵)去除精灵;并且mouseOverHandler再次调用它。

+0

已经修复它。实际上,添加和删除不是很正确,因为我正在完成整个类内的工具提示例程。我基本上用sprite.visible替换addchild/removechild true/false – Smoke