Airicon.pngAIR 51.0.0.2已于2024/02/23发布!

全站通知:

使用Animate的ActionScript入门教程/基本数据类型与变量

阅读

    

2024-01-14更新

    

最新编辑:--小小晓痴--

阅读:

  

更新日期:2024-01-14

  

最新编辑:--小小晓痴--

来自ActionScript 3.0WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
晓痴Developer

基本数据类型与变量

晓痴Developer

包含什么是数据类型、ActionScript的基本数据类型、变量、常量、ActionScript的命名规则、ActionScript的命名规范。
本教程来自ActionScript 3.0 WIKI,转载请注明出处。原文链接:
https://wiki.biligame.com/as3/%E4%BD%BF%E7%94%A8Animate%E7%9A%84ActionScript%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E4%B8%8E%E5%8F%98%E9%87%8F


什么是数据类型

在一般的计算机中,数据都是以二进制的形式存在的,可以想象成一长串的0和1。要如何使这一长串的0和1变得有意义呢?人们设计了一些数据规范,取多少位数字作为一个字节,多少字节代表什么数据类型,哪些位具有特殊含义…这样,二进制的数据就变得对人类有意义了。
包括ActionScript在内,大部分的编程语言都会预先定义一些常用的数据类型,以便开发者进行数据处理。例如,IEEE 754规定了浮点数类型和运算,并被许多编程语言广泛采用。不同的数据类型用于处理不同的数据,例如,整型数用于处理整数、浮点数用于处理小数、字符串用于处理文本。

ActionScript的基本数据类型

这里有一个先验知识:在一般的计算机中,每8位(bit)为1个字节(Byte)
在ActionScript中只有5种基本数据类型,如下表:

类名 所表示的数据类型 取值范围 数据长度 默认值
Boolean 布尔值 true或false 4Byte false
int 有符整型 -2147483648到2147483647 4Byte 0
uint 无符整型 0到4294967295 4Byte 0
Number 双精度浮点数 4.9406564584124654e-324到1.79769313486231e+308 8Byte NaN
String 字符串 null

Boolean是布尔值,用于表示“真”或“假”。实际应用中可以表示条件、状态等。例如,玩家在购买商品时,需要判断玩家的货币是否足够,这个结果就是一个Boolean值。
在ActionScript中,Boolean类型的值可以直接写为true或false,如下例:

var b:Boolean = true;

int、uint以及Number用于表示数字,其中int类表示有符号的整数,例如-50和1314都可以用int类表示;uint类表示无符号的整数,例如520和999都可以用uint类表示;而Number类表示小数,例如3.141592和-1.234567都可以用Number类表示。
不难看出,Number类可以表示的范围是最大的,既可以表示正负,还可以带有小数点后位数。读者可能会有疑问:为什么还要保留int和uint呢?虽然Number类确实在这之中表示了最大的范围,但是它也占用了最大的空间,8个字节。int类和uint类各只占用4个字节。如果在程序中无脑地使用Number类型,最极端的情况下,程序运行占用的内存接近只使用int和uint的2倍。考虑到程序的运行效率等方面的因素,是不推荐全都使用Number的。uint类没有符号,所以它比int类多1位用于表示数值,这意味着在只表示正整数的情况下,uint类可以表示的范围是int类的2倍。
在ActionScript中,int、uint和Number类型的值可以直接写为数字,如下例:

var i:int = 233;

String是字符串,简单来说,字符串就是文本。这意味着文本字段需要使用字符串类型来存放。不同于大多数编程语言,ActionScript没有提供独立的Char类型,即使是单个字符也是使用String类型存储。相对于之前的几种类型,String类特殊在于其不定长,Boolean、int、uint以及Number都是固定长度的,而String可以是任意多个字符拼接。
在ActionScript中,使用半角双引号("")括起来的文本,视为字符串值,如下例:

var s:String = "我是一串字符~";

变量

变量的概念可以说是程序设计入门的第一个难点。
不严谨地说,变量就是在程序运行过程中,可以改变的量。它可以在程序运行时,存储一些过程量。例如,某个游戏角色具有等级,它当前的等级是31,我们在程序中可以声明一个变量叫level。然后发生了一些事件,导致这个角色的等级提升了,我们可以改变level的值。写成代码就像这样:

var level:uint = 31; //角色一开始为31级
//发生了一些事情
level = 32; //变成32级
trace("角色等级为" + level); //输出:角色等级为32

level在声明的时候是31,但是发生了一些事情之后,程序让它变成了32,因此,最后trace()输出的等级是32级。这段代码只是尝试让对变量没有概念的读者理解一下,实际上做开发不应该写这样具体但不特殊的值的。
在ActionScript中,声明变量的关键字是var。有几种不同的声明语法:

var a:uint; //声明uint类型变量a
var b:Boolean, c:String; //同时声明Boolean类型变量b,String类型变量c
var d; //声明untyped(无指定类型)变量d
var e:int = 9; //声明int类型变量e,并赋初值为9
trace(a, b, c, d, e); //没有赋初值的变量,会以其类型的默认值返回

这些声明变量的语法还可以再相互组合,例如同时声明多个变量并赋初值,建议读者自行尝试(声明之后,可以通过trace()方法输出看看哦)。

常量

如果能够理解变量,那常量也不会难理解了。常量与变量的不同就是,常量在声明之后不可改变,它只能在声明时赋初值。
声明常量的关键字是const。声明语法类似声明变量:

const A:Number = 123; //声明常量A,并赋初值为123
const B; //声明常量B,但不赋初值
trace(A, B);

同变量一样,声明常量的语法也可以进行一些组合。
如果尝试在程序中对常量进行赋值,则编译器会报错,表示尝试对指定为常数的变量进行的赋值是非法的。

ActionScript的命名规则

在声明变量、常量等标识符时,我们需要给它们取一个名字,即命名。
并不是所有命名都是有效的,有一些命名是编译器判断不了的,会导致报错。ActionScript的命名规则包括:

  1. 除下划线(_)外,不能包含特殊符号:例如DATA_QUERY是一个合法的命名,total*Num是一个非法的命名。
  2. 不能以数字作为开头:例如top50是一个合法的命名,92Rafi是一个非法的命名。

ActionScript的命名规范

命名规则是为了编译器顺利将代码编译。但是,考虑到代码需要具备一定可阅读性,标识符的命名应当符合一定的规范。ActionScript的命名规范包括:

  1. 以标识符作用的英文作为命名:例如表示生命值的变量命名为health,表示得分的变量命名为score。
  2. 使用驼峰式命名法:当命名由多个英文单词组成时,除首个单词外的每个单词首字母大写,然后拼接,例如表示列表长度的变量可以命名为listLength。
  3. 在不影响表意的情况下,尽可能使用缩写:例如automatic缩写为auto,maximum缩写为maxi,utility缩写为util等。
  4. 常量使用完全大写:指定为常数的变量,命名时将所有字母大写,单词之间用下划线(_)拼接,例如用于验证ActionScript语言版本的常量可以命名为ACTIONSCRIPT_VERSION。
本节教程介绍的是变量和常量的命名,对于之后可能接触到的概念,例如类、接口等,存在其他命名规范,将会在介绍到时相应提起。