0
点赞
收藏
分享

微信扫一扫

ActionScript3.0知识要点----核心类


22.Array 中splice 与slice

slice是截取元素组成新的数组,而不改变原有数组类型。新数组包括起点索引而不包括终点索引

 

var  a:Array = ["零",1, "two", "three", 4,"五"];
trace(a.splice(1,2,"one",2));   //将1,”two”,置换成one,2
trace(a.splice(-1,0,"four 5"))
trace(a);                 //零,one,two,three,4,four 5,五.。结构已改变
trace(a.slice(2,4));         //two,three  。组成新数组

23.Array 中concat与push 区别

 

var  a:Array = ["零",1, "two", "three", 4,"五"];
var  b1:int = 6;
var  b2:Array = [7,8,9];
 
var a1:Array = a.concat(b1,b2);
trace (a1);            //零,1,two,three,4,五,6,7,8,9  。生成新数组
trace (a1.length);      // 10
trace (a);              //原数组不变
trace("--------------");
a.push(b1,b2);
trace(a);               //零,1,two,three,4,五,6,7,8,9原数组已经改变
trace(a.length);        //8   。将b1,b2当成一个元素

24. Array 中,回调函数、forEach\every\filter\map\some

回调函数(callback):对数组中的每一项运行的函数

Exp1

//map用法:新生成一个数组,将原数组中的元素修改后添加到新数组
 
var arr:Array = new Array("one", "two", "Three");
      trace(arr);            // one,two,Three
 
      var upperArr:Array = arr.map(toUpper);
      trace(upperArr);       // ONE,TWO,THREE
       
      function toUpper(element:*, index:int, arr:Array):String {
      return String(element).toUpperCase();  //toUpperCase():小写改大写
}

Exp2

var s1:Object ={name:"古天乐",age:35};

var s2:Object ={name:"古天乐",age:25};

var s3:Object ={name:"傲天",age:23};

var starlist:Array  =[s1,s2,s3];

//every用法:

//用此方法可确定数组中的所有项是否满足某一条件.
//如果全是age>34岁的,则返回true
trace(starlist.every(oldmanList));
           
//判断是否都是34岁以上
function oldmanList(element:*, index:int, arr:Array):Boolean {
         if(element.age>34){
                   trace("第"+(index+1)+"仁兄,就太老了");
                   return false;
         }else{
        return true;
    }
}
//第1仁兄,就太老了
//false
 
//some用法:确定数组中的所有项是否满足条件.
//判断明星列表中是否有叫古天乐的
trace(starlist.some(isCool));  
 
function isCool(element:*, index:int, arr:Array):Boolean {
     if ( element.name == "古天乐")
          {
                    trace("天乐在哦,我爱你");
                    return true;
     }else{
                   trace("干,不在啊");
                   return false;
         }
}
//天乐在哦,我爱你
//true
 
//filter用法:对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回 true
//将明星列表starlist中有叫古天乐的元素提取出重新组成一个新数组newStarList
var newStarList = starlist.filter(isCool);
trace(newStarList[1].age);  //25
 
//forEach用法:对数组中的每一项执行函数。
newStarList.forEach(changeName);
 
function changeName(element:*, index:int, arr:Array):void {
         element.name = "小龙女";     //将元素中的name属性值改为”小龙女“;
}
for each(var i in newStarList){
         trace(i.name+"芳龄"+i.age);
}
//小龙女芳龄35
//小龙女芳龄25

25.charAt

()

与charCodeAt

()

方法

 

 

AS中并没有char类型,charCodeAt()返回指定index处的字符的数值 Unicode 字符代码

var str:String = "I love you,安妮";
for (var i:int = 0; i <str.length; i++)
{
         trace(str.charAt(i)+"   unicode:"+str.charCodeAt(i)+"\t");
}
trace(str.charAt(12));
var str1:String = String.fromCharCode(0x73);
trace(str1);
/*输出
I   unicode:73        
    unicode:32       
l   unicode:108      
o   unicode:111     
v   unicode:118     
e   unicode:101     
    unicode:32       
y   unicode:121     
o   unicode:111     
u   unicode:117     
,   unicode:44        
安   unicode:23433       
妮   unicode:22958       
妮
s
*/
 
