Flash入门教程.docx

上传人:b****1 文档编号:1990646 上传时间:2023-05-02 格式:DOCX 页数:29 大小:260.59KB
下载 相关 举报
Flash入门教程.docx_第1页
第1页 / 共29页
Flash入门教程.docx_第2页
第2页 / 共29页
Flash入门教程.docx_第3页
第3页 / 共29页
Flash入门教程.docx_第4页
第4页 / 共29页
Flash入门教程.docx_第5页
第5页 / 共29页
Flash入门教程.docx_第6页
第6页 / 共29页
Flash入门教程.docx_第7页
第7页 / 共29页
Flash入门教程.docx_第8页
第8页 / 共29页
Flash入门教程.docx_第9页
第9页 / 共29页
Flash入门教程.docx_第10页
第10页 / 共29页
Flash入门教程.docx_第11页
第11页 / 共29页
Flash入门教程.docx_第12页
第12页 / 共29页
Flash入门教程.docx_第13页
第13页 / 共29页
Flash入门教程.docx_第14页
第14页 / 共29页
Flash入门教程.docx_第15页
第15页 / 共29页
Flash入门教程.docx_第16页
第16页 / 共29页
Flash入门教程.docx_第17页
第17页 / 共29页
Flash入门教程.docx_第18页
第18页 / 共29页
Flash入门教程.docx_第19页
第19页 / 共29页
Flash入门教程.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Flash入门教程.docx

《Flash入门教程.docx》由会员分享,可在线阅读,更多相关《Flash入门教程.docx(29页珍藏版)》请在冰点文库上搜索。

Flash入门教程.docx

Flash入门教程

FlashAS入门教程

本文档前面大半截都在讲一些基础,如果大家觉得太啰嗦或者是已经掌握到这些内容了,可以直接跳过看最后的例子。

有任何问题请联系我,谢谢~

Flash,中文字义是“闪”的意思,因此,做Flash相关工作的及Flash爱好者通常被称之为“闪客”。

从1996年的FutureSplashAnimator(flash1)发售到现在的FlashCS3,flash一共发布了9个正式的版本。

从flash4开始flash加入了编程的功能,到Flash5里编程功能得到了完善(即是As1.0),到FlashMX2004的As2.0、现在最新FlashCS3的As3.0,ActionScript这个当初命名为动作脚本语言的Flash自带的程序语言在这些年间不断的壮大和完善,特别是最新的As3,已经达到和常规的如C++、Java等计算机语言能相提并论的地步了。

 

Flash常规元件共有三种:

即图形元件(Picture)、按钮元件(Button)和影片剪辑元件(MovieClip通常简写为mc)

▪图形元件

可用于静态图像,并可用来创建连接到主时间轴的可重用动画片段。

图形元件与主时间轴同步运行。

交互式控件和声音在图形元件的动画序列中不起作用。

由于没有时间轴,在舞台上也没有实例名,图形元件在FLA文件中的尺寸小于按钮或影片剪辑,它在舞台上能够播放的帧数取决于它在时间轴里出现的帧数。

个人的感觉好象是美工gg或mm都挺喜欢图形元件的(比方说李MM),因为图形元件可以在工作界面里很方便的预览,而as程序员则基本是清一色的用mc。

说实话我从未用过图形元件。

^_^

▪使用按钮元件

可以创建用于响应鼠标单击、滑过或其它动作的交互式按钮。

可以定义与各种按钮状态关联的图形,然后将动作指定给按钮实例。

按钮一共有四帧:

分别是普通、鼠标经过、点击和点击热区四个相对应的状态。

