as3完全自学手册要点(一)

2011-06-08 12:29:06 by 【6yang】, 304 visits, 收藏 | 返回

一、          声明变量

格式:

var 变量名:数据类型;

var 变量名:数据类型=值;

变量的命名原则:

1、它必须是一个标识符。它的第一个字符必须是字母、下划线(_)或美元记号($)。其后的字符必须是字母、数字、下划线或美元记号。注意:不能使用数字作为变量名称的第一个字母。

2、它不能是关键字或动作脚本文本,例如true、false、null或undefined。特别不能使用ActionScript的保留字,否则编译器会报错。

3、它在其范围内必须是惟一的,不能重复定义变量。

变量的默认值,分别为:

•         Boolean型变量的默认值是:false。

•         int型变量的默认值是:0。

•         Number型变量的默认值是:NaN。

•         Object型变量的默认值是:null。

•         String型变量的默认值是:null。

•         uint型变量的默认值是:0。

•         *型变量的默认值是:undefined。

二、          声明常量

格式:

const 常量名:数据类型;

const 常量名:数据类型=值;

三、          ActionScript3.0的数据类型分为两种

基元型数据类型:Boolean、int、Number、String和uint。

复杂型数据类型:Array、Date、Error、Function、RegExp、XML和XMLList。

四、          基本条件语句

1、if..else条件语句基本格式如下:

if(表达式){

 语句1

}

else

 {

语句2;

}

2、Switch语句格式如下:

switch (表达式) {

     case:

      程序语句1;

       break;

     case:

      程序语句2;

       break;

     case:

      程序语句3;

       break;

    default:

        默认执行程序语句;

}

五、          循环语句

1、For循环语句:

for(初始化;循环条件;步进语句) {

  循环执行的语句;

}

while循环语句

while(循环条件) {

  循环执行的语句

}

2、do..while循环语句

do {

循环执行的语句

} while (循环条件)

 

六、          函数定义法

1、函数语句定义法

函数语句定义法是程序语言中基本类似的定义方法,使用function关键字来定义,其格式如下所示:

function 函数名(参数1:参数类型,参数2:参数类型…):返回类型{

//函数体

}

•         代码格式说明:

•         function:定义函数使用的关键字。注意function关键字要以小写字母开头。

•         函数名:定义函数的名称。函数名要符合变量命名的规则,最好给函数取一个与其功能一致的名字。

•         小括号:定义函数的必需的格式,小括号内的参数和参数类型都可选。

•         返回类型:定义函数的返回类型,也是可选的,要设置返回类型,冒号和返回类型必须成对出现,而且返回类型必须是存在的类型。

•         大括号:定义函数的必需格式,需要成对出现。括起来的是函数定义的程序内容,是调用函数时执行的代码。

2、函数表达式定义法

函数表达式定义法有时也称为函数字面值或匿名函数。这是一种较为繁杂的方法,在早期的ActionScript版本中广为使用。其格式如下所示。

var 函数名:Function=function(参数1:参数类型,参数2:参数类型…):返回类型{

//函数体

}

•         代码格式说明:

•         var:定义函数名的关键字,var关键字要以小写字母开头。

•         函数名:定义的函数名称。

•         Function:指示定义数据类型是Function类。注意Function为数据类型,需大写字母开头。

•         =:赋值运算符,把匿名函数赋值给定义的函数名。

•         function:定义函数的关键字,指明定义的是函数

•         小括号:定义函数的必需的格式,小括号内的参数和参数类型都可选。

•         返回类型:定义函数的返回类型,可选参数。

•         大括号:其中为函数要执行的代码。

七、          给函数设置默认参数

格式:

function(参数1:参数类型=默认值,参数2:参数类型=默认值)

八、          Event

属性:

1.type属性:每个事件对象都有关联的事件类型。事件类型存储以字符串的形式存储在Event.type属性中。利用事件类型,可以区分不同类型的事件。

2.cancelable属性:事件的默认行为是否可以被阻止由布尔值表示,并存储在Event.cancelable属性中。此属性时一个布尔值,默认为flase。这个属性一般是和preventDefault()方法结合在一起使用的。

3.target属性:target属性用于存储对事件目标的引用。

4.其它属性:currentTarget、eventphase和bubbles这三个属性都是和ActionScript3的事件流机制有关,在平时用到的不多。

方法:

Event类的方法有7种:clone()、toString()、stopPropogation()、stopImmediatePropogation()、preventDefault()、isDefaultPrevented()和formatToString()。这些方法的用途如下:

•         Event.clone()方法用于赋值Event子类实例,返回Event对象原始实例的副本。当需要自定义Event子类时,就必须要继承 Event.clone()方法,用于赋值自定义类的属性。另外还要加上新的属性,否则在侦听器重写调用时,这些属性的值会出现错误。

•         Event.toString()属性返回一个包含Event对象的所有属性的字符串。如果要自定义事件类,那么重写toString()方法时,可以使用formatToString()这个方法在返回的字符串中加入新的事件实例属性。

•         Event.stopPropogation()方法可阻止事件对象移动到下一个节点,但只有在允许执行当前节点上的任何其它事件侦听器之后才起作用。

•         Event.stopImmediatePropogation()方法也阻止事件对象移动到下一个节点,但不允许执行当前节点上的任何其它事件侦听器。

•         Event.preventDefault()和Event.isDefaultPrevented()和Event.cancelable属性结合使用,用于取消事件的默认行为的发生。

Event类的子类:

•         鼠标类:MouseEvent。键盘类:KeyBoardEvent。时间类:TimerEvent。

文本类:TextEvent。

九、          事件侦听器

