【转】flex textArea 获…

<?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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值