▪使用影片剪辑元件(

可以创建可重用的动画片段。

影片剪辑拥有各自独立于主时间轴的多帧时间轴,而且在舞台上拥有自己的实例名。

您可以将多帧时间轴看作是嵌套在主时间轴内,它们可以包含交互式控件、声音甚至其它影片剪辑实例。

当影片剪辑出现在舞台上,哪怕是它所在的时间轴的帧只有一帧,它仍然可以把自己内部的动画完全播完,这和图形元件非常的不同。

举个区别mc和picture的例子:

(图1)

舞台上有一个元件,它的本身有一段10帧的补间动画:

(图2)

如果舞台上这个元件是picture的话,生成的文件只能看到这个元件的第一帧,如果这个元件是mc的话你可以看到它自身的补间动画。

Flash的常用名词:

舞台(Stage):

台是您在创建Flash文档时放置图形内容的矩形区域。

帧(Frame):

帧共分为三种即关键帧、空白关键帧和普通帧(一般帧)

帧率:

即一秒内flash播放的帧数,通常更高的帧数会让flash显得更多加自然,当然代价也是使文件大小倍增(特别是逐帧动画),flash默认的12帧基本上是刚刚骗过人的眼睛,一个好的动画通常帧数也是比较足的。

做游戏特别是动作游戏,至少也得24帧以上才基本过得去,好的游戏通常是要求30或45帧甚至60帧。

关键帧:

帧上面有实际内容的帧就是关键帧,只要有任何的东西在(哪怕是一个空白的mc),都会显示为关键帧

空白关键帧:

顾名思义当然是没有内容的关键帧了

普通帧:

普通帧不同于关键帧的地方在于普通帧显示的内容完全取决于它前面的关键帧的内容,普通帧不能独立的存在于一个单独的层上。

图层:

图层可以帮助您组织文档中的插图。

可以在图层上绘制和编辑对象,而不会影响其它图层上的对象。

在图层上没有内容的舞台区域中,可以透过该图层看到下面的图层。

需要说明一下的是图层和mc的深度息息相关的。

越上面的图层所在的元件的深度也越高,不过在ActionScript里可以用语句动态的调整各元件之间的层级关系,请注意。

时间轴:

时间轴用于组织和控制一定时间内的图层和帧中的文档内容。

与胶片一样,Flash文档也将时长分为帧。

图层就像堆叠在一起的多张幻灯胶片一样,每个图层都包含一个显示在舞台中的不同图像。

时间轴的主要组件是图层、帧和播放头。

点语法:

在ActionScript中,应使用点(.)运算符(点语法)访问属于舞台上的对象或实例的属性或方法。

您还可以使用点运算符来确定实例(例如影片剪辑)、变量、函数或对象的目标路径。

点语法表达式以对象或影片剪辑的名称开头,后面跟着一个点,最后以要指定的元素结尾。

路径:

路径分两种:

一是绝对路径二是相对路径。

说这个之前先说几个flash里常用的关键字:

this(当前)、_parent(父系)、_root(主时间轴,根轴。

不管你的flash有多么的复杂,主时间轴只有一个,不过由于有时会将整个一个swf作为别一个swf元件载入,所以被加载的swf的主时间轴也会发生变化,因此个人不太建议用_root。

在as3中,它已被Adobe删除,并且没有替代者。

绝对路径:

相对好理解一些,也是初心者和菜鸟们最喜欢的为数不多的flash关键词之一。

比方说主时间轴里有一个mc叫a,而另一个同在主时间轴上的影片剪辑b里有一个影片剪辑叫c的可以用绝对路径一下子就访问到a:

_root.a,不管发起访问的对象是谁,只要用_root.a就一定可以访问到影片剪辑a,因为主时间轴只有一个,而不用考虑自己所处在的位置。

Ps:

如果在代码中使用_root,在将SWF文件加载到另一个Flash文档中时可能会遇到错误。

在将SWF文件加载到一个不同的SWF文件中时,加载的文件中的_root可能指向该文件加载到的SWF文件的根范围,而不是像您所期望的那样指向它自已的根。

这可能会导致不可预料的结果,也可能会导致完全无法运行。

相对路径:

以当前为出发点,对其他对象访问的方式。

还是舞台上还一个例子摆放方式:

当b里的c要访问主时间轴上的a的时候应该这么写:

this._parent._parent.a

如果a要访问c的话应该这么写this._parent.b.c

相对路径相对要复杂和麻烦一点,但很灵活,不过对于初学者来说要理清这个关系是有些头大的(习惯了就好)。

AS基础

做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用。

这里我只简单的介绍一下AS的基本常识,更多多更详细的东西请参阅flash的自带的帮助,没有安装Flash的同学可以在\\172.31.14.190\网站服务器03\网站服务器01\制作部资料站\学习资源\Flashas3帮助文件里找到中文版的CHM格式的flash帮助文件(学flash不安装flash?

^_^!

变量的声明:

可以在时间轴中的帧上声明变量,直接在对象上声明,或在一个外部类文件中声明。

应使用var关键字定义变量并遵守变量命名约定。

可以声明一个名为n的变量,如下例中所示:

varn:

Number;

n=10;

其中var是声明变量的关键字,除了声明全局变量以外所有的变量都用这个关键字声明,as2对变量的声明要求不是特别严格,没有声明的变量也可以直接使用,但有时会出现一些问题,所以,要使用的变量还是老老实实的声明一下比较好。

n就是变量名,开始为变量命名时要小心,因为尽管它们几乎可以用任意名称,但是仍然有一些规则需要遵循。

变量名称仅能包含字母、数字和美元符号($)。

变量名称不能以数字开头。

变量必须是唯一的。

(注意:

理论上中文也是可以用做变量名的,不过由于flash对中文的支持并不是特别的地道,用中文做变量时经常会出现很多无法预计的问题,因此个人不建议用中文做为变量名)

冒号的后面就是这个变量的数据类型,常用的数据类型共有:

Number(数字)、String(字符串)、Boolean(布尔)、Object(对象)、Array(数组)、MovieClip(影片剪辑)、Fuction(函数)等等。

Number数据类型是双精度浮点数。

数字对象的最小值大约为5e-324,最大值大约为1.79E+308。

您可以使用加(+)、减(-)、乘(*)、除(/)、求模(%)、递增(++)和递减(--)等算术运算符来操作数字。

字符串是诸如字母、数字和标点符号等字符的序列。

在ActionScript语句中输入字符串的方式是将其放在单引号(')或双引号(")之间。

布尔值是true或false中的一个。

布尔值经常与ActionScript语句中通过比较来控制脚本流的逻辑运算符一起使用。

为了不影响节奏,其他几个相对复杂的数据类型放在后面讲……下面接上面的例子:

后面的n=10就是给新声明的数字变量n赋值,也可以一步把声明和赋值完成:

varn:

Number=10。

如果没有数据类型的声明,比方说前面是这么声明的:

varn=10(n是数字变量),在后面那怕再加上一句n=”hellFire”(n又变成字符串变量了),flash在生成时也不会报错,但这个程序执行起来就非常的危险了,因此养成良好的变量声明习惯是编写as脚本基础。

变量的作用域

变量的范围是指识别(定义)变量的区域和可以引用变量的区域。

变量在其中被识别的区域可能在某个时间轴中或在某个函数内部,也可能在整个应用程序中是全局已知的。

在使用ActionScript开发Flash应用程序时,了解变量范围是非常重要的。

范围不仅表示可以在什么时间和位置引用变量,还表示一个特定的变量可以在应用程序中存在多长时间。

在函数体中定义变量时,一旦指定的函数结束,变量就不再存在了。

如果您试图在错误的范围内引用对象或引用已过期的变量,您的Flash文档中将会出错,这将导致出现意外情况或使功能受到破坏。

在ActionScript中有三种类型的变量范围:

∙全局变量和函数对于文档中的每个时间轴和范围均可见。

因此,全局变量是在代码的所有区域中定义的。

∙时间轴变量可用于该时间轴上的任何脚本。

∙局部变量在声明它们的函数体(由大括号界定)内可用。

因此,局部变量仅仅是在代码的一部分中定义的。

Ps:

局部变量因为是临时的变量,它会随着函数的被调用被创建,会随着函数执行的结束而被自动删除,同时也可以释放它所占据的资源,尽可能的使用局部变量高级程序员节省资源的必备法宝;相反的全局变量因为会自始到终的常驻在内存里面,它是蹲在那里不会走的,除非你结束当前正在执行的flash。

所以有极端的说法是:

全局变量是开发者的噩梦!

虽说有点过,不过也确实从侧面反映了一些事实。

关于运算符

本节介绍关于常见类型的运算符、运算符优先级和运算符结合律的一般规则。

运算符是指定如何组合、比较或更改表达式中的值的字符。

表达式是Flash可以计算并返回值的任何语句。

可以通过组合运算符和值或者调用函数来创建表达式。

++

递增(前缀)

--

递减(前缀)

+

一元+

!

一元-(非)

typeof

返回类型信息

void

返回未定义值

*

乘法

/

除法

%

求模

+

加法

-

减法

<

小于

>

大于

<=

小于或等于

>=

大于或等于

instanceof

检查原型链

in

检查对象属性

=

赋值

*=

乘法赋值

/=

除法赋值

%=

求模赋值

+=

加法赋值

-=

减法赋值

<<=

按位左移位赋值

>>=

按位右移位赋值

>>>=

按位无符号右移位赋值

&=

按位"与"赋值

^=

按位"异或"赋值

|=

按位"或"赋值

&&

逻辑"与"

||

逻辑"或"

<<

按位左移位

>>

按位右移位

>>>

按位无符号右移位

&

按位"与"

^

按位"异或"

|

按位"或"

?

:

条件

由于运算符众多所以不一一举例说明了,各位可以看flash的帮助文档的“学习AdobeFlash里的ActionScript2.0”里的“关于运算符”详细了解,没有安装Flash的同学可以在\\172.31.14.190\网站服务器03\网站服务器01\制作部资料站\学习资源\Flashas3帮助文件里找到中文版的CHM格式的flash帮助文件。

保留字

命名实例和变量时,应避免使用保留字,否则会引起代码错误。

保留字包括ActionScript语言中的关键字。

此外,不要用ActionScript2.0语言中的任何字(称为语言构造)作为实例或变量名称。

ActionScript构造包括类名称、组件类名称、方法和属性名称以及接口名称。

警告

永远不要使用不同的大小写来避免与保留字发生冲突。

例如,将TextField类的一个实例命名为textfield(它不会与TextField发生冲突,因为Flash是区分大小写的)就是一种欠佳的编码做法。

add

and

Break

case

catch

class

continue

default

delete

do

dynamic

else

eq

extends

false

finally

for

function

ge

get

gt

if

ifFrameLoaded

implements

import

in

instanceof

interface

intrinsic

le

it

ne

new

not

null

on

onClipEvent

or

private

public

return

set

static

super

switch

tellTarget

this

throw

try

typeof

undefined

var

void

while

with

根据ECMAScript(ECMA-262)第4版语言规范草案,在Flash中将下列字保留起来以供将来使用。

请避免使用这些字,因为在未来版本的Flash中可能会使用它们。

as

abstract

Boolean

bytes

char

const

debugger

double

enum

export

final

float

goto

is

long

namespace

native

package

protected

short

synchronized

throws

transient

use

volatile

如何编写Flash代码

Flash的代码可以写在帧、按钮和mc上(注意:

as3开始不能把代码写在元件上了!

),方法:

点击相应的区域后打开动作面板即可输入代码。

当然还有外面的类文件里也可以写,写在图形元件里的代码是不会被执行的。

语句是告诉FLA文件执行操作的指令,例如执行特定的动作。

例如,可以使用条件语句确定某一条件是否为true或是否成立。

然后,代码可以根据条件是否为true执行指定的动作,例如函数或表达式。

例如,if语句是一个条件语句,它可对一个条件求值以确定代码中应发生的下一个动作。

//if语句

if(条件){

//语句;

}

另一个示例是return语句,该语句返回一个结果,并将其作为执行该语句的函数的值。

设置ActionScript格式或编写ActionScript时有多种不同的方法可供选择。

您所用的构成语法的方式可能与其它编写ActionScript的程序员的方式不相同,例如,在代码中分隔语句的方式或放置大括号({})的位置。

虽然可以使用几种不同的方法构成语句,且都不会破坏代码,但是要编写结构良好的ActionScript,需要遵循一些一般的准则。

一行仅放置一个语句以增强ActionScript的可读性。

下例中提供了我们建议使用和建议不要使用的语句:

theNum++;//建议

theOtherNum++;//建议

aNum++;anOtherNum++;//不建议

将变量指定为单独的语句。

请看下面的ActionScript示例:

varmyNum:

Number=(a=b+c)+d;

此ActionScript在代码中嵌入了一个赋值语句,使代码难于阅读。

如果将变量指定为单独的语句,就可以增强可读性,如下例所示:

vara:

Number=b+c;

varmyNum:

Number=a+d;

trace

trace()语句向“输出”面板发送特定信息。

例如,测试SWF文件时,当按下按钮或播放帧时可以将结果发送到输出面板。

trace()语句类似于JavaScriptalert语句。

在脚本中使用trace()语句时,可以使用表达式作为参数。

在测试环境下表达式的值将显示在输出面板中。

出用法:

trace(你想看到的输出结果),比如有一个变量n的值为5,trace(n)后就能看到输出面板上输出一个“5”字。

实践证明,trace是每一个as程序员的“居家旅行、谋财害命”必备法宝,特别是相对复杂一点的代码,当你不知道程序的具体执行的先后顺序及一些变量的当前值的时候,trace就显得尤为重要了。

 

常用语句

1.条件语句

if…elseif(可选)…else…

可以使用if..elseif条件语句测试多个条件。

if..elseif语句中可以使用以下语法:

//else-if语句

if(condition){

//语句;

}elseif(condition){

//语句;

}else{

//语句;

}

如果要检查一系列条件,就要在Flash项目中使用if..elseif块。

例如,如果要根据用户在一天中的访问时间在屏幕上显示不同的图像,可以创建一系列if语句来确定时间是清晨、下午、晚上还是夜间。

然后显示适当的图像。

以下代码不仅测试x的值是否超过20,还能测试x的值是否为负数:

if(x>20){

trace("xis>20");

}elseif(x<0){

trace("xisnegative");

}

if语句是所有计算机程序语言里最基础的东西,相对来说也是最容易弄懂的语句,因为比较简单,所以这里就不啰嗦了………

使用switch语句

switch语句创建ActionScript语句的分支结构。

与if语句类似,switch语句测试一个条件,并在条件返回true值时执行一些语句。

在使用switch语句时,break语句指示Flash跳过此case块中其余的语句,并跳到位于包含它的switch语句后面的第一个语句。

如果case块不包含break语句,就会出现一种被称为"落空"的情况。

在这种情况下,接下来的case语句也会执行,直到遇到break语句或switch语句结束才停止。

下例中演示了这种行为,其中第一个case语句不包含break语句,因此前两个case(A和B)的代码块都会执行。

所有switch语句都应包含一个defaultcase。

defaultcase应该始终为switch语句中的最后一个case,而且应包含一个break语句来避免添加其它case时出现落空错误。

例如,如果下例中的条件的计算结果均为A,则caseA和B的语句都会执行,因为caseA缺少break语句。

当一个case落空时,它没有break语句,但在break语句的位置会有一个注释,您在下例中caseA的后面会看到这样一个注释。

在编写switch语句时,请使用以下格式:

switch(condition){

caseA:

//语句

//落空

caseB:

//语句

break;

caseZ:

//语句

break;

default:

//语句

break;

}

Flash里唯一的一个三元运算符(?

:

如果您喜欢短代码形式,可以使用条件(?

:

)运算符,又称条件表达式。

条件运算符允许您将简单的if..else语句转换为单行代码。

该运算符有助于在实现同一效果的同时减少编写的代码量,但是它往往会使您的ActionScript 更难以阅读。

下面的条件是用完整形式编写的,检查变量numTwo是否大于零,并返回numOne/numTwo的结果或字符串carrot:

varnumOne:

Number=8;

varnumTwo:

Number=5;

if(numTwo>0){

trace(numOne/numTwo);//1.6

}else{

trace("carrot");

}

使用条件表达式时,可以用以下格式编写同样的代码:

varnumOne:

Number=8;

varnumTwo:

Number=0;

trace((numTwo>0)?

numOne/numTwo:

"carrot");

ps:

?

:

是个人特别喜欢用的,因为它往往可以将if…else…的形式从n行缩短为一行,而且个人认为这个语句在稍微熟悉一下后并不象说明说的那么难懂。

如果说要比较一下这三个的利弊的话我个人的经验是:

if…else…是最常用的,最中矩中矩的,也是最容易让人理解的,它的缺点就是让程序显得有些长和懒散;switch语句显得最大气,相对适合比较多并列条件的场合;而?

:

属于剑走偏锋,它能大大的缩短语句的长度,从而让冗长的程序能显得“精神”许多,缺点是稍稍让程序的可读性有所下降。

为了程序的的执行效率,条件语句中更容易达成的部分通常应该写在前面。

2.循环语句

ActionScript可以按指定的次数重复一个动作,或者在特定的条件成立时重复动作。

循环使您能够在特定条件为true时重复执行一系列语句。

在ActionScript中有四种类型的循环:

for循环、for..in循环、while循环和do..while循环。

不同类型的循环的行为方式互不相同,而且分别适合于不同的用途。

多数循环都会使用某种计数器,以控制循环执行的次数。

每执行一次循环就称为一次迭代。

可以声明一个变量并编写一条相应语句:

每执行一次循环,都让该语句对该变量递增或递减。

在for动作中,计数器和递增计数器的语句都是该动作的一部分。

循环

说明

for循环

使用内置计数器重复动作。

for..in循环

迭代影片剪辑或对象的子级。

while循环

在某个条件成立时重复动作。

do..while循环

类似于while循环,差别仅在于它在代码块结束时计算表达式的值,因此该循环总是至少执行一次。

最常用的循环类型是for循环,它使一个代码块按预定义的次数循环。

例如,如果您有一个项目数组,并且要对该数组中的每个项目执行一系列语句,则可以使用for循环,从0循环到该数组中的项目数。

另一种有用的循环类型是for..in循环;如果要对一个对象中的每个名称/值对执行循环,然后执行某种类型的动作,就

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2