1、创建事件侦听器

 语法格式:

function 侦听器名称(evt:事件类型):void{…}

 语法格式说明如下:

·侦听器名称:要定义的事件侦听器的名称,命名需符合变量命名规则。

·evt:事件侦听器参数,必需。

·事件类型:Event类实例或其子类的实例。

·void:返回值必须为空,不可省略。

2、管理事件侦听器

•         注册事件侦听器:addEventListener()方法

语法格式:事件发送者.addEventListener(事件类型,侦听器);

•         删除事件侦听器:removeEventListener()方法

语法格式:事件发送者.removeEventListener(事件类型,侦听器);

•         检查事件侦听器:HasEventListener()方法和willTragger()方法

语法格式:事件发送者.hasEventListener(事件类型);

3、事件处理类型

鼠标事件

MouseEvent类定义了10中常见的鼠标事件,具体如下:

•         CLICK:定义鼠标单击事件  DOUBLE_CLICK:定义鼠标双击双击事件

•         MOUSE_DOWN:定义鼠标按下事件  MOUSE_MOVE:定义鼠标移动事件

•         MOUSE_OUT:定义鼠标移出事件  MOUSE_OVER:定义鼠标移过事件

•         MOUSE_UP:定义鼠标提起事件  MOUSE_WHEEL:定鼠标滚轴滚动触发事件

•         ROLL_OUT:定义鼠标滑入事件   ROLL_OVER:定义鼠标滑出事件

键盘事件

它有两种类型的键盘事件:

•         KeyboardEvent.KEY_DOWN:定义按下键盘时事件

•         KeyboardEvent.KEY_UP:定义松开键盘时事件

时间事件

Timer类有两个事件,分别为:

•         TimerEvent.TIMER:计时事件,按照设定的事件发出。

•         TimerEvent.TIMER_COMPLETE:计时结束事件,当计时结束时发出

帧循环ENTER_FRAME事件:

•         该事件能够控制代码跟随Flash的帧频播放,在每次刷新屏幕时改变显示对象。

十、声明和访问类的属性

声明实例属性的语法格式如下所示。

var 属性名称:属性类型;

var 属性名称:属性类型=值;

public var 属性名称:属性类型=值;

声明类实例方法的格式:

function 方法名称(参数…):返回类型{

//方法内容

}

十二、接口的定义

定义接口的方法和定义类相似,不过需要使用interface关键字来实现。

接口可以包含实例方法、静态方法、getter和setter方法。

接口也需要保存为as文件,文件名必须和接口名保持一致,完全相同。

定义接口的语法格式如下所示。

package 包路径{

  访问控制 interface 接口名称{

          function 实例方法名(参数:参数类型):返回类型;

          static function 静态方法名(参数:参数类型):返回类型;

          function get 方法名():返回类型;

          function set 方法名(参数:参数类型):void;

}

}

十三、继承的定义

类的继承要使用extends关键字来实现。其语法格式如下所示。

package{

  class 子类名称 extends 父类名称{

  }

}

十四、显示对象的常见属性

(1)横坐标x:显示对象注册点距离自己父级容器注册点之间的水平距离,以象素为单位。如果父容器是舞台,那么就是自身注册点与舞台原点间的水平距离。

(2)纵坐标y:显示对象注册点与父级容器注册点之间的竖直距离,以象素为单位。若父容器为根对象root,则为自身注册点与舞台原点之间的竖直距离。

(3)宽度width:显示对象最左边到最右边之间的距离,以象素为单位。

(4)高度height:显示对象最上边到最下边之间的距离,以象素为单位。

(5)横向缩放比例scaleX:一个比例值,0~1之间的数字。控制显示对象的横向缩放比例。

(6)纵向缩放比例scaleY:一个比例值,0~1之间的数字。控制显示对象的纵向缩放比例。

(7)鼠标横向横坐标mouseX:鼠标相对于当前显示对象注册点之间的水平距离。

(8)鼠标横向纵坐标mouseY:鼠标相对于当前显示对象注册点之间的竖直距离。

(9)顺时针旋转角度rotation:显示对象绕轴点顺时针旋转的角度。0~180度表示顺时针旋转角度,0~-180度表示逆时针旋转角度。如果超过了这个范围,则自动减去360的整数倍。

(10)透明度alpha:0~1之间的值,0表示完全透明,1表示完全不透明。

(11)可见性visible:Boolean值,用于控制显示对象是否可见。true表示将对象显示,false表示不显示对象。但不管设置成何值,该显示对象始终位于显示对象列表中。

(12)遮照mask:持有的引用是用来遮照的显示对象。

(13)显示对象名字name:通常生产显示对象时,会分配默认的名字。若有需要,可以使用代码进行修改。

(14)父容器parent:在显示列表中每个显示对象都有其父容器。parent属性指向显示对象的父容器,若显示对象不在父容器,则该属性为null。

(15)根对象root:返回SWF文件主类的实例。若显示对象不在父容器,则该属性为null。

(16)舞台stage:该属性持有的引用指向该显示对象所在的舞台。每个Flash程序,都有一个舞台。

除了以上的16个属性之外,DisplayObject对象还有9个属性,分别为:loaderInfo、cacheASBitmap、filters、 scale9Grid、blendMode、accessibilityProperties、opaqueBackground、scrollRect 和transform。这些属性在后面的章节中根据需要进行讲解。

十五、显示对象的方法

(1)getBounds()方法:返回一个矩形区域,该矩形定义相对于显示对象所在坐标系的显示对象区域。

(2)getRect()方法:返回一个矩形区域,该矩形定义相对于显示对象所在坐标系的显示对象区域,注意该区域不包含形状上的笔触宽度。

(3)hitTestObject()方法:返回一个Boolean值,若为true,表示两个对象重叠或相交,否则为不相交。

(4)hitTestPoint()方法:返回一个Boolean值,若为true,表示该对象对应点重叠或相交,否则为不相交。

十六、显示对象的事件

(1)added事件:将显示对象添加到显示列表中时会调度该时间。下面的两种方法会触发此事件:将显示对象添加到容器、将显示对象添加到容器的某一层次。

(2)addedToStage事件:将显示对象直接添加到舞台显示列表或将包含显示对象的子对象添加至舞台显示列表中时会调度该事件。下面的两种情况下会触发此事件:将显示对象添加到容器、将显示对象添加到容器的某一层次。

(3)removed事件:要从显示列表中删除显示对象时会调度该事件。以下两种情况下会生成此事件:将显示对象容器的某个显示对象删除、将显示对象容器中的某个层次的显示对象删除。

(4)removedFromStage事件:要从显示列表中删除显示对象或者删除包含显示对象的子对象时会调度该事件。以下两种情况下会生成此事件:将显示对象容器的某个显示对象删除、将显示对象容器中的某个层次的显示对象删除。

(5)enterFrame事件:播放头进入新帧时调度该事件。若播放头不移动,或者只有一帧,则会继续以帧频调度此事件。

(6)render事件:在显示器述评之前调度该事件。当使用render事件的显示对象进入舞台时,或者显示对象存在于显示列表时才会触发该事件。要保证render事件在当前帧触发,必须调用stage.invalidate()。

十七、显示对象管理

1、添加显示对象

将显示对象直接添加到显示列表中,格式:

容器对象.addChild(显示对象)

将显示对象添加到指定位置,格式:

容器对象.addChildAt(显示对象,位置索引)

2、删除显示对象

移除指定名称的显示对象,格式:

容器对象.removeChild(显示对象)

删除指定索引的显示对象要删除指定位置索引的显示对象,格式:

容器对象.removeChildAt(位置索引)

十八、访问显示对象

要访问加入到容器中的显示对象,可以通过3种方法来实现:通过深度访问、通过名字访问和通过全局坐标访问。

1.通过深度访问显示对象:通过深度来访问显示对象,要使用getChildAt()方法。用法格式如下:

容器对象.getChildAt(深度)

2.通过名称来访问显示对象,要使用getChildByName()方法。用法格式如下:

        容器对象.getChildByName(显示对象名称)

3.通过坐标访问显示对象:在ActionScript 3.0中,可以通过坐标来访问置于该坐标之上的所有显示对象。getObjectsUnderPoint()方法的用法格式如下:

容器对象. getObjectsUnderPoint(点对象);

十九、处理显示对象

1、  改变对象的位置

要改变一个显示对象的位置,只用调整显示对象的横坐标x和纵坐标y这两个属性就可以了。注意x和y属性始终是指显示对象相对于其父显示对象坐标轴的(0,0)坐标的位置。

2、缩放显示对象

若要缩放显示对象,可以采用两种方法来缩放显示对象的大小:使用尺寸属性(width和height)或缩放属性(scaleX和scaleY)。

•         width和height属性使显示对象的宽和高,它们以象素为单位,可以通过指定新的宽度和高度值来缩放显示对象、

•         scaleX和scaleY属性是指显示对象的显示比例,是一个浮点数字,最小值为0,最大不限,值为1表明和原始大小相同。缩放值大于1表示放大显示对象,小于1表示所需显示对象。

3、旋转显示对象

若要旋转显示对象,可使用显示对象的rotation属性来实现。如果要旋转某一个显示对象,可以将此属性设置为一个数字(以度为单位),表示要应用于该对象的旋转量。

   4、淡化显示对象

Flash之所以“闪”,透明度alpha这个属性起到了至关重要的左右。使用该属性可以使显示对象部分透明或者全部透明,也可以通过alpha属性控制显示对象的淡入淡出。alpha属性的值是0到1之间的浮点数。0表示完全透明,1表示完全不透明。

5、拖曳显示对象

只有Sprite及其子类才具有StartDrag()、StopDrag()方法和dropTarget属性。也就是说,只有Sprite及其子类才可以被拖动,执行拖曳动作。StartDrag()方法的参数和使用格式:

显示对象。startDrag(锁定位置,拖动范围);

 6、遮罩显示对象

遮罩效果要使用显示对象的mask属性来实现。用法格式如下:

显示对象1.mask=显示对象2;

若不想继续使用遮罩,那么将显示对象的mask属性设置为null即可。用法格式如下:

显示对象1.mask=null;

7、碰撞检测

所有的显示对象都可以作为检测和被检测的对象来检测碰撞。其方法有两种,用法格式如下:

      显示对象1.hitTestObject(显示对象2);

(说明:该方法用于检测两个显示对象是否发生碰撞,返回一个Boolean值,若为true,表示两个对象发生了碰撞,否则为没有碰撞。)

显示对象.hitTestPoint(x,y,检测方法);

(说明:该方法用于检测显示对象是否与舞台上的某个坐标点发生了碰撞。参数x,y为舞台上的坐标点;检测方法是一个Boolean值,若为true表示检测显示对象的实际像素,false则检测显示对象的边框。同样返回一个Boolean值来表示是否碰撞。)

二十、深度管理

1、显示对象层次交换

SwapChildren()和SwapChildrenAt()方法用于交换处于不同深度的显示对象。其中SwapChildren()方法主要适用于 两个显示对象名称的交换;而SwapChildrenAt()方法主要适用于两个深度之间显示对象的交换。这两个方法的用法格式如下:

容器对象.SwapChildren(显示对象1,显示对象2);

容器对象. SwapChildrenAt(深度1,深度2);

2、调整显示对象深度

如果把现有的显示列表中的显示对象调整到指定的深度,就需要使用setChildIndex()方法。使用该方法将参数中的显示对象移到指定的深度后容器中的显示对象会自动改变自己的深度。用法格式如下:

   容器对象. setChildIndex(显示对象,指定深度);

二十一、MovieClip

1、属性

currentFrame:获取播放头在影片剪辑实例时间轴当前帧的帧数。若该影片剪辑有多个场景,则为当前场景中的帧数。

currentLable:获取播放头在影片剪辑实例时间轴当前帧的帧标签。若当前帧没有帧标签,去之前帧上的标签,若都没有,则为null。

currentlables:获取当前场景的所有标签对象组成的数组。如果该影片剪辑实例没有使用场景,数组会包括整个影片剪辑实例的所有帧标签。

totalFrame:获取当前影片剪辑中所有帧的帧数总和。

frameLoaded:获取从流式SWF文件加载的帧数。

currentScrene:获取当前场景的名称。

screnes:获取一个由场景对象组成的数组,每个对象都列出了影片剪辑实例中场景的名称、帧数和帧标签。

Enabled:获取或设置影片剪辑是否具有按钮行为,默认为true,表示支持按钮行为。

trackAsMenu:获取该对象的其他显示对象是否可以接收鼠标释放事件。

2、方法

play():控制播放头开始播放。

stop():控制播放头停止播放。

gotoAndPlay():控制播放头跳往指定的帧或者标签,并开始播放。

gotoAndStop():控制播放头跳往指定的帧或者标签,但并不播放。

nextFrame():跳到下一帧,并停止。

prevFrame():跳到前一帧,并停止。

nextScrene():跳到下一场景。

prevScrene():跳到前一场景。

二十二、加载并控制外部的影片剪辑

若要加载并控制外部的SWF影片,需要执行下面的操作:

(1)先创建一个URLRequest对象,用于储存要载入文件的URL。

(2)创建一个Loader对象。

(3)调用Loader对象的load()方法,并把URLRequest对象作为参数传递给Loader对象。

(4)建立一个空的显示对象容器,使用addChild()方法将其添加到舞台,用于加载外部载入的影片。

(5)建立事件侦听函数,侦听加载事件是否完成。

(6)加载完成之后,使用addChild()方法将Loader对象添加入空白显示对象容器。

(7)使用显示对象的属性控制该显示对象容器的位置和大小。

(8)使用MovieClip类的播放控制方法控制外部影片的播放。

二十三、通过改变舞台的显示属性来实现一系列的动画效果

1、移动物体

在Flash中,实现物体的运动,运算的原理是:确定速度大小,帧循环刷新时原来的位置坐标加上速度的值。原理主要公式如下:

var _vx:Number=水平速度值

var _vy:Number=竖直速度值

显示对象.x+=vx

显示对象.y+=vy

2、加速运动的物体

加速度和速度关系的公式为:

v=v+a

vx+=ax

vy+=ay

3、减速运动的物体

减速运动中加速度(此处按照加速度为正值)和速度关系的公式为:

v=v-a

vx-=ax

vy-=ay

4、鼠标跟随缓动效果

计算公式为:

dx=目标位置.x-当前位置.x

dy=目标位置.y-当前位置.y

vx=(dx)/2

vy=(dy)/2

5、利用三角函数实现运动效果

数学中三角函数的正弦和余弦函数是对物体的运动非常有用的函数。这两个函数都具有周期性,其值范围为-1~1,而且由于周期性,其值能够在-1~1之间循环变化。利用这些特点,可以实现显示对象周期性的往复运动效果。

6、缩放动画效果

要实现缩放效果,只需实现不断修改显示对象的缩放属性scaleX和scaleY即可。

7、旋转动画效果

要实现旋转一个显示对象的动画效果,只需要修改rotation属性即可。

8、淡入淡出动画效果

淡入淡出效果也是Flash动画制作中最常用的一种技术,此技术的实现是通过改变显示对象的透明度alpha属性实现的。

二十四、借助Timer类实现动画效果

使用Timer类产生的动画效果和使用帧循环ENTER_FRAME事件产生动画的原理一样,都是通过间隔一定的时间进行一次刷屏来实现动画效果。上一节中使用帧循环事件创建的一切动画,都可以是Timer类的事件来实现。

要注意Timer类的TimerEvent.TIMER事件,可能与Flash的刷屏不同步,会产生延迟现象。所以在使用的时候,需要使用updateAfterEvent()方法强制更新屏幕。

使用Timer类实现动画还有几个好处:

•         可以利用Timer.stop()方法控制动画的播放与停止;

•         可以在构建Timer对象时控制动画的刷新次数,实现预期动画效果;

•         可以利用TimerEvent.TIMER_COMPLETE事件,在停止播放时侦听,从事开始新的动作。

二十五、Tween类创建动画效果(淡入淡出动)

•         在ActionScript 3.0中,使用Tween类,可以通过指定操作目标的影片剪辑属性在一定的帧数或者时间内创建动画效果,进而实现影片剪辑的运动动画,缩放动画,淡入淡出动画等显示效果。

•         在Tween类中还可以指定缓动方法,从而实现非线形变化效果。“缓动”是指动画在运行期间的速度非线形变化,使动画显得更加的形象逼真。Tween类中的缓动方法位于fl.transitions.easing包中,该包提供了多种缓动方法供用户使用。

1、创建Tween类对象的方法

格式:

Tween(目标对象,目标对象的属性,缓动方式,初始值,结束值,动画持续时间,记时方式);

参数说明:

目标对象:要控制的显示对象的名称。

目标对象的属性:x和y控制目标运动,Alpha控制目标透明度,Rotation控制目标旋转,ScaleX和ScaleY控制目标缩放。

缓动方式:位于fl.transitions.easing中的6种缓动方式。

初始值:目标对象被控制属性变化初始值。

结束值:目标对象被控制属性变化的结束值。

动画持续时间:动画过程持续的时间,可以以帧为单位,也可以以秒为单位。

计时方式:Boolean值,true表示以秒为单位,false表示以帧为单位。

2、运动这反效果

返回类实现的动画是在动画执行的开始端、结束端或者两端兼有回返动作,用以模拟溢出动画效果。执行动画的方法取决于三个缓动函数:

easeIn:在动画开始时往后运动,然后反向朝目标移动。

easeOut:在动画结束时稍微冲过结束点,然后倒转方向回来朝着目标。

easeInOut:在动画开始时先向后运动,再倒转方向并朝目标移动,结束时冲过目标,然后再倒转方向,朝目标移动。

3、运动回弹效果

回弹类实现的动画是在动画的起始端,结束端或者两端兼有执行回弹动画效果。具体在何端回弹同样取决于三个缓动函数。回弹的次数取决于动画持续的时间,持续的时间越长,回弹的次数越多。此效果可以实现舞台中小球跳动的动画效果。

Bounce类的三个回弹函数效果:

easeIn:在动画开始时以较慢速度开始回弹运动,然后再执行时加快运动速度。

easeOut:在动画结束时以较快速度开始回弹运动,然后再执行时减慢运动速度。

easeInOut:在动画开始

4、正弹弹性效果

Elastic类实现的动画是在动画的起始端,结束端或者两端兼有执行弹性动画效果,运动方式按照正弦波逐渐衰减进行。具体在何端回弹同样取决于三个缓动函数。回弹的次数不受动画持续的时间影响。此效果也可以实现舞台中小球跳动的动画效果。

Elastic类的三个回弹函数效果,此类和Bounce基本类似,区别在与弹性采用正弦方式:

easeIn:在动画开始时以较慢速度开始回弹运动,然后再执行时加快运动速度。

easeOut:在动画结束时以较快速度开始回弹运动,然后再执行时减慢运动速度。

easeInOut:在动画开始时缓慢地开始跳动,进行加速运动,最后进行减速。

5、Regular和Strong运动效果

Regular类实现的动画是加速运动、减速运动和先加速后减速的动画效果。具体在方式同样取决于三个缓动函数。

Regular类的三个回弹函数效果:

easeIn:在动画开始时做初速度为零的加速运动。

easeOut:动画执行匀减速运动,末速度为零。

easeInOut:在动画开始时做初速度为零的加速运动,然后做减速运动,直到速度为零。

6、线性运动效果

None类实现的是一种线形运动的效果,显示对象一直做运动运动。其方法函数有四种easeIn()、easeOut()、easeInOut()和easeNone(),这四种方法实现的是相同的效果,在执行时都是匀速直线运动。使用时可以任意选择。

二十六、TransitionManger类创建动画效果(过渡动画)

创建改类的实例的方法有两种:

(1)、TransitionManager.start()方法,用法格式如下:

TransitionManager.start(目标影片,过渡对象参数);

目标影片:指过渡效果作用的影片。注意,只能时影片剪辑实例。

过渡对象参数:对象,包含所有的过渡参数的集合。对象应包含type参数,该参数指示要应用的过渡效果类。此外,还必须包括该过渡效果类所必需的任何参数。

(2)、TransitionManager.startTransition()方法,用法格式如下:

var 过渡实例引用:TranstitionManager=new TransitionManager(目标对象);

过渡实例引用.startTransition(过渡对象参数)

1、遮帘过渡Blinds效果

此过渡实现影片剪辑逐渐消失或逐渐出现的矩形来显示的过渡动画效果,类似于百叶窗效果。该过渡对象参数为:

type:Blinds,direction:Transition.IN,duration:2,easing:None.easeNone,numStrips:10,dimension:0;

参数说明:

type:指明采用10种过渡效果中的那一种,所有的过渡效果共有参数。

direction:有两种形式Transition.IN和Transition.OUT,指明过渡动画的方向,共有参数。

duration:过渡动画持续时间,共有参数。

easing:过渡动画补间效果,fl.transitions或fl.transitions.easing 包中的一种效果,共有参数。

numStrips:“遮帘”效果中的遮罩条纹数,推荐在1~50之间,独有参数。

dimension:指明遮罩条纹是垂直的(0)还是水平的(1),独有参数。

2、淡化过渡Fade效果

此过渡实现影片剪辑淡入淡出的动画效果。该过渡对象参数为:

type:Fade, direction:Transition.IN, duration:9, easing:Strong.easeOut

说明:此效果只使用共有参数,不需要其它参数。

3、飞行过渡Fly效果

此过渡实现影片剪辑从指定方向飞入的动画效果。该过渡对象的对象参数为:

type:Fly, direction:Transition.IN, duration:3, easing:Elastic.easeOut, startPoint:9

参数说明:

startPoint:指明起始位置的整数,范围1~9,分别为:左上:1、上中:2、右上:3、左中:4、中心:5、右中:6、左下:7、下中:8、右下:9。独有参数。

4、光圈过渡Iris效果

