root/as3/HikaToolTips/src/hikatsuka/utils/HikaToolTips.as

リビジョン 1319, 2.7 kB (コミッタ: hikatsuka, コミット時期: 2 年 前)

ツールチップ

Line 
1 package hikatsuka.utils {
2        
3         /*============================================================
4         クラス読み込み
5         ============================================================*/
6         import flash.display.Stage;
7         import flash.display.Sprite;
8         import flash.events.Event;
9         import flash.text.TextField;
10         import flash.text.TextFieldAutoSize;
11         import flash.text.TextFormat;
12
13         public class HikaToolTips {
14                
15                 //デフォルト
16                 private var FC:String = "FFFFFF";       //文字色
17                 private var FS:uint = 10 ;                      //フォントサイズ
18                 private var FF:String = "_sans"         //フォント
19                 private var BgC:String = "333333";      //背景色
20                 private var BoC:String = "000000";      //枠線色
21                 private var LD:int = 1;                         //行間
22                 private var SP:int = 0;                         //文字間
23                 private var B:Boolean = false;          //太字
24                 private var LM:int = 2;                         //左マージン
25                 private var RM:int = 0;                         //右マージン
26                 //オブジェクト
27                 private var ST:Stage;
28                 private var txtFMT:TextFormat;
29                 private var txtMC:TextField;
30                
31                 //コンストラクタ
32                 public function HikaToolTips(stage:Stage) {
33                        
34                         //ステージを設定
35                         ST=stage;
36                        
37                         //テキストフォーマットの設定
38                         txtFMT = new TextFormat();
39                         with(txtFMT) {
40                                 font = FF;     
41                                 size = FS;
42                                 leading = LD;
43                                 color = "0x" + FC;
44                                 letterSpacing = SP;
45                                 bold = B;
46                                 leftMargin = LM;
47                                 rightMargin = RM;
48                         }
49                        
50                         //テキストフィールドを作成
51                         txtMC = new TextField();
52                         with (txtMC) {
53                                 defaultTextFormat = txtFMT;
54                                 autoSize = TextFieldAutoSize.LEFT;
55                                 selectable = false;
56                                 multiline = true;
57                                 wordWrap = false;
58                                 border = true;
59                                 background = true;
60                                 mouseEnabled = false;
61                                 backgroundColor = "0x" + BgC;
62                                 borderColor = "0x" + BoC;
63                         }
64                 }
65                
66                 private function txtEnterFrame(event:Event):void {
67                         //表示位置の調整
68                         var divX:Number = (ST.mouseX < ST.stageWidth / 2) ? 20 : ( -10 - event.target.width);
69                         var divY:Number = (ST.mouseY < ST.stageHeight / 2) ? 20 : ( -10 - event.target.height);
70                         //テキスト表示位置
71                         event.target.x += (event.target.mouseX+divX)/5;
72                         event.target.y += (event.target.mouseY+divY)/5;
73                 }
74                
75                 public function setToolTips(TXT:String) {
76                         if (TXT.indexOf("\n")==-1) {
77                                 txtFMT.leading = 0;
78                         } else {
79                                 txtFMT.leading = LD;
80                         }
81                         txtMC.defaultTextFormat = txtFMT;
82                         txtMC.text = TXT;
83                         txtMC.x=ST.mouseX;
84                         txtMC.y=ST.mouseY;
85                         ST.addChild(txtMC);
86                        
87                         //イベント設定
88                         txtMC.addEventListener(Event.ENTER_FRAME, txtEnterFrame);
89                 }
90                
91                 public function delToolTips() {
92                         if (ST.contains(txtMC)) {
93                                 ST.removeChild(txtMC);
94                                 txtMC.removeEventListener(Event.ENTER_FRAME, txtEnterFrame);
95                         }
96                 }
97         }
98 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。