flashxm

04月 8, 2008

用Flex 3做AIR版html编辑器

归类于: AIR, Flex — 标签:, , , — flashxm @ 8:25 pm

用Flex自带的组件RichTextEditor进行文本编辑,再用File和FileStream进行简单的文本读写操作。
效果演示
源代码如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" fontSize="12">
  3.     <mx:Panel width="80%" height="80%">
  4.         <mx:HBox>
  5.             <mx:Label text="文本路径" />
  6.             <mx:TextInput width="300" id="file_name" />
  7.             <mx:Button label="浏览" click="browser()" />
  8.         </mx:HBox>
  9.         <mx:RichTextEditor id="file_content" title="文本编辑" width="100%">
  10.         </mx:RichTextEditor>
  11.         <mx:Button label="修改" click="modifyFile()" />
  12.     </mx:Panel>
  13.     <mx:Script>
  14.         <![CDATA[
  15.         import flash.filesystem.*;
  16.             private function modifyFile():void
  17.             {
  18.                 var file:File;
  19.                 try{
  20.                     file = new File(file_name.text);
  21.                 } catch (e:Error){
  22.                     var n:String = "c:\\test.txt";
  23.                     file = new File(n);
  24.                     file_name.text = n;
  25.                 }
  26.                 var stream:FileStream = new FileStream();
  27.                 stream.open(file, FileMode.UPDATE);
  28.                 stream.writeUTFBytes(file_content.htmlText);
  29.                 stream.close();
  30.             }
  31.             private function browser():void
  32.             {
  33.                 var txtFilter:FileFilter = new FileFilter("文本本件", "*.txt");
  34.                 var file:File = new File();
  35.                 file.browseForOpen("打开", [txtFilter]);
  36.                 file.addEventListener(Event.SELECT, fileHandler);
  37.             }
  38.             private function fileHandler(e:Event):void
  39.             {
  40.                 var file:File = e.target as File;
  41.                 file_name.text = file.nativePath;
  42.                 var stream:FileStream = new FileStream();
  43.                 stream.open(file, FileMode.READ);
  44.                 file_content.htmlText = stream.readUTFBytes(stream.bytesAvailable);
  45.                 stream.close();
  46.             }
  47.         ]]>
  48.     </mx:Script>
  49. </mx:WindowedApplication>

1条评论 »

还没有评论。

评论 RSS Feed。 引用 URL

发表评论

Powered by WordPress