此过渡实现影片剪辑以缩放的方形或圆形动画遮罩来显示动画效果。该过渡对象参数为:

type:Iris,direction:Transition.IN,duration:2,easing:Strong.easeOut,startPoint:5,shape:Iris.CIRCLE

参数说明:

startPoint:指明起始位置的整数;范围1~9,分别为:左上:1、上中:2、右上:3、左中:4、中心:5、右中:6、左下:7、下中:8、右下:9。

shape:有两种,为fl.transitions.Iris.SQUARE(方形)和fl.transitions.Iris.CIRCLE(圆形)的遮罩形状。

5、照片过渡Photo效果

此过渡实现影片剪辑对象像放映照片一样出现或消失的效果。该过渡对象参数为:

type:Photo, direction:Transition.IN, duration:1, easing:None.easeNone

说明:此效果只使用共有参数,不需要其它参数。

6、像素溶解过渡PixelDissolve效果

此过渡使用随机出现或消失的棋盘图案矩形来显示或隐藏影片剪辑对象。该过渡对象参数为:

type:PixelDissolve, direction:Transition.IN, duration:2, easing:Regular.easeIn, xSections:10, ySections:10

参数说明:

xSections:指明沿水平轴的遮罩矩形部分的数目。推荐的范围1~50。

ySections:指明沿垂直轴的遮罩矩形部分的数目。推荐的范围1~50。

7、旋转过渡Rotate效果

此过渡实现影片剪辑旋转动画效果。该过渡对象参数为:

type:Rotate, direction:Transition.IN, duration:3, easing:Strong.easeInOut, ccw:false, degrees:720

参数说明:

ccw:Boolean值:false表示顺时针旋转;true表示逆时针旋转。

degrees:指明显示对象要旋转的度数。推荐范围1~9999。旋转一周为360度。

8、挤压过渡Squeeze效果

此过渡实现水平或垂直缩放影片剪辑对象。过渡对象参数为:

type:Squeeze, direction:Transition.IN, duration:2, easing:Elastic.easeOut, dimension:1

参数说明:

dimension:指明“挤压”效果是水平的(0)还是垂直的(1)。

9、划入/划出过渡Wipe效果

此过渡使用水平移动的动画遮罩形状来显示或隐藏影片剪辑对象。过渡对象参数为:

type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:1

参数说明:

startPoint:指明起始位置的整数;范围1~9,分别为:左上:1、上中:2、右上:3、左中:4、中心:5、右中:6、左下:7、下中:8、右下:9。

10、缩放过渡Zoom效果

此过渡实现按比例缩放来放大或缩小影片剪辑对象。该过渡对象参数为:

type:Zoom, direction:Transition.IN, duration:2, easing:Elastic.easeOut

说明:此效果只使用共有参数,不需要其它参数。

二十七、数组

•         数组一般分类两类:索引数组和关联数组。

•         索引数组:数组中的每个元素都存储在指定编号的位置中,这个位置称为该数组的索引。数组的元素都用唯一的整数下标来索引。该索引的起始值为0,每个元素保存在索引指定的位置。多维数组也可以通过索引来访问数组,也是索引数组。

•         关联数组:数组中的每个元素都有对应的键值,此键值为唯一的字符串,作为数组元素的索引。关联数组是Object类的实例,每个键值都与一个属性名称对应。关联数组就是键和值对的无序集合。

数组有1个属性,21个方法:

length:数组唯一的属性,记录数组中元素的数目。注意,空的位置也计算在内。

concat():将指定的元素追加到数组的尾部,并返回一个新的数组。

every():使用一个测试函数对数组中的元素进行测试,测试函数返回false结果。

filter():使用一个测试函数对数组中的元素进行测试,把所有测试满足条件的值加入新的数组。

forEach():对数组中的元素都执行函数。

indexOf():用于搜索数组,返回满足条件元素的索引位置。注意是全等匹配。

join():使用指定的分隔符将数组中的元素连接为字符串,并返回新的字符串。

lastIndexOf():倒向搜索数组,返回满足条件元素的索引位置。注意全等匹配。

map():使用测试函数访问数组中的元素,把满足条件的元素组合为新数组并返回。

pop():删除数组中最后一个元素,并返回新的数组。

push():将一个或多个元素追加到数组的尾部,并返回数组长度。

reverse():在当前位置倒转函数。

shift():删除数组中的第一个元素,并返回删除的元素。

slice():从原数组中复制一段数据组成新的数组并返回。

some():使用测试函数访问数组中的元素,直到获得返回条件为true的元素。

sort():对数组中的元素进行排序。

sortOn():对数组中的元素按照指定字段进行排序。

splice():从数组中删除元素或添加元素。

toLocaleString():把数组转换为一个字符串,用逗号分开。

toString():把数组转换为一个字符串,并用逗号分开。

unshift():将一个或者多个元素添加到数组的开头,并返回数组的新长度。

二十八、索引数组

1、创建和访问数组

创建数组的方法有两种:一是利用构造函数创建;二是利用中括号赋值来创建。

构造函数创建数组的代码如下:

var _arr:Array=new Array()

//创建一个空数组

var _arr:Array=new Array(3)

//创建一个长度为3的数组,数组中的元素为空

var _arr:Array=new Array(1,2,3,4)

//创建一个数组,并直接对该数组赋值

利用中括号赋值创建数组的代码如下:

var _arr:Array=[]

//创建一个空数组

var _arr:Array=[1,2,3]

//创建一个数组,并直接对该数组赋值

2、在数组中新增元素

