AS3 FLASH文本编辑器

重要代码:
package {
import fl.controls.ColorPicker;
import fl.controls.ComboBox;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.EventDispatcher;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.text.Font;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.ui.Mouse;
import flash.utils.setTimeout;
/**
* ...
* @author 沙子 QQ:8286659 http://www.taoshaw.com
*/
public class main extends MovieClip {
  //输入文本框
  private var my_text:TextField;
  //加粗按钮
  private var my_btn_bold:mc_bold;
  //倾斜按钮
  private var my_btn_itlic:mc_itlic;
  //居左
  private var my_btn_left:mc_auto_left;
  //居中
  private var my_btn_middle:mc_auto_middle;
  //居右
  private var my_btn_right:mc_auto_right;
  //下划线
  private var my_btn_xiahuaxian:mc_xiahuaxian;
  //超链接
  private var my_btn_url:mc_url;
  //显示超链接输入对话框
  private var my_btn_url_shuru:mc_url_shuru;
  //图片
  private var my_btn_pic:mc_pic;
  //图片输入框
  private var my_btn_pic_shuru:mc_pic_shuru;
  //字体大小
  private var my_btn_size:ComboBox;
  //字体颜色
  private var my_Col:ColorPicker;
  //字号
  private var font_Arr:Array;
  //字体
  private var my_btn_font:ComboBox;
  //获取字体数组
  private var my_Arr_font:Array;
  //设置字体下拉框的样式
  private var linkTextFormat:TextFormat;
  //初始化开始选择索引跟结束选择索引
  private var my_Beginfocus:int=-1;
  private var my_Endfocus:int=-1;
  private var my_TextFormat:TextFormat;
  //显示所有对象
  private var my_Sprite:Sprite;
  public function main() {
   my_text = new TextField();
   my_btn_bold = new mc_bold();
   my_btn_itlic = new mc_itlic();
   my_btn_left = new mc_auto_left();
   my_btn_middle = new mc_auto_middle();
   my_btn_right = new mc_auto_right();
   my_btn_xiahuaxian = new mc_xiahuaxian();
   my_btn_url = new mc_url();
   my_btn_url_shuru = new mc_url_shuru();
   my_btn_pic = new mc_pic();
   my_btn_pic_shuru = new mc_pic_shuru();
   my_btn_size = new ComboBox();
   my_Col = new ColorPicker();
   my_TextFormat = new TextFormat();
   my_Sprite = new Sprite();
   font_Arr = new Array();
   //获取系统可用字体
   my_Arr_font = Font.enumerateFonts(true);
   linkTextFormat = new TextFormat();
   my_btn_font = new ComboBox();
   my_Sprite.addChildAt(my_text, 0);
   my_Sprite.addChildAt(my_btn_bold, 1);
   my_Sprite.addChildAt(my_btn_itlic, 2);
   my_Sprite.addChildAt(my_btn_size, 3);
   my_Sprite.addChildAt(my_Col, 4);
   my_Sprite.addChildAt(my_btn_font, 5);
   my_Sprite.addChildAt(my_btn_left, 6);
   my_Sprite.addChildAt(my_btn_middle, 7);
   my_Sprite.addChildAt(my_btn_right, 8);
   my_Sprite.addChildAt(my_btn_xiahuaxian, 9);
   my_Sprite.addChildAt(my_btn_url, 10);
   my_Sprite.addChildAt(my_btn_pic, 11);
   addChild(my_Sprite);
   //显示文本框
   _showTextField();
   //显示加粗按钮
   _showBtn_Bold();
   //显示倾斜按钮
   _showBtn_itlic();
   //显示居左
   _showBtn_left();
   //显示居中
   _showBtn_middle();
   //显示居右
   _showBtn_right();
   //显示下划线按钮
   _showBtn_xiahuaxian();
   //显示超链接按钮
   _showBtn_url();
   //显示插入图片按钮
   _showBtn_pic();
   //显示字号
   _showBtn_size();
   //显示颜色组件
   _showBtn_Col();
   //显示字体下拉框
   _showBtn_font();
   //字体下拉框样式
   _styleCombobox();
  }
  //字体下拉框样式
  private function _styleCombobox():void {
   linkTextFormat.font = "Arial";
   linkTextFormat.size = 12;
   //linkTextFormat.bold = true;
   linkTextFormat.color = 0x171717;
  }
  //加粗
  private function _TextFormat_bold():void {
   my_TextFormat.bold=! my_TextFormat.bold;
  }
  //倾斜
  private function _TextFormat_italic():void {
   my_TextFormat.italic = !my_TextFormat.italic;
  }
  //居左
  private function _TextFormat_auto_left():void {
   my_TextFormat.align = "left";
  }
  //居中
  private function _TextFormat_auto_middle():void {
   my_TextFormat.align="center";
  }
  //居右
  private function _TextFormat_auto_right():void {
   my_TextFormat.align="right";
  }
  //下划线
  private function _TextFormat_xiahuaxian():void {
   my_TextFormat.underline = !my_TextFormat.underline;
  }
  //超链接
  private function _TextFormat_url(e:MouseEvent):void {
   //my_TextFormat.url="http://www.taoshaw.com"
   my_TextFormat.url = my_btn_url_shuru.url_txt.text;
   my_Sprite.removeChildAt(11);
  }
  //取消超链接
  private function _TextFormat_Clearurl(e:MouseEvent):void {
   my_Sprite.removeChildAt(11);
   my_btn_url_shuru.url_txt.text = "";
  }
  //插入图片
  private function _TextFormat_pic(e:MouseEvent):void {
   my_text.htmlText+="<img src='/UploadTeach/200812/20081205174844162.jpg'><br>"
   //my_TextFormat.url = my_btn_url_shuru.url_txt.text;
   //trace("请插入图片")
   my_Sprite.removeChildAt(12);
  }
  //取消插入图片对话框
  private function _TextFormat_Clearpic(e:MouseEvent):void {
   my_Sprite.removeChildAt(12);
   my_btn_pic_shuru.url_txt.text = "";
  }
  //设置拖曳
  private function stopDrags(e:MouseEvent):void {
   e.currentTarget.stopDrag();
  }
  private function startDrags(e:MouseEvent):void {
   e.currentTarget.startDrag();
  }
  //显示加粗按钮
  private function _showBtn_Bold():void {
   my_btn_bold.x=35;
   my_btn_bold.y=25;
   my_btn_bold.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_bold.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_bold.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示字号按钮
  private function _showBtn_size():void {
   my_btn_size.x = 90;
   my_btn_size.y = 23;
   my_btn_size.width = 70;
   font_Arr = [12, 14, 16,  18,  20,  22, 24, 32, 36, 36,40,48, 60,64,68,74,80,84,96, 120];
   for (var i:uint = 0; i < font_Arr.length; i++) {
    my_btn_size.addItem({label:font_Arr,data:font_Arr});
   }
   my_btn_size.addEventListener(Event.CHANGE,_setTextFormatNext);
  }
  //显示倾斜按钮
  private function _showBtn_itlic():void {
   my_btn_itlic.x = 60;
   my_btn_itlic.y = 25;
   my_btn_itlic.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_itlic.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_itlic.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示颜色按钮
  private function _showBtn_Col():void {
   my_Col.x = 197;
   my_Col.y = 22;
   my_Col.addEventListener(Event.CLOSE,_setTextFormatNext);
  }
  //显示字体下拉框
  private function _showBtn_font():void {
   my_btn_font.x = 230;
   my_btn_font.y = 22;
   for (var i:uint = 0; i < my_Arr_font.length; i++) {
    //trace(my_Arr_font.fontName)
    my_btn_font.addItem({label:my_Arr_font.fontName});
   }
   my_btn_font.textField.setStyle("textFormat", linkTextFormat);
   my_btn_font.dropdown.setRendererStyle("textFormat", linkTextFormat);
   my_btn_font.width = 115;
   my_btn_font.addEventListener(Event.CHANGE,_setTextFormatNext);
  }
  //显示居左按钮
  private function _showBtn_left():void {
   my_btn_left.x = 355;
   my_btn_left.y = 25;
   my_btn_left.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_left.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_left.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示居中按钮
  private function _showBtn_middle():void {
   my_btn_middle.x = 380;
   my_btn_middle.y = 25;
   my_btn_middle.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_middle.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_middle.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示居右按钮
  private function _showBtn_right():void {
   my_btn_right.x = 405;
   my_btn_right.y = 25;
   my_btn_right.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_right.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_right.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示下划线按钮
  private function _showBtn_xiahuaxian():void {
   my_btn_xiahuaxian.x = 430;
   my_btn_xiahuaxian.y = 25;
   my_btn_xiahuaxian.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_xiahuaxian.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_xiahuaxian.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示超链接按钮
  private function _showBtn_url():void {
   my_btn_url.x = 455;
   my_btn_url.y = 25;
   my_btn_url.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_url.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_url.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //显示插入图片按钮
  private function _showBtn_pic():void {
   my_btn_pic.x = 170;
   my_btn_pic.y = 25;
   my_btn_pic.addEventListener(MouseEvent.ROLL_OVER, changeNext);
   my_btn_pic.addEventListener(MouseEvent.ROLL_OUT, changeCurrent);
   my_btn_pic.addEventListener(MouseEvent.CLICK, _setTextFormat);
  }
  //设置样式(A)
  private function _setTextFormat(e:MouseEvent):void {
   switch (e.currentTarget) {
    case my_btn_bold :
     _TextFormat_bold();
     break;
    case my_btn_itlic :
     _TextFormat_italic();
     break;
    case my_btn_left :
     _TextFormat_auto_left();
     break;
    case my_btn_middle :
     _TextFormat_auto_middle();
     break;
    case my_btn_right :
     _TextFormat_auto_right();
     break;
    case my_btn_xiahuaxian :
     _TextFormat_xiahuaxian();
     break;
    case my_btn_url :
     my_btn_url_shuru.x = 200;
     my_btn_url_shuru.y = 130;
     my_btn_url_shuru.ok.addEventListener(MouseEvent.CLICK, _TextFormat_url);
     my_btn_url_shuru.cancel.addEventListener(MouseEvent.CLICK, _TextFormat_Clearurl);
     my_btn_url_shuru.addEventListener(MouseEvent.MOUSE_DOWN, startDrags);
     my_btn_url_shuru.addEventListener(MouseEvent.MOUSE_UP, stopDrags);
     my_Sprite.addChildAt(my_btn_url_shuru,11);
     break;
    case my_btn_pic :
     my_btn_pic_shuru.x = 200;
     my_btn_pic_shuru.y = 130;
     my_btn_pic_shuru.ok.addEventListener(MouseEvent.CLICK, _TextFormat_pic);
     my_btn_pic_shuru.cancel.addEventListener(MouseEvent.CLICK, _TextFormat_Clearpic);
     my_btn_pic_shuru.addEventListener(MouseEvent.MOUSE_DOWN, startDrags);
     my_btn_pic_shuru.addEventListener(MouseEvent.MOUSE_UP, stopDrags);
     my_Sprite.addChildAt(my_btn_pic_shuru,12);
     break;
   }
   my_text.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
  }
  //设置样式(B)
  private function _setTextFormatNext(e:Event):void {
   switch (e.currentTarget) {
    case my_btn_size :
     my_TextFormat.size = my_btn_size.selectedItem.data;
     break;
    case my_Col :
     my_TextFormat.color = my_Col.selectedColor;
     break;
    case my_btn_font :
     my_TextFormat.font = my_btn_font.selectedLabel;
     break;
   }
   my_text.setTextFormat(my_TextFormat, my_Beginfocus, my_Endfocus);
  }
  //加粗按钮跟倾斜按钮的元件,有一个鼠标滑过效果
  private function changeCurrent(e:MouseEvent):void {
   MovieClip(e.currentTarget).gotoAndStop(1);
  }
  private function changeNext(e:MouseEvent):void {
   MovieClip(e.currentTarget).gotoAndStop(2);
  }
  //显示输入文本框
  private function _showTextField():void {
   my_text.x=35;
   my_text.y=50;
   my_text.width=470;
   my_text.height=330;
   //输入文本类型
   my_text.type=TextFieldType.INPUT;
   my_text.text="欢迎光临淘沙网 http://www.taoshaw.com ";
   my_text.border=true;
   //自动换行
   my_text.wordWrap=true;
   //多行文本
   my_text.multiline=true;
   my_text.borderColor = 0xcccccc;
   my_text.addEventListener(MouseEvent.CLICK,_getjiaodian);
  }
  //获取选择文本
  private function _getjiaodian(e:MouseEvent):void {
   my_Beginfocus=my_text.selectionBeginIndex;
   my_Endfocus=my_text.selectionEndIndex;
  }
}
}

时间: 2024-12-30 18:17:21

AS3 FLASH文本编辑器的相关文章

[AS3]Flash与后台数据交换四种方法整理【转】

随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法. 1.URLLoader(URLStream) 2.FlashRemoting 3.XMLSocket(Socket)  4.FMS/FCS 一.URLLoader(URLStream)篇 URLStream和URLLoader中URLLoaderDataFormat.BINARY类似,它提供对下载 URL 的低级访问方式,我在此不再重复了,有兴趣的,可以看Flash帮助中URLStr

CKEditor v3.5.3发布 开源的HTML文本编辑器

这个开源的HTML文本编辑器可以让Web程序拥有如MS Word这样强大的编辑功能.FCKeditor支持当前流行的浏览器如IE,Firefox,Netscape,Opera等.在线网页编辑插件(用浏览器编辑后所见即所得),支持多种平台下的脚本(asp aspx php cfm Dhtml htc),还集成了上传图片组件,含简.繁中文. CKEditor 3.5.3更新日志如下: New features: #4890 : Added the possibility to edit the re

ASP.NET配置KindEditor文本编辑器图文教程_实用技巧

1.什么是KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框. KindEditor 使用 JavaScript 编写,可以无缝地与 Java..NET.PHP.ASP 等程序集成,比较适合在 CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使用. 2.前期准备 到官网下载最新版的KindEditor 4.11

YII中Ueditor富文本编辑器文件和图片上传的配置图文教程

将Ueditor集成到YII框架中后,参照editor_config.js中的toolbars中的内容,更改options中标签可以给编辑器添加想要的功能: 因此要想添加文件和图片上传功能,应该加入以下两个标签: 文本编辑器中便出现了对应的两个选项: 但是点击上传图片按钮后发现,无法正常进行图片上传,文件上传也是失败的,问题都是Flash Player需要升级, 因此在火狐浏览器中安装对应的flash player组件,选择其中一个工作: 此时,文件上传和图片上传功能就能正常使用了: 上传路径的

简单文本编辑器

v一.前言 聚天地之灵气,集日月之精华!一个简单的java文本编辑器由此而生.毕设所需,很是无奈! v二.界面预览      v三.实现思路 v 1.字体选择器的实现 (1).字体类 class MyFont{ private Font font; private Color color; public Font getFont() { return font; } public void setFont(Font font) { this.font = font; } public Color

为网页设计师而生的14个文本编辑器

  可视化的工具的易用性通常非常优异,因为它更符合人们交互和操作的自然逻辑.不过,要精准控制网页和程序,你总需要一款称心如意的文本编辑器来帮你搞定代码,哪怕是视觉至上的Adobe都会在Master套装里面保留Dreamweaver. 的确,从某种程度上来说,文本编辑器看起来没有可视化程序那么高大上,但是多年以来网页开发的方式和基本流程都没有本质上的改变,因此网页开发也无法和文本编辑器割裂开来.热爱文本编辑器的开发者和设计师都很清楚,一个得心应手的文本编辑器不仅高效而且具备良好的可控性,助力设计,

用CSS格式化Flash文本

css     flashMX2004一个新的功能就是能加载外部的CSS文件并使之应用到flash文本, 现在有一个新的类(类?因为新的ActionScript2是基于类的脚本语言):TextField.StyleSheet class,就是这个类的几个方法使我们能象给HTML定义CSS一样来格式化flash文本,比如字体大小,颜色,位置等等.以后我们要改变flash文本的样式就只要修改外部的CSS文件而不必再到FLA文件中修改了.在开始之前需要确定你安装了flashMX2004并懂点HTML的

如何用C#编写文本编辑器

  如何用C#编写文本编辑器[2005-8-24版]        南京千里独行2005版权所有,不限转载,请保留版权声明 摘要    本文探讨了使用C#从底层开发一个带格式的文本编辑器的任务,深入探讨了其中的文档对象模型的设计,图形化用户界面的处理和用户操作的响应,说明了其中的某些技术问题和解决之道. 前言     小弟从大学里开始接触编程也有6年了,工作4年也是干编程的活,见过不少程序,自己也编过不少,在学校编程自己觉得是搞艺术品,其实玩一些游戏,比如文明法老王星际等从某些角度看也是搞艺术品

Qt的文本编辑器(下)

紧接着我们的上一篇博文Qt之文本编辑器(上)我们继续我哦们的文本编辑器之旅. void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(s