ActionScript3 基本语法

Stella981
• 阅读 474

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);//value1trace(obj.["key2"]);//value2

比较操作符

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

求反**!**

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

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

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

可以写到一个as文件内,

然后在MXML中导入,

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

Repeater,不可见组件,

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

动态创建组件.

PopUpMenuButton组件

ActionScript3 基本语法

在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;//nullvar 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='林峰';//Unicodetrace(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);//truetrace(a===b);//truevar c:String=”5”;trace(a==c)//truetrace(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)//123delete obj.atrace(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];

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这