帧操作
F9
三、 AS(ActionScript) 3.0基础语法
1、 认识常用的四种变量。
int 变量(整型变量)
//认识常用的四种变量
var i:int
i=5;
trace(i);
Number(浮点型变量)
var s:Number
s=3.1415926;
trace(s);
字符串类型变量
var zfc:String
zfc="hello,大家好";
trace(zfc);
布尔类型变量
var bool:Boolean;
bool=false;
trace(bool);
变量的强制转换
/*变量的强制转换 */
var b:int;
b=int("100");
trace(b);
输出:
2、方法(函数)的定义与调用。
方法(函数)定义格式:
/*
function 方法名(){
方法体
}
*/
无参函数 例子
jfys();
function jfys(){
var js:int;
var bjs:int;
js=98;
bjs=1;
var addNum:int;
addNum=js+bjs;
trace(addNum);
}
有参函数 例子
susu (11,9);
function susu(cs:int,bcs:int){
var qj:int;
qj=cs*bcs;
trace(qj);
}
有返回值的函数 例子
var getResult:int;
getResult=test();
trace(getResult);
function test():int{
var js:int;
var bjs:int;
js=98;
bjs=1;
var TotalNum:int;
TotalNum=js+bjs;
return(TotalNum);
}
-
区分大小写
ActionScript 3.0是一种区分大小写的语言,大小写不同的标识符会被视为不同。 -
.点语法
可以通过点运算符(.)来访问对象的属性和方法。使用点语法,可以使用后跟点运算符和属性名或方法名来引用对象的属性或方法。 -
分号;
可以使用分号字符(;)来终止语句。
注释。 -
ActionScript 3.0代码支持两种类型的注释:单行注释和多行注释。// 和 /* */
-
var 变量的声明。
变量可用来存储程序中使用的值。要声明变量,必须将var语句和变量名结合使用。 -
= 变量的赋值。
可以使用赋值运算符( = )为变量赋值,也可以在声明变量的同时为变量赋值。
对象及其特性
在ActionScript面向对象的编程中,任何对象都可以包含3种类型的特性。
- 属性。
表示与对象绑定在一起的若干数据项的值,也可以简单地将属性视为包含于对象中的“子”变量。用户可以像使用各变量那样使用属性。 - 方法。
可以由对象执行的操作,如动画播放、停止或跳转等。 - 事件。
由用户或系统内部引发的、可被ActionScript识别并响应的事情,如鼠标单击、用户输入、定时时间、加载图像等事件。
这些元素共同用于管理程序使用的数据块,并用于确定执行哪些动作及动作的执行顺序。ActionScript为响应特定事件而执行某些动作的过程称为“事件处理”。在编写执行事件处理代码时,Animate CC需要识别3个重要元素。
- 事件源:发生该事件的是哪个对象。
- 事件:将要发生什么事情,以及程序希望响应什么事情。
- 响应:当事件发生时,程序希望执行哪些步骤。
条件语句
- if…else语句
if…else if语句
f (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
- switch语句。
相当于一系列if…else if语句,但是更便于阅读。
switch语句是对表达式进行求值并使用计算结果来确定要执行的代码块。
代码块以case语句开头,以break语句结尾。
例如,基于由Date.getDay()方法返回的日期值输出星期日期
var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
case 0:
trace("星期天");
break;
case 6:
trace("星期六");
break;
default:
trace("今天是工作日");
break;
}
- for
for … in : for…in循环用于循环访问对象属性或数组元素。
while
do … while
for
//下例循环5次。变量i的值从0开始到4结束,输出结果是从0到4的5个数字,每个数字各占一行。
var i:int;
for (i = 0; i < 5; i++)
{
trace(i);
}
for…in循环用于循环访问对象属性或数组元素。
//循环访问通用对象的属性。
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + ": " + myObj[i]);
}
// 输出:
// x: 20
// y: 30
//循环访问数组中的元素。
var myArray:Array = ["one", "two", "three"];
for (var i:String in myArray)
{
trace(myArray[i]);
}
// 输出:
// one
// two
// three
while
var i:int = 0;
while (i < 5)
{
trace(i);
i++;
}
do…while语句。
//也是一种while循环,它保证至少执行一次代码块,这是因为在执行代码块后才会检查条件
var i:int = 5;
do
{
trace(i);
i++;
} while (i < 5);
//输出:5
3、简单加法器的制作。
操作提示:按下图设计UI界面,再实现分别在文本框随意输入两个数字,点击等于号,运算结果会出现在右侧文本框内。。
4、事件的响应和处理:追逐鼠标的飞鸟 。
操作提示:使用enterFrame事件的实例,让舞台上的两个位置点趋近。算法如下图所示。
动画完成的效果为:鼠标移动到哪里,鸟儿就飞到哪里。
function followmouse(event:Event):void{
if(bird.x!=mouseX){
bird.x= bird.x+(mouseX-bird.x)/10;
}
if(bird.y!=mouseY){
bird.y= bird.y+(mouseY-bird.y)/10;
}
}
bird.addEventListener(Event.ENTER_FRAME,followmouse);
5、综合案例:绿野仙踪。
动画完成的效果为:花仙子在快乐地游玩,她的位置不断随机变化,在窗口右上角能够实时显示她的位置 。
var randomPx:Number = Math.random()*420;
var randomPy:Number = Math.random()*250;
function movepos(event:Event):void{
if(girl.x!=randomPx){
girl.x=girl.x+(randomPx-girl.x)/5;
}
if(girl.y!=randomPy){
girl.y=girl.y+(randomPx-girl.y)/5;
}
if((Math.abs(girl.x-randomPx))<1){
randomPx=Math.random()*420;
randomPy=Math.random()*250;
}
info.text="["+showvalue(girl.x)+","+showvalue(girl.y)+"]";
}
function showvalue(somevalue:Number):Number{
var temp:int;
temp=Math.round(somevalue);
return(temp);
}
girl.addEventListener(Event.ENTER_FRAME,movepos);