📄 tooltip.as
字号:
class Tooltip {
// CLASS PROPERTIES
private var $borderC:Number;
private var $toolTipW:Number;
private var $toolTipH:Number;
private var $baseDist:Number;
private var $tColor:Number;
private var $txtColor:Number;
private var $tipText:String;
private var $tTxtSize:Number;
private var $tTxtFont:String;
private var $tTxtAlign:String;
private var $tTxtLeading:Number;
private var $timer:Object;
private var $dTime:Number;
private var $sTime:Number;
// CONSTRUCTOR +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function Tooltip(newText:String, tColor:Number, txtColor:Number) {
this.tipText = newText;
this.tipBackgroundColor = tColor;
this.tipTextColor = txtColor;
// non parametrised
this.baseDistance = 23;
this.toolTipWidth = 10;
this.tipBorderColor = 0x000000;
this.tipTextSize = 10;
this.tipTextFont = "_sans";
this.tipTextAlign = "left";
this.tipTextLeading = 3;
// seconds, NOT milliseconds
this.tipDelayTime = 0.5;
// seconds, NOT milliseconds
this.tipShowTime = 3;
}
// METHODS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// function that after a timeout of .5 seconds, draws the tooltip by calling doDraw();
public function drawTip() {
this.$timer = new Object();
$timer.displayTipDelay = setInterval(this, "doDraw", tipDelayTime);
}
// function to remove the tip --------------------------------------------------------------
public function removeTip() {
if ($timer.tipDisplayTime) {
clearTimer($timer.tipDisplayTime);
}
if ($timer.displayTipDelay) {
clearTimer($timer.displayTipDelay);
}
if (_root.tooltipHolder != undefined) {
removeMovieClip("tooltipHolder");
}
delete this.$timer;
}
// parametrised function to clear any interval ---------------------------------------------
private function clearTimer(whatTimer) {
clearInterval(whatTimer);
}
// drawing the tooltip ---------------------------------------------------------------------
private function doDraw() {
// clear the timer that delayed the tooltip display ------------------------------------
clearTimer($timer.displayTipDelay);
// start the timer that determines the time that the tooltip will be displayed ---------
$timer.tipDisplayTime = setInterval(this, "removeTip", tipShowTime);
// tooltip holder ----------------------------------------------------------------------
_root.createEmptyMovieClip("tooltipHolder", 10000);
// new textformat ----------------------------------------------------------------------
var $tipFormat = new TextFormat();
$tipFormat.color = tipTextColor;
$tipFormat.font = tipTextFont;
$tipFormat.size = tipTextSize;
$tipFormat.leading = tipTextLeading;
$tipFormat.align = tipTextAlign;
// create textfield inside tooltipHolder -----------------------------------------------
_root.tooltipHolder.createTextField("tipField", 5, 0, 0, 0, 0);
_root.tooltipHolder["tipField"].border = false;
_root.tooltipHolder["tipField"].selectable = false;
_root.tooltipHolder["tipField"].embedFonts = false;
_root.tooltipHolder["tipField"].wordWrap = false;
_root.tooltipHolder["tipField"].type = "dynamic";
_root.tooltipHolder["tipField"].text = $tipText;
_root.tooltipHolder["tipField"].autoSize = "left";
_root.tooltipHolder["tipField"].setTextFormat($tipFormat);
// tooltip shape movieclip inside tooltipHolder ----------------------------------------
_root.tooltipHolder.createEmptyMovieClip("shape", 2);
// draw tooltip background -------------------------------------------------------------
toolTipWidth = _root.tooltipHolder["tipField"].width;
toolTipHeight = _root.tooltipHolder["tipField"].height-4;
with (_root.tooltipHolder.shape) {
beginFill(this.tipBackgroundColor, 100);
moveTo(0, 0);
lineTo(this.toolTipWidth, 0);
lineTo(this.toolTipWidth, this.toolTipHeight);
lineTo(this.baseDistance, this.toolTipHeight);
lineTo(0, this.toolTipHeight);
lineTo(0, 0);
endFill();
}
// draw tooltip outline inside tooltipHolder -------------------------------------------
_root.tooltipHolder.createEmptyMovieClip("shapeborder", 3);
with (_root.tooltipHolder.shapeborder) {
lineStyle(1, this.tipBorderColor, 100);
moveTo(0, 0);
lineTo(this.toolTipWidth, 0);
lineTo(this.toolTipWidth, this.toolTipHeight);
lineTo(this.baseDistance, this.toolTipHeight);
lineTo(0, this.toolTipHeight);
lineTo(0, 0);
}
// create dropshadow by duplicating 'shape' inside tooltipHolder -----------------------
_root.tooltipHolder.shape.duplicateMovieClip("shadow_mc", 1);
_root.tooltipHolder.shadow_mc._x = _root.tooltipHolder.shape._x+3;
_root.tooltipHolder.shadow_mc._y = _root.tooltipHolder.shape._y+3;
_root.tooltipHolder.shadow_mc._alpha = 20;
var shadow_mc = new Color(_root.tooltipHolder.shadow_mc);
shadow_mc.setRGB(0x000000);
// position tooltip at mouse pointer ---------------------------------------------------
_root.tooltipHolder._x = _root._xmouse;
_root.tooltipHolder._y = _root._ymouse+baseDistance;
}
// SETTERS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public function set tipBackgroundColor(tColor:Number):Void {
if (tColor == undefined) {
this.$tColor = 0xFFFFE1;
} else {
this.$tColor = tColor;
}
}
public function set tipTextColor(txtColor:Number):Void {
if (txtColor == undefined) {
this.$txtColor = 0x00000;
} else {
this.$txtColor = txtColor;
}
}
public function set tipText(newText:String):Void {
this.$tipText = newText;
}
public function set baseDistance(baseDist:Number):Void {
this.$baseDist = baseDist;
}
public function set toolTipHeight(toolTipH:Number):Void {
this.$toolTipH = toolTipH;
}
public function set toolTipWidth(toolTipW:Number):Void {
this.$toolTipW = toolTipW;
}
public function set tipBorderColor(borderC:Number):Void {
this.$borderC = borderC;
}
public function set tipTextSize(tTxtSize:Number):Void {
this.$tTxtSize = tTxtSize;
}
public function set tipTextFont(tTxtFont:String):Void {
this.$tTxtFont = tTxtFont;
}
public function set tipTextAlign(tTxtAlign:String):Void {
this.$tTxtAlign = tTxtAlign;
}
public function set tipTextLeading(tTxtLeading:Number):Void {
this.$tTxtLeading = tTxtLeading;
}
public function set tipDelayTime(dTime:Number):Void {
this.$dTime = dTime*1000;
}
public function set tipShowTime(sTime:Number):Void {
this.$sTime = sTime*1000;
}
// GETTERS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public function get tipBackgroundColor():Number {
return $tColor;
}
public function get tipTextColor():Number {
return $txtColor;
}
public function get baseDistance():Number {
return $baseDist;
}
public function get toolTipHeight():Number {
return $toolTipH;
}
public function get toolTipWidth():Number {
return $toolTipW;
}
public function get tipBorderColor():Number {
return $borderC;
}
public function get tipTextSize():Number {
return $tTxtSize;
}
public function get tipTextFont():String {
return $tTxtFont;
}
public function get tipTextAlign():String {
return $tTxtAlign;
}
public function get tipTextLeading():Number {
return $tTxtLeading;
}
public function get tipDelayTime():Number {
return $dTime;
}
public function get tipShowTime():Number {
return $sTime;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -