ActionScript3 程序的编译流程
ActionScript3 代码将被编译器编译成 Flash Player 运行时可以理解的 ActionScript bytecode(字节码)
简称 ABC 文件 但是 ABC 文件不可以单独运行 必须放入到 SWF(.swf)文件中才可以被 FLash PLayer 执
行
第一个 AS3 文档类 HelloWorld
//新建 flash 文件
//新建类文件 HelloWorld
//在 flash 中属性面板绑定 HelloWorld 类
//Ctrl+Enter 测试影片
//HelloWorld 类文件
package{
//每个类中必须定义包
import flash.display.Sprite;
public class HelloWorld extends Sprite{
//每个类都继承自MovieClip类或Sprite类
//类名必须和文件名一致
public function HelloWorld(){
//public function HelloWorld():void{
trace("HelloWorld!");
}
}
}
ActionScript 3 是面向对象的语言 (Object-oriented Language)
[ ActionScript3 语言基本元素 ]-----------------------------------------------------
一切都是对象(Everythings is an Object) ActionScript3 中所有的数据都是对象
ActionScript3 中所有类都是 Object 类的子类和子类的衍生类
数据类型 (data type) :
1 基本数据类型 (primitive data type) {
[值类型]
Boolean //布尔值 true false 默认值 false
// 注意 ActionScript 3 中如果表达式的值不是布尔型 自动转换
int //有符号整数
uint //无符号整数 处理颜色值优先
Number //浮点数
String //字符串
}
2 复杂数据类型 (complex data type){
[引用类型]
Array
Date
Error
Function
RegExp
XML
XMLList
...
//我们自己定义的类也全部属于复杂数据类型
}
3 * (通用匹配) {
var i:* = 1;
trace(typeof(i));
i="Tigerz";
trace(typeof(i));
}
值类型和引用类型的区别{
值类型{
直接储存值 不因为其他变量值得改变而改变
}
引用类型{
存储值得引用
}
}
String (字符串)
字符串的几种声明格式{
1 var s:String="Test";
2 var s:String=new String("Test"); // 效果与语法1相同
3 var s:String='Test'; // 也可以使用单引号声明
}
Array (数组) //ActionScript3中数组是以非负整数为索引值的非类型化数组(typed array)
的稀疏数组 (sparse array)数组 最多容纳 232-1 个元素 (4294 967 295个) 第1个元素的索
引值为0
所谓非类型化数组 意思是并不限制所有合资都要放同一种类型的数据
var myArray:Array=new Array(1,true,"test");
所谓稀疏数组是指不要求每个盒子都要放东西 比如我们可以让第1个和第3个装东西 其他留空
var myArray:Array=new Array(1,null,"test");
数组的几种声明格式{
var myArray:Array=new Array(1,2,3);
var myArray:Array=[1,2,3];
var myArray:Array=new Array(3); //声明长度为3的空数组
}
二维数组
多维数组
变量(variable) //先声明 后使用 变量持有引用 (Reference) 而引用则指向要操作的对象
var 变量名:数据类型 = 值; //赋值的类型必须和变量的类型一致
变量命名规范 {
1 尽量使用有含义的引文单词作为变量名
2 骆驼命名法{
混合使用大小写字母组成变量和函数的名字
首字母小写 第二个单词首字母大写 比如 highLevelFlag
}
3 (min-length && max-information){
变量名长度应当越短越好
变量名代表得含义秒素得越清晰越好
}
4 尽量避免出现数字编号
}
常量() //声明时必须赋值 赋值后不可更改
const 常量名:数据类型 = 值; //赋值的类型必须和常量的类型一致
{
const foo:Array = [1,2];
var b:Array = foo;
b[1] = 100;
trace(foo); //输出 1,100
//foo 指向的数组内容被改变了
foo = [2,3] //err 常量不能改变
}
Object (对象) (//这里指实例不是类)
成员{
1:属性(Property) 存储数据
2:方法(Method) 存储函数
}
声明Object的两种方法{
1 var foo:Object = new Object();
2 var bar:Object = {}; //效果相同
var foo:Object = {name:"kingda",web:"www.kinda.org"};
//初始化 写入多个属性 属性名和属性值以英文分号“:”隔开
//属性之间以英文逗号“,”隔开
var bar:Object = {
//初始化 写入多个方法
hello:function(){trace("Hello,guys!");},
ok:function():String{return "that's ok";}
}
//bar.hello();
2.2 //等同于
var foo:Object = {};
foo.name="kingda";foo.web="www.kingda.org";
//等同于 foo["name"]="kingda";foo["web"]="www.kingda.org";
var bar:Object = {};
bar.hello = function(){
trace("Hello,guys!");
}
bar.ok=function():String{
return "that's ok";
}
}
由于我们确切的知道成员的名字 所以可以直接使用点符号运算符(.)来添加或访问他们
但如果是在程序运行时要访问一个成员 而这个成员的名字到了运行时才会知道 那么就
需要用到数组运算符 [] 了 !!---------------------------------------------
多维数组 !!-----------------------------------------------------------
Null Nan underfined 及各类型变量的默认值 {
var a:int, //trace(a) 默认值 0
b:uint, //0
c:Number, //NaN
d:String, //null
e:Boolean, //false
f:Array, //null
g:Object, //null
h, //underfined
i:*; //underfined
}
类型转换 !!------------------------------------------------------------
{
var n:number=0.1;
var i:int=n;
}
运算符 (Operator) {
//算术运算符
+
-
*
/
%
- //求反运算符
//算术赋值运算符
+=
-=
*=
/=
%=
//关系运算符
== //值类型比较值是否相等 引用类型比较引用是否相等(是否指向同一个对象)
//当类型不同时自动进行转换
!=
=== //全等运算符 不进行类型转换
!=== //不全等运算符
>
<
>=
<=
//当两边的值是NaN和underfined时 == 比较结果相等 === 比较结果不相等
//逻辑运算符
&& //逻辑AND
|| //逻辑OR
! //逻辑NOT
//三元运算符
(条件表达式)?(表达式2):(表达式3);
++ -- 自增和自减运算符
}
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