actio

18
Flash 动动动动

Upload: bugway

Post on 01-Jun-2015

1.128 views

Category:

Documents


5 download

TRANSCRIPT

Flash

动画入门

As3 简介• 首先由编译器( flash cs 或 flex builder 自

带)编译成“字节代码格式” ,字节代码被嵌入到 swf 文件之中

• Flash player 或 air 中的虚拟机解释执行 swf 文件中的字节代码

Cs4 基础• 界面介绍

舞台:显示对象放置的地方时间轴:帧和关键帧辅助面板:库、属性、动作等

• 元件:提高资源复用率,清晰组织文档资源– 图形:静态图形– 影片剪辑:多帧、可添加代码 一个独立的动画,一个 swf 文件可以看成是一个大的

影片剪辑– 按钮:可添加代码,弹起、鼠标滑过、按下、弹起

as3

• As3 基础语法• As3 内置类

基本数据类型• int , Number , String , Boolean , uint ,

Object

• 所有非 int , Number , Boolean , uint 类型的未初始化的变量的值均为 nullNumber 类型的变量,默认值是 NaN (而非某

个数字), NaN 是一个由 IEEE-754 标准定义的特殊值,它表示非数字的某个值

定义变量• 使用关键字 var ,变量名后用冒号续接数据

类型,如var len:int=0;

运算符• + , - , * , / , %

• < > <= >= is == != === !==

=== :值和类型都比较

程序流程控制• If

• while

• for

• switch

if , while , for 和 switch 与 c 语言里的完全一样

函数• function FuncName(param:Type,…):Type

{

………

}• 参数传递:值传递和引用传递值传递: Boolean 、 Number 、 int 、 uint 和 String

引用传递:非值传递的类型• 支持匿名函数

var factorial:Function = function (x:uint)

{ return x*10; }

trace(factorial(5)); // 50

OOP--- 类• Package (packName)

{public class MyClass extends BaseClass

{….

}

}

• import (packName.)MyClass

显示编程• 显示列表• 核心显示对象

显示列表

例 1 :屏幕上绘制红色三角形

• var triangle:Shape=new Shape;// 定义并创建三角形对象triangle.graphics.beginFill(0xFF0000); // 设置绘图填充颜色triangle.graphics.moveTo(50, 0); // 绘图起始点triangle.graphics.lineTo(100, 100); triangle.graphics.lineTo(0, 100); triangle.graphics.lineTo(50, 0); triangle.graphics.endFill();this.addChild(triangle);// 将绘制好的三角形添加到显示列表中

• 获取显示列表的一些信息trace(this.numChildren);//1, 有一个子对象,即上面添加的三角形var ds:DisplayObject=this.getChildAt(0);// 获取三角形的引用ds.scaleX=2;//x 方向放大 2 倍

核心显示对象

DisplayObject 是抽象类,不能用其进行实例化

显示对象基本属性

• 位置 :x , y (相对于其父节点)• 大小: width , height• visible• alpha• mouseEnabled: 是否接收鼠标消息

显示对象基本操作

• addChild

• removeChildAt(index:int)

• removeChild(obj:DisplayObject)

• getChildAt

• …

事件

• 事件处理为对象添加某一事件添听器编写监听器函数如:this.addEventListener(MouseEvent.CLICK,onMouseClick)

function onMouseClick(e:MouseEvent)

{

…..

}

回调参数 e 的类型必须是对应的事件类型

代码初始化

• 顺序doucument class

时间轴上的代码时间轴上元件内部的代码

• Note

时间轴上的变量都相当于全局变量,后一帧上的代码可以访问前一帧的变量,但是反过来却不行