• ActionScript学习笔记


    ActionScript学习笔记

    ActionScript中预定义的数据类型:Boolean、int、Number、String、uint

    其中,int、Number、uint是处理数字的。int用来处理整数,Number用来处理很长又有小数点的数字,uint处理很大的正整数。

    复杂数据类型:Array、Date、Error、Function、RegExp、XML、XMLList

    自定义类属于复杂数据类型。

    public class AS_001 extends Sprite
    {
          public function AS_001()
          {
               var v1:int= 9;
               trace(v1);
               var v2:uint =10;//无符号数
               var v3:Boolean = true;
               var v4:Number = 4.5;
               var v5:String = "Helloworld";
               var v6:String = 'Hello world!!!';
               var v7:* =3;//任意数据类型
               trace(v7);
               v7 = "你好";
               trace(v7);
               var v8;
               trace(v8);//undefined
               var v9:String;
               trace(v9);//null
               var v10:Array = [2, 3, 4, 5];//数组
               trace(v10);
               var v11:Object = {id:3, username:"admin", password:"admin"};
               trace(v11.username);
          }
    }

    输出结果

    9

    3

    你好

    undefined

    null

    2,3,4,5

    admin

    public function my_function(){
          var v1:Array = ["a", "b", "c", "d", "e"];
          for(var i:String in v1){
               trace(i);
               trace(v1[i]);
          }
         
          for each(var propertyValue:String in v1){
               trace(propertyValue);
          }
         
          var v2:Object = {id:1, name:"admin", age:22};
          for(var i in v2){
               trace(i);
               trace(v2[i]);
          }
         
          for each(var propertyValue:String in v2){
               trace(propertyValue);
          }
          trace(v2["name"]);
    }
    public function my_function1(){
          var traceParameter:Function = function (aparam:String): void{
               trace(aparam);
          };
          traceParameter("hello");
         
          var traceArray:Array = new Array();
          traceArray[0] = function(aParam:String):void{
               trace(aParam);
          };
          traceArray[0]("Hello");
          f("admin");
          f1("admin1","admin2");
    }
     
    public function f(name:String = "zhangsan"):void{
          trace(name);//zhangsan是默认参数
    }
     
    public function f1(...args):void{
          trace(args.length);//可变参数
    }

    ActionScript面向对象

    新建ActionScript类Student.as

    package com.umgsai.as3
    {
          public class Student
          {
               private var _name:String = "zhangsan";
               public function Student()
               {
                    
               }
              
               public function set name(name:String):void{//set方法
                     this._name= name;
               }
               public function get name():String{//get方法
                     return this._name;
               }
          }
    }

    使用

    var s:Student = new Student();
    trace(s.name);//相当于调用 function get name(),输出zhangsan
    s.name = "admin";//相当于调用 function set name()
    trace(s.name);//输出admin

    ActionScript动态类

    新建Teacher类

    package com.umgsai.as3
    {
          public dynamic classTeacher
          {
               public function Teacher()
               {
               }
          }
    }

    使用

    var t:Teacher = new Teacher();//Teacher类是动态类
    t.f = function(){//动态添加f函数
          trace("f");
    }
    t.f();
    delete t.f;//删除f函数
    //         t.f();//此句会报错

    ActionScript接口使用

    IFlyable.as

    package com.umgsai.as3
    {
          public interface IFlyable//接口一般以I开头
          {
               function fly():void;//不写public之类的修饰符
          }
    }

    实现接口

    package com.umgsai.as3
    {
          public class T implements IFlyable
          {
               public function T()
               {
               }
              
               public function fly():void//实现接口方法
               {
                     trace("fly");
               }
          }
    }

    使用

    var tt:IFlyable  = new T();
    tt.fly();

    ActionScript异常处理

    try
    {
          throw new EOFError("error occurs");
    }
    catch(error:Error)
    {
          trace(error);
    }finally{
          trace("finnaly");
    }

    值类型int例子

    var a:int= 3;
    var b:int= a;
    b = 9;
    trace ("a=" + a);
    trace ("b=" + b);

    执行结果:

    a=3

    b=9

    引用类型例子。(类似C语言中的指针)

          vara:Array = new Array(1,2,3);
          varb:Array = a;
          b[0] = 4;
          trace("a:" + a);
          trace("b:" + b);

    执行结果:

    a:4,2,3

    b:4,2,3

    使用const声明常量

    const foo:int = 100;//不可以改变foo的值

    typeof、is、as

    trace(typeof 10);//Number
          trace(9 is Number);//true//as与is格式一致,内容不同。如果一个对象属于一种类型,那么as返回这个对象,否则返回null
          trace(9 asNumber);//输出9
          trace(9 as Array);//输出null

    in关键字

          var a:Array = ["a","b","c"];
          trace(2 in a);//true,数组a含有索引2
          trace(3 in a);//false,数组a没有索引为3的元素
         
          var b:Object = {ary:a, name:"OK"};
          trace("ary"in b);//true,b中有ary属性
          trace("name"in b);//true,b中有name属性
         
          var c:Dictionary = newDictionary();
          c[a] = "avalue";
          c[b] = "bvalue";
          trace(a in c);//true
          trace(b in c);//true

    两种函数定义方法

          private function fname():void
          {//函数语句定义法,推荐使用这种写法
               trace("Hello");
          }
         
          var testAdd:Function = function (a:int, b:int):int{
               //函数表达式定义法
               return a+b;
          }

    设置默认参数

          public function test(a:int = 3, b:int = 2, c:int = 1):void
          {
               trace(a+b+c,a, b, c); 
               trace("参数长度:" +arguments.length);     
          }
          test();//6 3 2 1 全部使用默认值
          test(9);//12 9 2 1 使用后两个参数的默认值
          test(2, 9);//12 2 9 1 使用最后一个参数的默认值
          test(1, 2, 3);//6 1 2 3 木有使用默认值

     


    本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1531596

  • 相关阅读:
    [HDOJ4788]Hard Disk Drive(水题)
    [HDOJ4782]Beautiful Soup(模拟)
    [HDOJ3652]B-Number(数位dp)
    [CF55D]Beautiful numbers(数位dp,状态压缩)
    [HDOJ3555]Bomb(数位DP)
    [HDOJ2089]不要62(数位DP)
    [HDOJ5881] Tea(找规律)
    [HDOJ5900]QSC and Master(区间dp)
    [HDOJ5878]I Count Two Three(暴力枚举,二分)
    [HDOJ5879]Cure(求极限,打表)
  • 原文地址:https://www.cnblogs.com/umgsai/p/3908077.html
Copyright © 2020-2023  润新知