1、ActionScript 3语法简介,对象与类,ActionScript中,每个对象都由类定义 ECMAScript标准的核心类 Flash的内置类 用户定义类,ECMAScript标准的核心类,编程语言的基本构造块 运行时类型 运行时异常 命名空间 正则表达式 新基础类 E4X,Flash的内置类,DOM3事件模型 显示列表(DisplayList) 动态数据的处理 低级数据的访问 文本处理,类与对象,Java 或 C+ 中,将对象视为包含以下两类成员的模块: 存储在成员变量或属性中的数据 通过方法访问的行为 在 ActionScript 3.0 中,对象只是属性的集合。 属性是容器,除了保
2、存数据,还保存函数或其它对象。 以这种方式附加到对象的函数称为方法。,包与命名空间,所有类的共同祖先都是顶级包中的 Object 类 使用包组织类文件,有利于共享代码,并减少命名冲突 命名空间可以控制标识符(如属性名和方法名)的可见性。 属性或方法的名称总是包含两部分:标识符和命名空间 未指明命名空间的属性或方法就用默认的 internal 命名空间,表示仅对所在的包可见,常量/变量,Const const APP_INIT:String = “APP_INIT“; Variable var i:int; var numArray:Array = “zero“, “one“, “two“; v
3、ar customItem:CustomClass = new CustomClass();,Global Constants,基本类型,Boolean: true|false int: 32-bit integer uint: 32-bit unsigned integer Number: 64-bit double-precision format (IEEE-754). String Null: null void: undefined,复杂类型,Object Array Date Error Function RegExp XML XMLList,x = 10; trace(x); /
4、 output is “10” x = new Object; trace(x); / output is object Object,var x:*; trace(x); / output is “undefined”,Untyped “*”,数据类型的默认值,对象处理的三要素,属性 方法 事件 事件源 事件 事件处理函数,运算符,注释,/ disable strict type checking var string1:String = “5“; var num:Number = 5; trace(string1 = num); / true trace(string1 = num); /
5、 false /* There may be multi-line comments in source code.*/,条件语句,if (x 20) trace(“x is 20“); else trace(“x is = 20“); ,if (x 0)trace(“x is positive“); else if (x 0) trace(“x is negative“); elsetrace(“x is 0“);,switch(dayNum)case 0:trace(“Sunday“);break;case 1:trace(“Monday“);break;default:trace(“Ou
6、t of range“);break; ,循环语句,var i:int; for (i = 0; i 5; i+)trace(i); ,var myObj:Object = x:20, y:30; for (var i:String in myObj) trace(i + “: “ + myObji); ,/ 输出: / x: 20 / y: 30,var myObj:Object = x:20, y:30; for each (var num in myObj) trace(num); ,/输出: / 20 / 30,var i:int = 0; while (i 5) trace(i);
7、i+; ,var i:int = 5; do trace(i); i+; while (i 5);,编写ActionScript类的步骤,打开新的文本文档 输入class语句以定义的类名 输入package语句以指出包含该类的包名 在类中使用var定义类的属性 在类中使用函数定义类中的方法,package mypackage public class MyClass ,函数,ActionScript 3.0 中的两类函数: “方法” “函数闭包” 方法与函数闭包的区别: 如果将函数作为类定义的一部分或者将函数附加到对象的实例,则称为方法。 以其它方式定义的函数则称为函数闭包。,函数闭包,Fla
8、sh Player API全局函数 trace Displays expressions, or writes to log files, while debugging. parseInt Converts a string to an integer. isNaN Returns true if the value is NaN(not a number). 包函数, 如flash.utils包中 getQualifiedClassNameReturns the fully qualified class name of an object. describeTypeProduces an XML object that describes the ActionScript object named as the parameter of the method. ,Global Functions,