• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 290
  • Last Modified:

tooltips

i found a tooltip class on the web that works quiet well: http://theflashblog.com/?p=16

- if the text is longer than the length of the tooltip, some of the text gets cut off.  
- if the tooltip is displayed near the edge of the movie, part of the tooltip is hidden.

how can i fix this please?

i can provide simple move if required.....

Ellandrd
var tooltip:Tooltip = new Tooltip(0xFFFFEC,0x000000);
tooltip.showTip("Sean Delaney");
 
class Tooltip 
{	
	private var theTip:MovieClip;
	private var theFormat:TextFormat;
	
	function Tooltip(hex:Number,hex2:Number) 
	{
		this.theTip = _root.createEmptyMovieClip("tooltip", _root.getNextHighestDepth());
		this.theTip.createTextField("theText",this.theTip.getNextHighestDepth(),3,1,125,20);
		this.theTip.beginFill(hex);
		this.theTip.lineStyle(1, hex2, 125);
		this.theTip.moveTo(0, 0);
		this.theTip.lineTo(125, 0);
		this.theTip.lineTo(125, 20);
		this.theTip.lineTo(20, 20);
		this.theTip.lineTo(15, 30);
		this.theTip.lineTo(10, 20);
		this.theTip.lineTo(0, 20);
		this.theTip.lineTo(0, 0);
		this.theTip.endFill();
		this.theTip._visible = false;
		this.theTip.theText.selectable = false;
		this.theFormat = new TextFormat();
		this.theFormat.font = "Arial";
		this.theFormat.size = 11;
		this.theFormat.align = "center";
		this.theTip.theText.setNewTextFormat(this.theFormat);
	}
	
	public function showTip(theText:String):Void 
	{
		this.theTip.theText.text = theText;
		this.theTip._x = _root._xmouse - 15;
		this.theTip._y = _root._ymouse - 35;
		this.theTip._visible = true;
		this.theTip.onMouseMove = function() 
		{
			this._x = _root._xmouse-15 ;
			this._y = _root._ymouse-35;
			updateAfterEvent();
		}
	}
	
	public function removeTip():Void 
	{
		this.theTip._visible = false;
		delete this.theTip.onEnterFrame;
	}
}

Open in new window

0
ellandrd
Asked:
ellandrd
  • 3
  • 3
1 Solution
 
williamcampbellCommented:
When you go to the edge of the movie it tries to diaply the tip at
                  this._x = _root._xmouse-15 ;
                  this._y = _root._ymouse-35;

 -15 points behind the mouse

So Change to

this._x = _root._xmouse-15 ;
if ( this._x < 0 ) this._x = 0;
this._y = _root._ymouse-35
if ( this._y < 0 ) this._y = 0;

As far as the text getting cropped this line restricts that
  this.theTip.lineTo(125, 0);     // the 125 is the length of the tip

 You cange change *all* the 125's to say 256  or you will need to find the length of the text based on its font etc

Hope this helps

William




0
 
ellandrdAuthor Commented:
still hasnt fixed the toolip position on edge of movie... try it youself
0
 
williamcampbellCommented:
Can I see your new Code?
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
ellandrdAuthor Commented:
class Tooltip {
      private var theTip:MovieClip;
      private var theFormat:TextFormat;

      function Tooltip(hex:Number, hex2:Number) {
            this.theTip = _root.createEmptyMovieClip("tooltip", _root.getNextHighestDepth());
            this.theTip.createTextField("theText",this.theTip.getNextHighestDepth(),3,1,125,20);
            this.theTip.beginFill(hex);
            this.theTip.lineStyle(1,hex2,125);
            this.theTip.moveTo(0,0);
            this.theTip.lineTo(125,0);
            this.theTip.lineTo(125,20);
            this.theTip.lineTo(20,20);
            this.theTip.lineTo(15,30);
            this.theTip.lineTo(10,20);
            this.theTip.lineTo(0,20);
            this.theTip.lineTo(0,0);
            this.theTip.endFill();
            this.theTip._visible = false;
            this.theTip.theText.selectable = false;
            this.theFormat = new TextFormat();
            this.theFormat.font = "Arial";
            this.theFormat.size = 11;
            this.theFormat.align = "center";
            this.theTip.theText.setNewTextFormat(this.theFormat);
      }
      public function showTip(theText:String):Void {
            this.theTip.theText.text = theText;



            this.theTip._x = _root._xmouse-15;

            if (this.theTip._x<0) {
                  this.theTip._x = 0;
            }
            this.theTip._y = _root._ymouse-35;


            if (this.theTip._y<0) {
                  this.theTip._y = 0;
            }


            this.theTip._visible = true;
            this.theTip.onMouseMove = function() {
                  //this._x = _root._xmouse-15 ;
                  //this._y = _root._ymouse-35;


                  this._x = _root._xmouse-15;

                  if (this._x<0) {
                        this._x = 0;
                  }

                  this._y = _root._ymouse-35;
                  if (this._y<0) {
                        this._y = 0;
                  }

                  updateAfterEvent();
            };
      }
      public function removeTip():Void {
            this.theTip._visible = false;
            delete this.theTip.onEnterFrame;
      }
}
0
 
williamcampbellCommented:
I Object. I spent some time on this question. The Asker got an answer from another question thread. I should at least get something for my effort. If the asker is asking the same question in two threads and only accepting one that I believe is bad form.

WC
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now