actionscript addChild(textfield)时闪烁工具提示;

时间:2011-09-21 08:40:56

标签: actionscript-3

这是我已经在其中绘制了一些对象之后调用的类,问题是当我有sprite.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;
      }

1 个答案:

答案 0 :(得分:0)

即使我不确定,这也许可以解释你的问题。您可以提供更多信息以获得更好的解决方案。

“当你添加精灵时,它会调用mouseOutHandler,导致你在光标下添加你的精灵。然后用// removeChild(sprite)删除精灵;再次调用mouseOverHandler。就像那样。”