博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActionScript3 基本语法
阅读量:7209 次
发布时间:2019-06-29

本文共 2977 字,大约阅读时间需要 9 分钟。

hot3.png

AS 3.0语言是基于ECMAScript规范的.

(ECMA,European Computer Manufactures Association,欧洲计算机制造商协会)

在ECMAScript规范中,对象完全是属性的集合,

这些属性不仅仅是存储的数据,也可以是函数.(函数可以当做变量,与JavaScript一致)

 

is和as操作符很好用,用于判断对象的类型

is操作符,判断变量的类型(is操作符返回的是一个布尔值)

例如:

var a:int;

trace(a is int);//true
trace(a is Object);//true,可以是祖先类

as操作符,判断对象是否符合指定的数据类型,

如果是,返回这个对象,

否则返回null

(as操作符返回的是对象)

例如:

var a:int=3;

trace(a as int);//3
trace(a as String);//null

 

复杂数据类型complex data type:

Array,

Object,所有类的祖先

Date,日期时间

Error,异常

Function,函数

RegExp,正则表达式

XML,用于操作包含一个根节点的XML数据集

XMLList

 

特殊数据类型

*,用于告诉编译器,将在后面设置变量的数据类型

void,在函数声明中使用,表示函数不会返回任何数据

 

索引数组

arr[0]

关联数组

var arr:Array=[]; arr["key1"]="value1"; arr["key2"]="value2"; for(var key:String in arr){
trace(key+":"+arr[key]); } for each(var value:String in arr){
trace(value); }

另一种形式

var obj:Object={
key1:"value1", key2:"value2" }; trace(obj.key1);//value1 trace(obj.["key2"]);//value2

比较操作符

==,!=,<,<=,>,>=

 

求反!

 

AS3不支持函数/方法的重载

不能在同一定义域内出现多个同名函数/方法

 

可以不把脚本写在MXML文件中,

可以写到一个as文件内,

然后在MXML中导入,

<mx:Script source="XXX.as"/>

 

Repeater,不可见组件,

能够迭代遍历一组信息,在迭代同时,

动态创建组件.

 

PopUpMenuButton组件

 

在MXML文件内写AS3脚本,要用<![CDATA[…]]>括起来

 

声明变量,使用var关键字

var i:int;

var j:int=100;

var k;//声明变量k,但未指定类型,k的值为undefined,不推荐

var l:*;//效果同上行

 

变量命名:

骆驼命名法,首字母小写,第二个及以后的单词首字母大写,

使用,”名词”或”形容词+名词”,例如:

width,maxWidth

遵守min-length&&max-imormation原则

尽量避免变量名中出现数字编号(除非逻辑上需要)

 

常量的定义,使用const关键字:

const PI:Number=3.1415

 

字符串的声明和定义:

var str1:String;//null var str2:String=""; var str3:String=new String();//效果同上行 var str4:String="abc"; var str5:String=new String("abc");//效果同上行 var str4:String='abc';//单引号也可以,同JavaScript一样 var str5:String='林峰';//Unicode trace(str5.length);//2

转义符,用斜杆\

回车:\r

换行:\n

制表:\t

斜杆:\\

双引号:\"

 

数组的定义,

和Java不一样,例如定义一个长度为5的整型数组,

Java是:

int[]a=new int[5];

而AS3是:

var a:Array=new int(5);

并且AS3的数组是长度可变的,有push和pop等操作(和JavaScript类似).

几种常见的定义形式如下:

var a:Array;//null

var b:Array=[];//空数组

var c:Array=new Array();//效果同上行

var d:Array=[1,2,3,4];

var e:Array=new Array(1,2,3,4);//效果同上行

var f:Array=new Array(5)//声明一个长度为5的数组,5个元素都是未定义

数组下标都是从0开始

多维数组:

var a1:Array=[[1,2],[3,4,5,6]];

//

var a2:Array=[];

a2[0]=[1,2];

a2[1]=[3,4]

trace(a2[0][1]);

 

==和===

==,会进行类型的转换

而===,不会进行类型的装换

var a:int=5; var b:uint=5; trace(a==b);//true trace(a===b);//true var c:String=”5”; trace(a==c)//true trace(a===c)//false

typeof,is,as

trace(typeof 10);//number

trace(10 is Number);//true

trace(10 as Number);//10

trace(10 as Array);//null

 

delete

用来删除对象的动态实例属性

var obj:Object={a:123}; trace(obj.a)//123 delete obj.a trace(obj.a)//undefined

for 循环

var a:Array=[1,2,3,4];

for(var i:int=0;i<a.length;i++){

if(a[i]==3){

    break;

}else{

    continue;

}

}

 

for each in

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

    for each(var value:int in a){
        trace(value);
}

 

函数

function f1():void{

     trace("call f1()");
}

或者用类似定义变量的方式

var f2:Function=function():void{
      trace("call f2()")
};

f1();

f2();

//默认参数

function test(a:int=3,b:int=2,c:int =1):int{

return a+b+c;

}

trace(test(5));//8

 

//函数的arguments对象

arguments.length;

arguments[0];

转载于:https://my.oschina.net/smilethat/blog/42535

你可能感兴趣的文章
oc73--NSArray使用
查看>>
Backbone.js入门学习资源
查看>>
类型转化:float -> DWORD
查看>>
Android自定义视图二:如何绘制内容
查看>>
Python天天美味(21) - httplib,smtplib
查看>>
第 37 章 ACOS - CLI
查看>>
Lock-Free 编程
查看>>
7.3. 查看命令
查看>>
解决Wamp 开启vhost localhost 提示 403 Forbbiden 的问题!
查看>>
[WinAPI] API 14 [获取、设置文件属性和时间]
查看>>
AutoCompleteTextView 和 TextWatcher 详解
查看>>
2.5. SciTE
查看>>
喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
查看>>
【转载】Java 内存分配全面浅析
查看>>
【Android】监听Notification被清除
查看>>
jQuery动态五星评分
查看>>
自制简单表单验证relative与absolute定位
查看>>
C标准函数库中获取时间与日期、对时间与日期数据操作及格式化
查看>>
WebGIS中解决使用Lucene进行兴趣点搜索排序的两种思路
查看>>
驱动继电器实验
查看>>