快速业务通道

Cftextarea打造丰富文本框

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-08

Asfusion的例子大概大家都看过,那么关于用textarea来打造的rich text不知道大家是否完整的玩过,可以先看下asfusion的这个例子,这几天一直在考虑来做这样的应用,苦于在as脚本方面功力尚且不够,所以一直在一个关键的问题上打圈子,今天不知道是不是状态好,还是怎么样,终于有点眉目了。
ok,讲讲设计的过程吧,主要的控制在于两个函数,一个是setformat,一个是getformat,按照字面意思你们大概就可以猜到,在点选图片的时候用onclick事件将所需参数传回setformat(),对textarea框中的value属性进行样式的读写,而在textarea框中透过onchange()和onMouseup()透过getformat()函数对其进行样式设定的获取。
更改textarea中的格式 <cfinputtype="img"src="图片地址"onclick="#setFormat()#"> 获取更改后的格式 <cftextareaonMouseUp="#getFormat(attributes.name)#;"onChange="#attributes.onChange#;">
getformat的函数是这样设定的:
varsStart=Selection.getBeginIndex();
varsEnd=Selection.getEndIndex();
if(sStart!=sEnd){
_global.currentTextFormat=#name#.label.getTextFormat(sStart,sEnd);
//作回圈去判断select框中的属性,针对属性设定
for(vara=0;a<#name#_font_select.dataProvider.length;a++){
if(#name#_font_select.dataProvider[a].label==_global.currentTextFormat.font)
#name#_font_select.selectedIndex=a;//字体样式设定
}
for(vara=0;a<#name#_size_select.dataProvider.length;a++){
if(int(#name#_size_select.dataProvider[a].label)==int(_global.currentTextFormat.size))
#name#_size_select.selectedIndex=a;//字体大小设定
}
for(vara=0;a<#name#_color_select.dataProvider.length;a++){
if(Number(_global.currentTextFormat.color).toString(16)==Number(#name#_color_select.dataProvider[a].data).toString(16)){
#name#_color_select.selectedIndex=a;//字体颜色设定
}
}
} 同样的思路,setformat()的过程也是大同小异,透过startindex和endindex去判读这个框中的内容区域,对其onclick触发的事件进行设定相关取值 if(’#mType#’==’font’||’#mType#’==’size’||’#mType#’==’color’){
varsStart=_global.sStart;
varsEnd=_global.sEnd;
}
else{
varsStart=Selection[’lastBeginIndex’];
varsEnd=Selection[’lastEndIndex’];
}
_global.currentTextFormat=#contentField#.getTextFormat(sStart,sEnd);
if(sStart!=sEnd&&_global.currentTextFormat.#mType#!=true){
if(’#mType#’==’font’||’#mType#’==’size’||’#mType#’==’color’)
_global.currentTextFormat.#mType#=_root.#mValue#.selectedItem.data;
else
_global.currentTextFormat.#mType#=’#mValue#’;
}
else_global.currentTextFormat.#mType#=false;
#contentField#.setTextFormat(sStart,sEnd,_global.currentTextFormat);
#contentField#._parent.dispatchEvent({type:’change’});
if(!(’#mType#’==’font’||’#mType#’==’size’||’#mType#’==’color’)){
Selection.setFocus(’#contentField#’);
Selection.setSelection(sStart,sEnd);
} 好了,一口气介绍完毕,这个demo我后来修改成了自定义的tag,我想这个对你们的调用更有好处,原始思路出处要感谢asfusion的那个强大的textarea框。
大家可以点击richtextarea.rar
下载运行
title 关键词:文本 文本框

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号