星之韵

 

ActionScript3.0(2)语法篇

1.类和对象

  1.1 所有的类都派生于Object;Object的对象是无类型变量。

  1.2 property 声明属性

    a. const 声明常量

    b. var    声明变量

    c. get/set 定义getter/setter属性

  1.3 function 声明方法

 

2.包(package)和命名空间(namespace)

  2.1 AS3.0支持除了把类放在包的顶级,还可以把变量、函数放在包的顶级。

  2.2 包的顶级只允许两个访问符:public [包外部可以访问] /internal[仅能包内部访问]。

  2.3 AS3.0不支持嵌套类和私有类。

  ------------------------------------

  2.4 如果类成员函数和成员变量不以命名空间开头,则默认的命名空间为internal。

  2.5 命名空间的定义。

    namespace 命名空间名;

    例:namespace MyNameSpace;

  2.6 类成员函数或成员变量的命名空间的声明。

    命名空间名 类成员函数或者成员变量的声明。

    例: MyNameSpace function Myfun(){};

  2.7 命名空间的使用。

    use 命名空间名;

    或者

    命名空间名::命名空间内的变量后者函数

    例:

    use MyNameSpace;

    Myfun();

    或

    MyNameSpace::Myfun();

  2.8 命名空间的成员必须是函数、变量、常量,不能是类。

  

【个人感觉,包更像是物理概念,命名空间像是一个特殊的类】

 

3. 变量

  3.1 变量的声明

    var n:int =10 ;

    var numArr:Array=[1,2,3];

    var myob:MyClass=new MyClass();

  3.2 变量的作用域

    全局变量 && 局部变量 根据声明的位置不同而不同。

  3.3 变量默认值

    int/uint         0

    Boolean    false

    Object/String  null

    Number     NaN

    *        undefined

  3.4 数据类型

    Number/int/uint/Boolean/String/Array/Date/

    Error/Function/RegExp/XML/XMLList

  3.5 执行时期的类型检查

    3.5.1 is 

    if(UnknowType is String){

    }

    else if(UnknowType is Number){

    }

    3.5.2 as   返回类型的值,若不是,则返回null

    var mystr : String = "test";

    if(mystr is string)

    {

      trace(mystr is Number);   //False

      trace(mystr as String);    //String

      trace(mystr as Number);   //null

    }

 

4. 动态类

  dynamic 声明;

  dynamic class myDynamicClass

  {

    public var str1:String="1";

  }

  动态类运行期间可以增加或者修改属性或者方法的类;和密封类相对应。

  例如:

  var mdc:myDynamicClass=new myDynamicClass();//创建动态类

  mdc.aString="abc";                //动态添加属性

  mdc.aFun=function(){ trace("test");}       //动态添加函数

5. 强制类型转化

  要转化的类型(要转化的对象)

6. 控制语句

  基本与c++相同

  特殊的:

  6.1 for (... in ...){}

    例如:

     var arrNum : Array =[1,2,3];

     for(var i :int in arrNum)

     {

       trace(arrNum[i]);

     }

  6.2 for each (... in  ...){}

    例如:

     var arrNum : Array =[1,2,3];

     for(var i :int in arrNum)

     {

       trace(i);

     }

7. 函数

  a. 声明

    var myFun:function=function(参数列表){函数实现}

    function 函数名(参数列表){}

  b. 删除函数指针

    delete myFun;

  c. 函数可以嵌套

   function GetString():String

   {

      function GetStr1():String

      {

        return "ABC";

      }

      return GetStr1()+"EFG";

         }

   trace(GetString());//ABCEDFG

  d.函数参数

    a.基本数据类型按照值传递,其他按照引用传递

    b.基本数据类型:Boolean、Number、int、uint、String

    c.默认参数值: 参数:参数类型=默认参数值

    d.参数可以大于函数已经定义的参数数量,可以通过arguments数组来访问。

    例如:  function TraceArray(int x)

         {

           for(var i:int =0;i<arguments.Length;i++)

             trace(arguments[i]);

         }

       arguments.Length  参数的个数

       arguments.callee    函数本身的指针

    e. ...(rest)参数 可变参数

    例如:     function TraceArray(...args)

         {

           for(var i:int =0;i<args.Length;i++)

           {

             trace(args[i]);
           }

         }

 

 

 

 

 

posted on 2010-04-22 15:07  星之韵  阅读(819)  评论(0)    收藏  举报

导航