Flex及AS3的百多条小知识.docx
- 文档编号:10407775
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:14
- 大小:29.94KB
Flex及AS3的百多条小知识.docx
《Flex及AS3的百多条小知识.docx》由会员分享,可在线阅读,更多相关《Flex及AS3的百多条小知识.docx(14页珍藏版)》请在冰豆网上搜索。
Flex及AS3的百多条小知识
Flex及AS3的百多条小知识【转】
本帖最后由dqyd于2011-4-1220:
10编辑
今天突然看到了这些小知识,自己也想收集下来,没事也可以看看。
可能有些小知识,自己还没掌握。
所以就贴到这同大家一起分享!
【从显示清单中移除项目】
1.removeChild(child:
DisplayObject)
2.removeChildAt(index:
int)
3.index:
要删除的DisplayObject的子索引,该子项之上的任何显示对象的索引位置都减去1.
4.如果想移除窗口所有子元件,可以结合removeChildAt(),numChildren属性以及for循环.因为每次一个子元件被移除时,索引位置都会变化,所以,有两种方法可以处理所有子元件的移除:
5.1.总是移除位置0的子元件;
6.2.倒过来移除子元件,也就是从尾端开始.
复制代码
【更改现有子项在显示对象容器中的位置】
1.setChildIndex(child:
DisplayObject,index:
int):
void
2.可能用到的方法:
3.返回DisplayObject的child实例的索引位置:
getChildIndex(child:
DisplayObject):
int
4.返回位于指定索引处的子显示对象实例:
getChildAt(index:
int):
DisplayObject
5.注意:
当子元件移到低于它现在所在位置的索引时,那么,从标的索引起,直到子元件索引前面的那个索引的所有子元件都会令其索引增加1,而该子元件就会指定至标的索引.当子元件移到较高索引时,从该子元件索引之上的那个索引起,直到标的索引的所有子元件都会令其索引往下减1,而该子元件就会指定至标的索引值.
复制代码
【关于TextField以垂直方式把文字摆在按钮表面中心点的小技巧】
textField.y=(_height-textField.textHeight)/2;
textField.y-=2;//减2个像素以调整偏移量
【外部.swf影片载入和互动】
1.监听init事件;
2.透过content属性存取所载入的影片.
当所载入的影片做好足够的初始化工作,使其方法和属性可以接受互动时,init事件就会被发起.只有在载入器发起init事件后,才能控制影片.所载入的影片还没初始化就试着与它互动,是会产生执行期间错误的.
_loader.contentLoaderInfo.addEventListener(Event.INIT,handleInit);//当载入的.swf的属性和方法可用时
_loader.load(newURLRequest("ExternalMovie.swf"));
privatefunctionhandleInit(event:
Event):
void{
varmovie:
*=_loader.content;
trace(movie.getColor());
movie.setColor(0xFF0000);
}
【TextField有两种类型:
动态(dynamic)和输入(input),默认值为动态.改变TextField类型方法】
field.type=TextFieldType.INPUT;//selectable属性默认值为true
flash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC
【过滤文字输入】
TextField.restrict="此处为可输入的内容";
field.restrict="^此处为禁止输入的内容";
restrict属性支持一些类似正则表达式的样式:
field.restrict="a-zA-z";//只允许大小字母
field.restrict="a-zA-z";//只允许字母和空格
field.restrict="0-9";//只允许数字
field.restrict="^abcdefg";//除了小写字母abcdefg不允许外,其它都允许
field.restrict="^a-z";//所有小写字母都不允许,但是,其它内容都允许,包括大写字母
field.restrict="0-9^5";//只允许数字,但5例外
让restrict字符包含具有特殊意义的字母(例如-和^):
field.restrict="0-9\\-";//允许数字和破折号
field.restrict="0-9\\^";//允许数字和^
field.restrict="0-9\\\\";//允许数字和反斜杠
你也可以使用Unicode转义序列,指定允许的内容.例如:
field.restrict="^\u001A";
注意:
ActionScript有区分大小写的,如果restrict属性设为abc,允许字母的大写形式(A,B和C)输入时会变成小写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中.
【设定输入框的最大长度】
TextField.maxChars:
int
【向TextField追加内容】
TextField.appendText(text:
String):
void
与通过对text属性使用加法赋值来连接两个字符串(例如field.text+=moreText)相比,此方法的效率更高.
【显示HTML格式的文字】
TextField.htmlText="Htmltext";
支持的HTML标签集有:
,,,(有face,size以及color属性), 【缩减空白】 TextField.condenseWhite=true; 删除具有HTML文本的文本字段中的额外空白(空格,换行符等),如同多数HTML浏览器所做的那样. 注意: 在设置htmlText属性之前设置condenseWhite属性 【自动大小调整和对齐】 TextField.autoSize=TextFieldAutoSize.LEFT; 可选之值: flash.text.TextFieldAutoSize.CENTER flash.text.TextFieldAutoSize.LEFT flash.text.TextFieldAutoSize.NONE flash.text.TextFieldAutoSize.RIGHT 【指示文本字段是否自动换行】 TextField.wordWrap=true;//自动换行 【用程序手段滚动文字】 水平方向以像素为单位,而垂直方向以行做单位: scrollV: 指出文字框可见区域的最顶行,可读写; bottomScrollV: 指出文字框内最底端可见行,只读; maxScrollV: scrollV的最大值,只读; numLines: 定义多行文本字段中的文本行数,只读; TextField.scrollV=field.maxScrollV;//滚动到最后一页 【响应滚动事件】 field.addEventListener(Event.SCROLL,onTextScroll); 【样式化文字的方法】 1.使用HTML标签进行样式化; 2.使用TextFormat对象; 3.使用CSS. 例如: HTML是用标签,TextFormat对象是设定font属性,而CSS是使用font-family属性的. 受支持的层叠样式表(CSS)属性和值,及其相应的ActionScript属性名称(小括号内): color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent) 受支持的HTML实体: <(小于号: <),>(大于号: >),&(和: &),"(双引号: "),'(撇号,单引号: ') 其中样式对象的两种写法: 写法一: varsampleStyle: Object=newObject(); sampleStyle.color="#FFFFFF"; sampleStyle.textAlign="center"; css.setStyle(".sample",sampleStyle); 写法二: varsampleStyle: Object={color: "#FFFFFF",textAlign: "center"}; css.setStyle(".sample",sampleStyle); 【对用户输入的文字进行样式化】 使用defaultTextFormat属性,样式会施加至用户键入输入框的文字身上: varformatter: TextFormat=newTextFormat(); formatter.color=0x0000FF;//把文字变成蓝色 field.defaultTextFormat=formatter; 【对现有文字的一部分进行样式化】 TextFormat.setTextFormat(format: TextFormat,beginIndex: int=-1,endIndex: int=-1): void 【设定文字框的字体】 例子: HTML: field.htmlText="
,,
TextFormat:
formatter.font="Arial";
CSS:
P{font-family:
Arial;}
也可以使用以逗号隔开的字体清单:
formatter.font="Arial,Verdana,Helvetica";
注意:
字体和字体群组不同.字体群组有三种:
_sans,_serif以及_typewriter.
_sans群组一般就是指Arial或Helvetica这种字体;
_serif群组一般就是指Times或TimesNewRoman这种字体;
_typewriter群组一般就是指Courier或CourierNew这种字体.
【嵌入字体】
使用[Embed]后设标签.[Embed]后设标签应该出现在ActionScript文件中,处于类宣告之外.你可以内嵌TrueType字体或系统字体.内嵌TrueType字体时的语法:
[Embed(source="pathToTtfFile",fontName="FontName",mimeType="application/x-font-truetype")]
pathToTtfFile:
ttf文件的路径,TrueType字体的路径可以是相对的,也可以是绝对的;
FontName:
字体名称;
内嵌系统字体的语法:
[Embed(systemFont="TimesNewRoman",fontName="TimesNewRoman",mimeType="application/x-font-truetype")]
fontName:
以相同名称作为实际系统字体名称.
注意:
在使用嵌入字体时,要把TextField的embedFonts属性设为true,这样TextField只能用内嵌字体了.如果你试着替embedFonts设为true的TextField使用设备字体,什么都不会显示.如果embedFonts设为true,就无法指定以逗号相隔的字体清单.
【建立可以旋转的文字】
使用内嵌字体.当你旋转文字框时,设备字体就会消失.
【显示Unicode文字】
1.从外部来源载入Unicode文字;
2.假如你的编辑器支持Unicode(如FlexBuilder),则可以直接在ActionScript程序中使用该字符;
3.使用Unicode转义字符,ActionScript里所有Unicode转义字符都以\u开头,后面再跟四位十六进制数字.
注意:
如果你想取得Unicode字符,在Windows下使用:
开始>所有程序>附件>系统工具>字符映射表.
【把FlashPlayer的焦点带给文字框】
stage.focus=field;
把焦点移除:
stage.focus=null;
注意:
当.swf文件首次载入至网页浏览器时,并没有焦点.因此,以程序的方式把焦点指定给Flash应用程序的一个元素前,必须先把焦点移至FlashPlayer.
【以ActionScript选取文字】
使用TextField.setSelection(beginIndex:
int,endIndex:
int):
void
为了可以正常选取文字,文字框必须具有焦点:
stage.focus=field;//把焦点设给文字框
field.text="Thisisexampletext";//设定文字
field.setSelection(0,4);//把"This"这个单词以高亮显示
使用只读的selectionBeginIndex和selectionEndIndex属性访问所选取的字符范围的索引.
【在文字内设定安插点(游标位置)并访问游标位置的索引值】
可以使用TextField.setSelection()把起始和结尾的索引参数都设成相同值,在文字内设定游标位置(假设具有焦点):
field.setSelection(0,0);//在第一个字符前摆放安插点
trace(field.caretIndex);//输出游标位置的索引值
【新增属性】
varexample:
XML=
example.element="";
example.element.@name="Youthoy";
example.element.@["bad-variable-name"]="yes";
example.element.@other=["",undefined,true,44,null];
varid:
int=44;
example.element.@["user"+id]="love";
trace(example);
/*
输出:
*/
【向XML插入文字元素和节点元素】
//在指定元素前和后插入,在最前端和尾端插入
varexample:
XML=
example.two="";
example.insertChildBefore(example.two,
example.insertChildBefore(example.two,"在two节点前插入文字");
example.insertChildAfter(example.two,
example.prependChild(
example.appendChild(
example.start="start内容";//向节点增加内容
trace(example);
/*
输出:
在two节点前插入文字
*/
【把XML实例的内容属性转换为任何可以转换成字符串的内容】
//先把等号右边转为可以转换的字符串
varexample:
XML=
example.one="one";
example.two=newURLLoader();
example.three=newSprite();
example.four=newBoolean;//Boolean对象的值初始化为false
example.five=newNumber();
example.six=newString();
example.seven={a:
"Youthoy",b:
true,c:
undefined};
example.eight=["three",undefined,true,44,null];
/*
输出:
*/
【对XML属性层层递归的算法】
varexample:
XML=
;walk(example);
functionwalk(node:
XML):
void{
foreach(varelement:
XMLinnode.elements()){
trace(element.@label);
walk(element);
}
【读取文字节点及其值】
varexample:
XML=
;example.text();//输出:
MynameisYouthoy.
example.myName.toXMLString();//输出:
//以下三行都输出:
Youthoy
example.myName.toString();
example.myName.text();
example.myName;
【递归元素属性时读取属性名与其值】
varexample:
XML=
foreach(vari:
XMLinexample.attributes()){
trace(i.name()+"="+i);
}
/*
输出:
name=Youthoy
age=21
*/
另类方法:
varexample:
XML=
trace(example.@*[1]);//输出:
21
【不论层级地访问整个XML中指定的节点或属性】
使用后代存取器运算符..
例子1(对于节点元素):
varexample:
;
trace(example..z.text());//输出:
Iamz.Iamz.
例子2(对于属性):
varexample:
XML=
trace(example..@name);//输出:
YouthoyJimpa
【删除节点元素,文字节点以及属性】
使用delete对单一项进行删除,要删除整个XMLList可以使用for循环以倒序形式进行删除,以避免迭代时需要改变数组索引问题.
【搜索XML的高级应用】
使用术语过滤.(condition),可结合正则表达式来使用.
例子:
varexample:
XML=
ear
otato
;
trace(example..*.(hasOwnProperty("@color")&&@color=="red"));
/*
hasOwnPropert
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flex AS3 百多条小 知识