Olá galera
Estou com um problema creio eu que seja complexo de ser resolvido.
Exemplo eu tenho um texto em um textArea e eu seleciono parte desse texto, eu preciso pegar a posição x,y desse texto pra eu colocar um componente no local, tipo um Button, ou inputText, tanto faz
O problema é, como eu vou pegar a posição do texto selecionado pra eu criar o componente em cima desse texto selecionado
Alguem ae tem alguma idéia de como eu possa fazer isso?
Atenciosamente
Olá,
Não sei como fazer pra te ajudar, mas observe que você poderá ter vários pares xy que compreendem o trecho selecionado.
sim
mas nao preciso de todos os pares, é só eu pegar o ponto inicial que eu testo pra colocar o componente no lugar correto, o problema mesmo é pegar a posição do texto selecionado.
Fiz um código meio por cima, ele ainda só tira o botão depois de clicar duas vezes, mas pode te dar uma idéia:
[code]<?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”>
<s:layout>
<s:VerticalLayout/>
</s:layout>
fx:Script
<![CDATA[
import mx.controls.Text;
import mx.events.FlexEvent;
import spark.components.Button;
[Bindable]
public var anchor:Number;
[Bindable]
public var selection:Number;
private var buttonPressed:Boolean=false;
protected function txtArea_selectionChangeHandler(event:FlexEvent):void {
anchor=txtArea.selectionAnchorPosition;
selection=txtArea.selectionActivePosition;
buttonPressed=false;
}
protected function group1_mouseUpHandler(event:MouseEvent):void {
if(anchor!=selection&&group.numChildren<3&&!buttonPressed) {
var but:Button=new Button;
but.x=event.localX;
but.y=event.localY;
but.label="Button";
but.addEventListener(MouseEvent.CLICK,removeButton);
group.addElement(but);
}
}
protected function removeButton(event:MouseEvent):void {
buttonPressed=true;
group.removeElementAt(1);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Group id="group" mouseUp="group1_mouseUpHandler(event)">
<s:TextArea id="txtArea" selectionChange="txtArea_selectionChangeHandler(event)"/>
</s:Group>
<s:Label text="{'a: ' +anchor+'s: '+selection}"/>
</s:Application>
[/code]
[]s