`

AS3.0编程的100个小技巧(4)数组和文本框

 
阅读更多
【向数组尾端添加元素】

var array:Array = new Array();

array.push("a", "b");

//向数组尾端添加单一元素也可以这样:

array[array.length] = "c";

//如果以索引设定的元素不存在,数组本身会自动扩展以包含足够的元素数目.介于中间的元素会被设为undefined:

array[5] = "e";

trace(array[4]); //输出: undefined

 
【向数组开端添加元素】

var array:Array = ["a", "b"];

array.unshift("c", "d");

trace(array); //输出: c,d,a,b

 
【删除数组中第一个元素并返回该元素,使用shift()方法】

var letters:Array = new Array("a", "b", "c");

var firstLetter:String = letters.shift();

trace(letters); //输出: b,c

trace(firstLetter); //输出: a

 
【删除数组中最后一个元素并返回该元素的值,使用pop()方法】

var letters:Array = new Array("a", "b", "c");

trace(letters); //输出: a,b,c

var letter:String = letters.pop();

trace(letters); //输出: a,b

trace(letter); //输出: c

 
【删除数组中的元素,给数组添加新元素并返回删除的元素,使用splice()方法】

splice(startIndex:int, deleteCount:uint, ... values):Array

startIndex: 一个整数,它指定数组中开始进行插入或删除的位置处的元素的索引;

deleteCount: 一个整数,它指定要删除的元素数量;

... values: 用逗号分隔的一个或多个值的可选列表或数组,此列表或数组将插入到此数组中由 startIndex 参数指定的位置.

 
【查找数组中第一个相匹配的元素】

var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];

var match:String = "b";

for(var i:int = 0; i < array.length; i++) {

    if(array[i] == match) {

        trace("Element with index " + i + " found to match " + match);

        //输出: Element with index 1 found to match b

        break;

    }

}

 
【查找数组中最后一个相匹配的元素】

var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];

var match:String = "b";

for(var i:int = array.length - 1; i >= 0; i--) {

    if(array[i] == match) {

        trace("Element with index " + i + " found to match " + match);

        //输出: Element with index 5 found to match b

        break;

    }

}

 
【把字符串转成数组】

使用String.split()方法:

var list:String = "I am YoungBoy.";

var words:Array = list.split(" "); //以空格作为分隔符将字符串切割

trace(words); //输出: I,am,YoungBoy.

 
【把数组转成字符串】

使用String.join()方法:

var myArr:Array = new Array("one", "two", "three");

var myStr:String = myArr.join(" and ");

trace(myArr); //输出: one,two,three

trace(myStr); //输出: one and two and three

 
【使用对象数组处理相关数据】

var cars:Array = new Array();

cars.push({make:"Mike", year:1997, color:"blue"});

cars.push({make:"Kelly", year:1986, color:"red"});

for(var i:int = 0; i < cars.length; i++) {

    trace(cars[i].make + " - " + cars[i].year + " - " + cars[i].color);

}

//输出:

//     Mike - 1997 - blue

//     Kelly - 1986 - red

 
【在数组中获取最小或最大值】

var scores:Array = [10, 4, 15, 8];

scores.sort(Array.NUMERIC);

trace("Minimum: " + scores[0]);

trace("Maximum: " + scores[scores.length - 1]);

 
【使用for ... in语句读取关联数组元素】

var myObject:Object = new Object();

myObject.name = "YoungBoy";

myObject.age = 20;

for(var i:String in myObject) {

    trace(i + ": " + myObject[i]);

}

//输出: name: YoungBoy

//      age: 20

注意: for ... in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内.

 
【AVM(ActionScript Virtual Machine,虚拟机)和渲染引擎(Rendering Engine)】

AVM负责执行ActionScript程序,而渲染引擎则是把对象绘制在显示器上.

 
【指出容器的显示清单中有多少显示对象】

每个容器都有numChildren属性.

 
【把项目新增至显示清单】

addChild(child:DisplayObject)

addChildAt(child:DisplayObject, index:int)

index: 添加该子项的索引位置.如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置.

 
【从显示清单中移除项目】

removeChild(child:DisplayObject)

removeChildAt(index:int)

index: 要删除的 DisplayObject 的子索引,该子项之上的任何显示对象的索引位置都减去1.

如果想移除窗口所有子元件,可以结合removeChildAt(),numChildren属性以及for循环.因为每次一个子元件被移除时,索引位置都会变化,所以,有两种方法可以处理所有子元件的移除:

1. 总是移除位置0的子元件;

2. 倒过来移除子元件,也就是从尾端开始.

 
【更改现有子项在显示对象容器中的位置】

setChildIndex(child:DisplayObject, index:int):void

可能用到的方法:

返回 DisplayObject 的 child 实例的索引位置: getChildIndex(child:DisplayObject):int

返回位于指定索引处的子显示对象实例: getChildAt(index:int):DisplayObject

注意: 当子元件移到低于它现在所在位置的索引时,那么,从标的索引起,直到子元件索引前面的那个索引的所有子元件都会令其索引增加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(new URLRequest("ExternalMovie.swf"));

private function handleInit(event:Event):void {

    var movie:* = _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 = "<b>Html text</b>";

支持的HTML标签集有: <b>,<i>,<u>,<font>(有face,size以及color属性),<p>,<br>,<a>,<li>,<img>以及<textformat>(有leftmargin,rightmargin,blockindent,indent,leading以及tabstops属性,相应于TextFormat类的同名属性)

 
【缩减空白】

TextField.condenseWhite = true;

删除具有HTML文本的文本字段中的额外空白(空格,换行符等),如同多数HTML浏览器所做的那样.

注意: 在设置 htmlText 属性之前设置 condenseWhite 属性

分享到:
评论

相关推荐

    Flash9下as3.0编程的aswing包

    这对于学习AS3.0的高级特性和提高编程技巧非常有帮助。 在ASwing_a3_1.2_fl这个文件中,我们可以期待找到ASwing库的特定版本,可能包括类库文件、示例代码、文档或者其他相关资源。这些资源可以帮助开发者快速上手...

    flash AS3.0游戏

    在数字媒体和互动娱乐领域,Flash AS3.0作为一种强大的编程语言,为游戏开发者提供了丰富的工具和功能,使得游戏开发变得更加高效且具有表现力。本篇文章将深入剖析“太空战机36-赵来琴”这款使用AS3.0编写的游戏,...

    MXML和AS3.0编程的黄金组合

    **ActionScript 3.0** 是Flash Player和Adobe AIR支持的面向对象的编程语言,它是AS2.0的升级版,带来了显著的性能提升和现代编程语言特性,如类、包、命名空间和强类型。ActionScript 3.0是Flex应用程序的核心,...

    一个as3.0小游戏

    总的来说,这个AS3.0的声音接龙小游戏是一个综合性的项目,涉及到了AS3.0的多个核心概念和技术,对于初学者来说,不仅可以锻炼编程能力,还能提升对游戏开发流程的理解。通过对这个游戏的分析和实践,初学者能够逐步...

    AS3.0开发中常用语句汇总

    AS3.0(ActionScript 3.0)是Adobe Flash平台上的...以上就是AS3.0开发中常用的一些语句和技巧,它们涵盖了类属性、事件监听、动画控制、数组操作、跨平台通信等多个方面,对于AS3.0开发者来说是非常实用的基础知识。

    Flash 使用as3.0组件开发实用书籍、文档

    ActionScript 3.0(AS3)是Flash的一个重大更新,极大地提升了性能和编程效率,使其成为专业开发者的首选工具。本资源“Flash 使用as3.0组件开发实用书籍、文档”专注于讲解如何使用AS3.0进行组件开发,这对于想要...

    as 3.0读取XML

    本教程将详细介绍如何在AS 3.0中读取XML文件,并将其内容显示为数组,以及在文本框中展示每行文字。 首先,我们需要创建一个XML对象来加载XML文件。AS 3.0中的XML类提供了强大的功能来解析和操作XML文档。下面是...

    minigui V3.0编程指南(网页版)

    《MiniGUI V3.0编程指南》是一本深入讲解MiniGUI这一开源图形用户界面库的教材,主要针对V3.0版本进行了详细阐述。MiniGUI是专为嵌入式系统设计的一个轻量级图形库,它允许开发者在有限的硬件资源上创建功能丰富的...

    as3.0自定义文本框的提示组件

    在ActionScript 3.0(AS3)中,开发自定义UI组件是常见的需求,以满足特定项目的交互和视觉设计。本教程将深入探讨如何创建一个自定义的文本框提示组件,该组件在用户点击文本框后能显示相关提示信息。我们将主要...

    FlashCS4 AS3.0 中文帮助

    总之,《Flash CS4 AS3.0 中文帮助》是初学者和经验丰富的开发者的宝贵资料,它不仅提供详尽的API参考,还包含大量示例代码,帮助用户快速掌握ActionScript 3.0在Flash CS4中的应用。尽管它可能不是最新的版本,但对...

    flash脚本 AS3.0 动态修改文本框格式字体

    动态修改文本框格式字体 function pressbt(event:Event):void { if(flag) { T.htmlText=CN_CONTENT_S+"臺北公車站"+CN_CONTENT_E; TT.htmlText=CN_CONTENT_S+"臺北公車站"+CN_CONTENT_E; flag=false; } ...

    AS3.0猜数字游戏

    ### AS3.0猜数字游戏知识点解析 #### 一、项目概述 本项目是一个基于Adobe Flash平台...通过学习这个项目,开发者可以更好地理解AS3.0的基础语法和控件使用方法,同时也能够掌握如何构建一个基本的交互式游戏应用。

    flash 3.0汉诺塔:小游戏

    本教程将围绕如何使用Flash CS(可能是CS4或CS5)和AS 3.0编程实现汉诺塔小游戏进行详细讲解。 1. **ActionScript 3.0基础**: AS 3.0是Flash Professional中的主要编程语言,与之前的版本相比,它更加强大且高效...

    UI组件封装as3.0

    在编程领域,UI组件封装是提高代码复用性和效率的关键技术。AS3.0(ActionScript 3.0)作为Adobe Flash Platform的核心语言,广泛应用于交互式内容、网页动画以及富互联网应用程序(RIA)的开发。UI组件封装在AS3.0...

    AS3.0常用代码

    下面是 AS3.0 中的一些常用代码和技术点: 1. 按钮事件(新版) 在 AS3.0 中,按钮事件可以使用 `addEventListener` 方法来实现。首先,需要给按钮实例命名,例如 `bt1`。然后,在帧动作中,添加事件监听器 `bt1....

    Flash AS3.0制作心形文字

    首先,我们要明白AS3.0是ActionScript 3.0的缩写,它是Adobe Flash平台的主要编程语言,用于构建交互式内容,如网页游戏和动态图形。 在Flash AS3.0中,我们看到代码涉及到了文本框(TextField)的使用。TextField...

    flashAS3.0制作的时钟

    这是用flashAS3.0制作的.用创作工具制作一个钟面,用代码控制时针、分针、秒针,用动态文本框显示当前时间。

    精彩编程与编程技巧-隐藏文本框控件的环境菜单...

    综上所述,“精彩编程与编程技巧-隐藏文本框控件的环境菜单”不仅介绍了具体的编程技巧,还涉及到了GUI设计的多个方面。这对于初学者来说是非常宝贵的学习资源,同时也能够为有经验的开发者提供新的灵感和思路。

Global site tag (gtag.js) - Google Analytics