class ToolTip { private var target:MovieClip; private var tipIID:Number; private var label:String; public static var duration:Number; public static var activeTip:ToolTip; private var __xoffset:Number; private var __yoffset:Number; private var __backgroundColor:Number; private var __borderColor:Number; private var __textColor:Number; public function ToolTip(t:MovieClip, l:String) { target = t; if(target.useHandCursor) target.useHandCursor = false; label = l; duration = 2000; // default offsets (based on the reg point of the target mc) __xoffset = 15; __yoffset = -10; // default colors __backgroundColor = 0xFFFFCC; __borderColor = 0x000000; __textColor = 0x000000; var hook:ToolTip = this; target.onRollOver = function(){ hook.show(); } } private function show():Void { // check to see if we are the same tip, return if so if(label == ToolTip.activeTip.label) return; var hook:ToolTip = this; if(ToolTip.activeTip != null) ToolTip.activeTip.hide(); target.createTextField("toolTip", 500, __xoffset, __yoffset, 150, 22); var tipTextFormat = new TextFormat(); with(tipTextFormat) { font = "Tahoma"; align = "left"; size = 11; leftMargin = 4; } var tipFieldProps = { autoSize:"left", type:"dynamic", embedFonts:false, selectable:false, background:true, border:true, backgroundColor:__backgroundColor, borderColor:__borderColor, textColor:__textColor } // set the properties for(var n:String in tipFieldProps) { target.toolTip[n] = tipFieldProps[n]; } // extra spacing because of leftMargin target.toolTip.text = label add " "; target.toolTip.setTextFormat(tipTextFormat); ToolTip.activeTip = this; clearInterval(tipIID); tipIID = setInterval(this, "hide", duration); } private function hide():Void { clearInterval(tipIID); target.toolTip.removeTextField(); ToolTip.activeTip = null; } // ------------- // getter/setter // ------------- public function set backgroundColor(n:Number):Void { __backgroundColor = n; } public function get backgroundColor():Number { return __backgroundColor; } public function set borderColor(n:Number):Void { __borderColor = n; } public function get borderColor():Number { return __borderColor; } public function set textColor(n:Number):Void { __textColor = n; } public function get textColor():Number { return __textColor; } public function set xoffset(n:Number):Void { __xoffset = n; } public function get xoffset():Number { return __xoffset; } public function set yoffset(n:Number):Void { __yoffset = n; } public function get yoffset():Number { return __yoffset; } }