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]);
}
}
浙公网安备 33010602011771号