第一章 基础入门
1、 第一个小例子:先声明类才能代码自动提示。
importflash.display.MovieClip;
//stop();
varaction1:MovieClip;
gotoAndStop(15);
//stop();
trace("1");
2、 Hello world!:书本上例题错误。
varStr:String = "Hello World!";
varmyClick:Function = function(evt:MouseEvent){
lb.text = Str;
trace(Str);
};
btn.addEventListener(MouseEvent.CLICK,myClick);
3、 Trace语句可以在发布设置中省略
4、 Gotoandplay(scene,frame);场景和帧数
Nextframe();下一帧
Preframe();上一帧
Nextscene();下一个场景的第一帧
Prescene();上一个场景的第一帧
This.gotpandplay(currentframe+5);当前帧后面五帧停止
问题:实例方法调转测试
第二章 语法基础
1、 1)、变量声明:var Str:String = “hello”;as3变量区分大小写
2)、数据类型:boolean、int、null、Number(NAN)、String(NULL)、uint(0)、undefined
注意:选值范围越小占用内存越小
3)、转义字符:\b \f \t \n \r \* \’ \\ \x00-\xFF\u0000-\uFFFF
4)、复杂数据类型:
1》FunctionmyFunction():void{}------------void无返回值
2》Var Arr:Array;没有初始化。只是单纯定义一个数组,但不赋值。也就是在内存里只申请一个首地址,但没有定义存储长度。
var arr = newArray();//第一种;定义一个数组,并初始化它为空数组
var arr2 =[];//第二种;定义一个数组,并给它赋一个空值
注意:声明数组必须初始化;数组中元素很自由,类似链表;数组下标由0开始
3》Object对象数据类型:
var user:Object = new Object();
user.name = "Irving";
user.age = 32;
user.phone = "555-1234";
4》MovieClip数据类型:元件
5)、常量:自定义常量。Constcon_myage:int = 23;
2、 关于变量:
1)、变量值中包含引号:
Var str:String = “My \”action script\”is good.”;----or
Var str:String = “My ‘action script’is good.”;----交替包含
Var str:String = ‘My “action script”is good’;---交替包含
2)、var dt:Date = new Date();
3)、传值变量和传址变量(变量对于上个变量的引用,上个变量改变当前变量改变)
3、 Object:
varob:Object = new Object();
ob.name ="zhaoxin";
ob.age =19;
trace(ob.name);
trace(ob.age);
注意:var i:Sting; for(I in person){}为什么? 属性成员变量顺序
4、 数组:
1)、数组的维数可以自动扩展;小于索引上限的元素未定义,返回undefined;
vararr:Array = new Array();
arr[1] ="hello";
trace(arr[0]);
2)、多维数组:
vararr2:Array = new Array(new Array("1","2"),new Array("3","4"));
trace(arr2);
3)、复合数组:使用键而不是数字索引组织存储的值;类似object类
5、 Actionscript的语法结构:
1)、程序注释:// /**/
第三章 数据运算和流程控制
1、运算符:
算数:+ - * / % ++ --
比较:< > < = >= == != &&并且 ||或者 ! ===全等(包括数据类型) !==
位运算符:& | ~ ^ << >> >>>
其他运算符:as delete in instanceof(不推荐使用) is :: new typeof
例子:typeof(array) asxx 返回前者或者null
Typeof(array) is xx
2、流程控制
1)、if else
If(condition){
Statement;
} else if(condition2){
Statement2;
} else{
Statement3;
};
2)、Switch语句
Switch(expr){
Case expr1:statement1;break;
Case expr2:statement2;break;
default:statementN;break;
}
3)、do..while
While(condition){}
Do{statement}while(condition);
4)、for..in循环
For(expr1,expr2,expr3){statement}
For(variableIterant in object){statement}
例子:
Var arr:Array = new Array(“one”,”two”,”three”);
For each (var item:int in myArray){
Trace(item);------ 所包含的属性(或成员,或变量)
}
for..in是把数组的元素或对象的属性名依次取过来。
for each..in是把对象的属性名对应的值依次取过来
5)、label标签语句:跳到label所在行继续执行。
Label:
Break label;
6)、try。。catch。。finally
Try{}catch()finally{}
Throw new error(“这是不合法的Email地址”);
3、使用with语句
Varobj:Date = new Date();
With(obj){
Trace(getDay());
Trace(getMonth()+1);
}
第四章 全局函数和自定义函数
1、Trace();调试
2、转移操作函数:escape()/encodeUrl()/encodeURLComponent()
3、转换函数:parseFloat/parseInt/Number()/String()/Boolean()/int()/Uint()/XML()/XMLList()/
4、判断函数:isXMLName()/isFinite()是否有限数/isNAN()是否数字/
5、自定义函数:
1)、Function myfunc(arg_1:type,arg_2:type,…,arg_n:type):type{return “”;}
2)、…(rest)动态参数 function traceargarray(…args):void{
For(var i:uint = 0;i Trace(args[i]); } } 3)、匿名函数的定义:varmyfunc:Function = function(arg_1:type,arg_2:type,…,arg_n:type) {return “”;} 总结 1、 关于图层:在不同的图层添加不同的对象,使操作更加便利。 2、 关于帧: 1>空白关键帧在空白关键帧上我们可以任意的绘制图形 2>关键帧就是添加了对象的空白关键帧, 3>空白帧就是留个空位置的帧什么都不做,比如有10帧是空白帧,那当时间轴跑到这10帧的时候就什么都不做,连图象都不显示。 3、 动作的元件: 1>如果要给一个元件做动画的话 这个元件就一定单独在一个图层里 2>也就是说,如果有10原件要动,那么这10个元件就要建10个图层,不能放在同一个图层里。 3>这就取决你原件的数量了。 记住一句话 一个图层里只能有一个要动的原件。 4、 建立了图层后,怎么添加边框: 在最顶上图层,画一个矩形框。双击矩形框的边线。 ctrl+k打开对齐面板点选右边的相对于舞台按钮。 找到匹配高跟宽按钮,点击一下,现在边线应该跟场景一样大小了。继续点击水平居中对齐,垂直居中对齐,这时候线框跟舞台的边完全重合了。 最后选择矩形的中间部分按delete键删除。 5、 那些对象可以添加添加动作脚本: A、关键帧(也包括空白关键帧) B、按钮 C、影片剪辑 6、 按钮上停止: 按钮上写 on(release) { gotoAndPlay("场景名", 1); } 7、 锯齿:图像折叠失真:物体边缘呈现三角形的锯齿