能够给数组新增元素的方法有三种,分别为:push()、unshift()和splice()方法。这三种向数组添加新元素的方法,push()方法实 现向数组尾部添加新元素,unshift()方法实现向数组的头部添加新元素,splice()实现向数组中的指定位置添加新元素。

(1)像数组尾部添加新元素

数组名.push(参数值)                              //在数组尾部添加一个值

数组名.push(参数值,参数值,参数值……)         //添加多个值

数组名.push(数组名)                        //把已有数组中的值添加到数组的尾部

(2)像数组头部增加新元素

数组名.unshift(参数值)                        //添加一个值

数组名.unshift(参数值,参数值,参数值)        //添加多个值

数组名.unshift(数组名)                  //把另一个数组的元素添加到数组的开头

(3)向数组中指定位置添加新元素

数组名.splice(索引位置,删除元素数目,添加的元素)

用法参数说明:

索引位置:数组中要插入元素的索引值,如果不删除则为加入点的索引。

删除的元素数目:要删除的元素个数,如果要插入元素,该值为0。

添加的元素:要向数组中添加的元素,可以是一个元素,也可以用逗号隔开增加多个元素,也可以把一个数组中的元素都加入。用法如下:

     数组名.spice(删除点的索引,0,参数值)

     数组名.splice(删除点的索引,0,参数值,参数值)

     数组名.splice(删除点的索引,0,数组名)

3、删除数组中的元素

能够删除数组中元素的方法也有三种,分别为:pop()、shift()和splice()方法。pop()方法用于删除数组的最后一个元素,shift()方法用于删除数组中的第一个元素,splice()方法则用于删除数组中指定位置的一个或多个元素。

(1)删除数组尾部元素

数组名.pop();

说明:该方法不需要参数,直接删除数组的最后一个元素。

(2)删除数组头部元素

数组名.shift();

说明:该方法不需要参数,直接删除数组第一个元素,剩余元素的索引值自动减1。

(3)删除数组指定位置元素

数组名.splice(索引位置,删除元素数目,添加的元素)

用法参数说明:

索引位置:数组中要删除元素的索引值。

删除的元素数目:要删除的元素个数,如果要插入元素,该值为0。

添加的元素:要向数组中添加的元素,可以是一个元素,也可以用逗号隔开增加多个元素,还可以把一个数组中的元素都加入。其常用方法表达式如下:

数组名.splice(删除点的索引,要删除的元素数目)

//删除指定位置指定数目的元素

数组名.splice(删除点的索引,要删除的元素数目,参数值,参数值,参数值)

//删除指定位置指定数目的元素并插入新的元素

数组名.splice(删除点的索引)

//删除指定位置之后的所有元素

4、对数组进行排序

共有三种方法,分别为:reverse();sort()和sortOn()方法。reverse()方法用于实现数组的翻转,sort()方法实现数组按指定方式排序,sortOn()方法则实现按数组指定属性进行排序。

(1)数组翻转

数组名.reverse();

(2)数组排序

数组名.sort()               //默认排序

数组名.sort(排序方式)       //使用“排序方式”中的参数进行排序

说明:默认的排序方式是按照字符串字母的顺序来排序的,即使数组中的元素是数值,也要按照字符串排序而不是数值的大小。

数组的排序方式有5种:

·Array.CASEINSENSITIVE:其值为1,排序方法为不区分大小写字母顺序排序,数字为从小到大。

·Array.DESCENDING:其值为2,排序方法为字母排序。

·Array.NUMERIC:其值为16,排序方法为数字大小顺序。

·Array.RETURNINDEXEDARRAY:值为8,指定排序后的数组包含数组索引。

·Array.UNIQUESORT:值为4,必须为唯一行排序,如果两个元素相同,则放弃排序。

可以同时使用多个排序方式,中间使用“|”隔开。

(3)数组属性排序

数组名.sortOn(属性名称)       //默认顺序

数组名.sortOn(属性名称,排序方式)    //使用“排序方式”中的参数进行排序

格式说明:

属性名称:数组中元素属性名称,按照该属性名称的值进行排序。

排序方式:和sort()方法的方式相同

(4)数组随机排序

用Earray类中Tarray()方法实现对一个数组的随机排序。

5、从数组中查找元素

(1)indexof()方法和lastIndexof()方法

·数值名.indexof(要查找的元素)

·数组名.lastindexof(要查找的元素)

·数值名.indexof(要查找的元素,查找的起始位置)

·数组名.lastindexof(要查找的元素,查找的起始位置)

说明:indexof()方法是从前到后按顺序查找,lastIndexof()方法是从后到前按顺序查找

(2)自定义方法查找数组

6、数组比较

要比较两个数组,必须使用循环来比较数组中的每一个元素是否相等,如果所有的元素都相等,则数组相等,否则不相等。

 7、从数组中获取元素

从数组中获取元素的方法有两种,一种是利用slice()方法获取指定索引后的全部或一部分元素,并组成新的数组,另一种方法是使用循环并返回符合条件的元素组成的新数组。

(1)slice()方法

slice()方法从原数组中获取一定范围内的元素并组成新数组返回,此过程并不修改原数组中的元素。其用法格式如下所示。

数组名.slice(开始位置,结束位置)

(2)自定义方法获取数组中的元素

slice()方法是从一个指定位置到另一个指定位置之间获取元素,但不能只利用开始位置获取指定数量的元素。

 8、复制数组

通常使用concat()方法或者slice()方法来实现对数组的复制,当然也可以通过自定义的方法来复制数组。

(1)concat()方法:concat()方法复制数组,其实质为将一个空元素与原数组相连接,而组成一个新的数组,只是由于该方法没有提供参数,所以产生的新数组和原数组相同,从而实现了数组的复制效果。其用法格式如下所示