26.slice\split\substr\substring
slice(startIndex:Number = 0, endIndex:Number = 0x7fffffff):String

返回一个字符串,该字符串包括从 startIndex 字符一直到 endIndex 字符(但不包括该字符)之间的所有字符。

split(delimiter:*, limit:Number = 0x7fffffff):Array

将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter 参数的位置进行拆分。

substr(startIndex:Number = 0, len:Number = 0x7fffffff):String

返回一个子字符串,该子字符串中的字符是通过从指定的 startIndex 开始,按照 len 指定的长度截取所得的。

substring(startIndex:Number = 0, endIndex:Number = 0x7fffffff):

返回一个字符串,其中包含由 startIndex 指定的字符和一直到 endIndex - 1 的所有字符。

27.多行输入应用(XML的CDATA)

建立一个只含有一个CDATA节点的临时XML,讲多行文本直接复制其中

var xml:XML=

<txt>

<![CDATA[

 My love my fate you will fade away

 以后隔天与地

 I love I hate I'll miss you always

 我永远亦爱你

]]>
</txt>
var str:String = xml.toString();
trace(str);
/*输出:
My love my fate you will fade away 
 以后隔天与地
 I love I hate I'll miss you always 
 我永远亦爱你
*/

28.正则表达式RegExp

flags:String —正则表达式的修饰符。其中包括:

g -- 使用 String 类的 replace() 方法时,指定此修饰符可替换所有匹配项,而不只替换第一个匹配项。此修饰符对应于 RegExp 实例的 global 属性

var re2:RegExp = /Bob/g;
var str = "Bob is a bad man ,is it Bob?";
var repStr = "Tom";
trace(str.replace(re2,repStr));     // Tom is a bad man ,is it Tom?

i --计算正则表达式时不区分大小写。此修饰符对应于 RegExp 实例的 ignoreCase 属性。

var re2:RegExp = /Bob/i;
var str = "bob is a bad man ,is it bob?";
var repStr = "Tom";
trace(str.replace(re2,repStr));   // Tom is a bad man ,is it bob?
s -- 点 (.) 字符与换行符相匹配。请注意,此修饰符对应于 RegExp 实例的 dotall 属性。
var str:String = "<p>Hello\n"+ "again</p>"+ "<p>Hello</p>";
var pattern:RegExp = /<p>.*?<\/p>/;
trace(pattern.dotall)          // false
trace(pattern.exec(str));        // <p>Hello</p>
 
pattern = /<p>.*?<\/p>/s;
trace(pattern.dotall)           // true
trace(pattern.exec(str));                            /*<p>Hello
again</p>
*/
m -- 尖号 (^) 字符和美元符号 ($) 在换行符之前和之后匹配。此修饰符对应于 RegExp 实例的 multiline 属性。
var pattern:RegExp = /^bob/; 
var str:String = "foo\n"
                + "bob";
trace(pattern.multiline);         // false
trace(pattern.exec(str));         // null
 
pattern = /^bob/m;
trace(pattern.multiline);           // true
trace(pattern.exec(str));           // bob

x -- 忽略 re 字符串中的空白字符,所以您可以编写更加易读的构造函数。此修饰符对应于 RegExp 实例的 extended 属性。

var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; 
var str:String = "The phone number is (415)555-1212.";
 
trace(rePhonePattern1.extended)                 // false
trace(rePhonePattern1.exec(str));                 // (415)555-1212
 
var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4}  |   \( \d{3} \) \ ? \d{3}-\d{4}  /x; 
trace(rePhonePattern2.extended)                  // true
trace(rePhonePattern2.exec(str));                 // (415)555-1212

 

匹配日期

Exp

var pattern:RegExp = /[0-3][0-9]\/[0-1][0-9]\/[0-2][0-9][0-9][0-9]/g; 
var str:String = "The date is 23/12/2009  or 23/11/2009 or 09/25/2009.";
 
trace(str.match(pattern));                   // 23/12/2009,23/11/2009

举报

相关推荐

0 条评论