AS学习笔记(1)

本笔记只为记录个人学习历程,和一些刚开始学AS3的盆友分享本人的学习内容和经验。高手勿笑

 


首先看一下 AS3中的数据类型

  基元数据类型:Boolean ,int ,Number ,uint ,String

  复杂数据类型:Array ,Date ,Error ,Function ,RegExp ,XML,XMLList,自定义的类
  

变量

 


  变量的声明:
        var 变量名:数据类型;   //声明变量未赋值,将使用默认值
        var 变量名:数据类型=值;
                -----------------------------------------------
        var num1:int=30;
        var string:String="hello world!";
        var utype;   //声明变量,未指定类型,默认为untyped
        var utype2:*; //等同于  var utype;
 
  变量的本质:  在AS3中,所有数据都是对象。是通过变量来操纵对象。变量持有引用,而引用则指向要操作的对象。


 AS3中,变量本身是不能持有值的。值类型变量持有的是指向值类型数据的引用,引用类型持有的是指向引用类型数据的引用。不论是值类型数据还是引用类型数据,本质都是对象。


值类型是一种特殊的对象,叫做不变对象
那么什么叫做不变对象呢?顾名思义,一旦被建立后,就不能被更改。有些操作似乎看起来是要更改了不变对象的内容,但实际上不是。一旦虚拟机发现指向一个不变对象的引用要改变该不变对象的值,就会另行创建一个不变对象来接受这个值,下面看一个例子:


      var number:int=1;
      number=number+2;

      第一行代码创建一个int类型的不变对象A出来,值为1,并赋给了变量number。第二行把变量number加上2,改变了number的值,但是不变对象A并没有改变,而是创建了一个不变对象B,并赋值为3。然后不变对象B的引用被赋给了number。由于不变对象A不在被使用,就会被AVM(ActionScript 虚拟机)自动回收。这就是不变对象工作原理的一个示范。


 那么为什么要使用不便对象,而不采用直接存值的方式呢?

  第一:将元数据类型用不变对象的方法来实现,使得引用的效率和传值一样高。

  第二:由于变量持有引用,可以使不变对象重复使用。
 

 


流程控制

 


if-else语句
    var num1:int=10; 

      var num2:int =20;  

    if(num1>num2){   

       return "num1>num2";    

    }   

    else {    

      return "num1<=num2";   

     }
 
循环:for,while,do-while,switch语法基本通用,这里不赘述了,下面看几个AS3中的特殊的用法。


  for...in
    var book:Object={           

       dotnet:"asp.net开发大全",          

       php:"PHP高级编程"               

     };         

   var bookName:String="";       

   for(var b in book){           

      bookName+= "key->"+b+"\tvalue->"+book[b]+"\n";  //说明可以用 变量名["key值"]来获取"key值"对应的值           

   }        

   return bookName;


for each..in
    var book:Object={        

      dotnet:"asp.net开发大全",      

      php:"PHP高级编程"            

    };      

    var bookName:String="";     

    for each(var b in book){     

        bo+="value->"+b+"\n";          

    }     

     return bookName;

 

 


  这次就写这么多了,下次准备说说AS3中的函数和函数的应用

 


 

posted @ 2011-09-26 14:42  高捍得  阅读(218)  评论(0编辑  收藏  举报