我需要在我的 Flex 4 应用程序中捕获和修改粘贴操作的内容。我正在监听 TextOperation.CHANGING 事件,取出 PasteOperation,并设置它的 textScrap 属性。一切似乎都在工作,除了在我修改 textScrap 之后,在粘贴中添加了一个换行符。我创建了一些示例代码来说明问题的最简单版本。我实际上并没有更改副本,我正在获取现有的 textScrap 的 textFlow,用它创建一个新的 TextScrap,并将其设置在 PasteOperation 上。我这样做是为了排除创建 TextFlow 的问题:
<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">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flash.desktop.Clipboard;
import flash.desktop.ClipboardFormats;
import flashx.textLayout.edit.TextScrap;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.operations.PasteOperation;
import flashx.textLayout.tlf_internal;
import spark.events.TextOperationEvent;
use namespace tlf_internal;
protected function textArea_changingHandler(event:TextOperationEvent):void
{
if (event.operation is PasteOperation)
{
var pasteOp:PasteOperation = event.operation as PasteOperation;
pasteOp.textScrap = new TextScrap(pasteOp.textScrap.textFlow);
}
}
]]>
</fx:Script>
<s:TextArea id="textArea" changing="textArea_changingHandler(event)"/>
</s:Application>
提前致谢,
格里