
Код AS3:
package {
import flash.display.Sprite;
import flash.text.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Graphics;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class SpriteWithHint extends Sprite {
var mysprite:Sprite = new Sprite();
var myhint:Sprite = new Sprite();
var hinttf:TextField = new TextField();
public var hinttext:String = "There is hint";
var hinttimer:Timer = new Timer(1000, 1);
public function SpriteWithHint():void {
with(mysprite) {
graphics.lineStyle(1, 0x000000, 1);
graphics.beginFill(0x0033CC, 1);
graphics.drawRect(0, 0, 100, 40);
graphics.endFill();
x = 50;
y = 50;
};
mysprite.addEventListener(MouseEvent.MOUSE_OVER, hintPrepare);
mysprite.addEventListener(MouseEvent.MOUSE_OUT, hintCancel);
addChild(mysprite);
with(myhint) {
name = "myhint";
graphics.lineStyle(1, 0x000000, 1);
graphics.beginFill(0xFFFF33, 0.8);
graphics.moveTo(0,0);
graphics.lineTo(0,100);
graphics.lineTo(200,100);
graphics.lineTo(200,20);
graphics.lineTo(20,20);
graphics.lineTo(0,0);
graphics.endFill();
addChild(hinttf);
};
var myformat:TextFormat = new TextFormat();
with(myformat) {
color = 0x000000;
font = "Tahoma";
size = 12;
};
with(hinttf) {
selectable = false;
wordWrap = true;
x = 10;
y =30;
width = 100;
height = 160;
defaultTextFormat = myformat;
};
};
function hintPrepare(e:MouseEvent) {
mysprite.addEventListener(MouseEvent.MOUSE_MOVE, restartTimer);
hinttimer.addEventListener(TimerEvent.TIMER_COMPLETE, showHint);
hinttimer.start();
};
function restartTimer(e:MouseEvent) {
hinttimer.stop();
hinttimer.reset();
hinttimer.start();
};
function showHint(e:TimerEvent) {
mysprite.removeEventListener(MouseEvent.MOUSE_MOVE, restartTimer);
mysprite.addEventListener(MouseEvent.MOUSE_MOVE, hideHint);
addHint(hinttext);
hinttimer.stop();
};
function hideHint(e:MouseEvent) {
mysprite.removeEventListener(MouseEvent.MOUSE_MOVE, hideHint);
mysprite.addEventListener(MouseEvent.MOUSE_MOVE, restartTimer);
removeChild(myhint);
hinttimer.start();
};
function hintCancel(e:MouseEvent) {
hinttimer.removeEventListener(TimerEvent.TIMER_COMPLETE, showHint);
mysprite.removeEventListener(MouseEvent.MOUSE_MOVE, restartTimer);
hinttimer.stop();
};
function addHint(hinttxt:String) {
hinttf.text = hinttxt;
myhint.x = mouseX;
myhint.y = mouseY;
addChild(myhint);
};
};
};