数组名.concat()

(2)slice()方法:slice()方法复制数组的实质为:从数组中截取指定的元素而返回一个新的数组,在没有指定截取位置和截取数目的情况下,截取的是数组中的全部元素,这样就实现对数组的真正复制效果。其用法格式如下所示。

数组名.slice()

(3)自定义方法实现数组的复制:自定义数组复制方法Earray.duplicate()方法,使用for循环语句,把原始数组中的元素全部添加到新数组当中,并返回新的数组。

9、数组转换为字符串

两种方法,分别为:toString()方法和join()方法。toString()方法是将数组中的元素使用逗号连接起来,转为字符串;而join()方法的实质是将数组中的元素使用指定的字符将数组连接起来,连接的字符是可以任意设置的。

1.toString()方法,其用法格式如下:

数组名.toString()

2.join()方法,其用法格式如下所示。

数组名.join(分隔符号)

二十九、关联数组

关联数组是以指定的名称为索引的数组,数组中的每一个元素都是键/值对应。关联数组类似于哈希表或映射。关联数组中使用字符作为元素的索引,该字符通常称为关键字或者属性。

1、创建关联数组

关联数组是Object类的实例,所以创建关联数组不是使用Array类而是Object类。要创建关联数组,有三种方法可以选择:利用Object构造函数创建、使用对象文本创建和使用数组元素创建。

(1)利用Object构造函数:构造函数创建关联数组,其格式如下所示。

var 对象数组:Object={关键字1:值,关键字2:值}

(2)使用对象文本创建关联数组:该方式在创建时先创建一个对象,不需要初始化对象数据,在使用时再动态的添加关键字和值。

(3)使用数组元素创建关联数组:该方式同样先创建一个空白的对象,然后使用数组操作符[]把关联数组的关键字和值追加到关联数组中。

2、读取关联数组

三十、FLASH坐标系统

1、极坐标系

在数学中,为了表示二维的图形和位置,还有另一种坐标系统,就是极坐标系。极坐标系如图所示。

极坐标系用(r,θ)表示一个点。其中r表示该点与原点之间的距离,称为极径,θ用于指明该点与原点之间的方向。

2、Flash的坐标

在ActionScript3.0中,涉及 坐标有4对:

(1)x和y:显示对象相对于父级显示对象的坐标。

(2)mouseX和mouseY:用于指示鼠标当前的坐标,如果指定显示对象,则为相对显示对象的坐标,否则为相对于舞台的坐标。

(3)localX和localY:用于鼠标(mouseEvent)事件中,用于获取事件发生点对于显示对象的位置坐标。

(4)stageX和stageY:用于鼠标(mousreEvent)事件中,用于获取事件发生点相对于舞台的位置坐标。

三十一、数学处理

Math类是Flash中的顶级类,共有8个常量、18个方法。此类所有的属性和方法都是静态的。Math类中用于处理数字的方法共11个,分别 为:Math.abs()、Math.ceil()、Math.exp()、Math.floor()、Math.log()、Math.max()、 Math.min()、Math.pow()、Math.random()、Math.round()和Math.sqrt()。

1、Math.abs()方法

Math.abs()为计算绝对值方法。我们都知道数字有正数和负数,那么计算的结果也就有正有负,利用此方法,把负数转换为正数,而正数则不变。

2、Math.ceil()方法

Math.ceil()方法对指定的参数进行取整操作,取整的规则是取得参数或表达式的上限的整数值,也就是比参数大的那个整数值。

3、Math.exp()方法

Math.exp()方法是获取以自然对数的底(e)的x次幂的值,x由参数x指定。

4、Math.floor()方法

Math.floor()方法和Math.ceil()方法恰好相反,获取一个数字或表达式的一个下限的整数值,也就获取的整数值是比指定的数字小的那一个整数。注意:负数的取法和Math.ceil()的取法一样,只不过是取得一个绝对值大的一个整数。

5、Math.log()方法

Math.log()方法用于获取参数的自然对数的值。

6、Math.max()方法

Math.max()方法比较两个或者多个数字(表达式)的大小关系,并返回最大值。

7、Math.min()方法

Math.min()方法比较两个或者多个数字(表达式)的大小关系,并返回最小值。

8、Math.pow()方法

Math.pow()方法进行幂运算。参数为有两个,其用格式如下:

Math.pow(参数1,参数2)

该方法用来计算参数1的参数2次方,返回计算的结果。

9、Math.round()方法

Math.round()方法采用四舍五入,取得一个表达式或者数字最接近的一个整数。

10、Math.sqrt()方法

Math.sqrt()方法用于计算一个数字或表达式的平方根。注意这里的数字或表达式应该是大于或者等于0的数字。

11、Manth.random()方法

Math.random()方法是随机函数,用于获取一个介于0和1之间的一个数字,该数字的小数位数为14位。随机函数非常的有用,在Flash编程过 程中经常使用,比如初始化显示对象的位置时可以随机的控制显示对象的位置,显示对象运动时可以控制显示对象的速度随机变化。

获取多个随机数字:

·getrandomrange():获得一个介于最小值和最大值之间的随机整数。

·getrandomdot():获得一个整数位数为m,小数位数为n的随机数。

·getrandomT():获得k个可重复的介于最大值和最小值之间的一个数组。

·getrandomK():获得k个不重复的介于最大值和最小值之间的一个数组。

三十二、三角函数

Math类中的三角函数共有7个,分别为:Math.sin()、Math.cos()、Math.tan()、Math.atan()、Math.atan2()、Math.as

分享到:
share

    图片原图

    loading

    loading