<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955"
minHeight="600"
creationComplete="application1_creationCompleteHandler(event)" >
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
//选中的文本
[Bindable]
private var text:String;
//跟随鼠标移动的x坐标
[Bindable]
private var x1:Number ;
//跟随鼠标移动的y坐标
[Bindable]
private var y1:Number ;
private var last_x:Number=-10000;
private var last_y:Number=-10000;
private function init(event:MouseEvent):void
{
var c:Number=textArea.selectionBeginIndex;
var d:Number=textArea.selectionEndIndex;
x1=event.localX+gg.x+textArea.x;
y1=event.localY+gg.y+textArea.y;
if(c == d)return;
text=textArea.text.substring(c, d);
label.visible=true;
// Alert.show(textArea.text.substring(c, d)+";;;;;;;;;;;"+c+d);
// Alert.show(st.substr(0,2));
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
textArea.text= "abcdefghijklmnopqistu,vwxyzaaaaaaa.aaaaaaa";
}
private function mouseMove(event:MouseEvent):void
{
if (last_x==-10000 && last_y==-10000)
{
last_x=event.localX;
last_y=event.localY;
}
else
{
var distanceX:Number;
var distanceY:Number;
distanceX=last_x-event.localX;
distanceY=last_y-event.localY;
if (distanceX>8 || distanceY>8 || distanceX<-8 || distanceY<-8)
label.visible=false;
last_x=event.localX;
last_y=event.localY;
}
}
]]>
</fx:Script>
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
</fx:Declarations>
<s:Group id="gg" x="75" y="281" width="682" height="200" mouseUp="init(event);" mouseMove="mouseMove(event);">
<mx:TextArea id="textArea" editable="false" width="346" height="161" x="90" y="33"/>
</s:Group>
<s:BorderContainer id="label" x="{x1}" y="{y1}" width="200" borderColor="#000000" backgroundColor="#F2F773" visible="false">
<s:Label text="{text}" width="199"/>
</s:BorderContainer>
</s:Application>