FLASH CS4 ActionScript概述
关于Flash cs3的ActionScrip脚本语言的解释
ActionScript可以使Flash产生奇妙的动画效果 , 但这并不是ActionScript的全部,它更重要的作用是 使动画具有交互性。 ActionScript是在Flash中开发应用程序时所使用 的语言。Flash中的ActionScript编程语言是高级语言, 其命令形式与英文很相似,命令的含义就是英文的 愿意。如Play,运行时表示的意思就是使影片播放。
Flash cs之前版本是:
AS:stop(); 按钮:on (release) { gotoAndPlay("场景 1", 1); }
ent为对象来侦听; MouseEvent.CLICK鼠标单击事件(单击,一点下 去就触发事件)。
btn.addEventListener(MouseEvent.CLICK,rep
(1) ActionScrip动作脚本编辑器
查找 插入目标路径 自动套用格式 显示代码提示
动作工具箱
将新项目添加到脚本中 语法检查器
脚本导航器
图1 动作面板
(2)编程基础
Flash CS以下版本的ActionScrip脚本语言可在帧、 按钮或影片剪辑写,而Flash CS3的只能在帧上写,不 能在按钮或影片剪辑元件上写。
如btn.addEventListener(MouseEvent.CLICK,
replayMovie); function replayMovie(evt:MouseEvent):void {gotoAndPlay(1); } 这一 ActionScript 3.0语名可用于实现按钮控制
时间轴动画暂停、播放、重播,只能在AS的帧上写。
layMovie):鼠标单击或者释放,开始监听具体实 例btn。 Function表示一种函数,function是定义一个函 数的关键字,通常形态是function 函数名(参数1
Flash CS4 事件
Flash CS4 事件事件就是所发生的、ActionScript能够识别并可响应的事情。
SWF文件进行的任何与用户交互都可以视为事件,如键盘输入、鼠标单击等。
●1.事件处理从本质上来说,当ActionScript程序在运行时,Flash Player只是在等待某些事情的发生。
当这些事情发生时,Flash Player将会运行为这些事件指定的ActionScript代码。
●事件处理基本结构无论何时编写处理事件的ActionScript代码,都会包含三个元素(事件源、事件和响应),并且遵循以下基本结构:function eventResponse(eventObject:EventType):void{//为响应事件而执行的程序代码}eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);在上面的代码中,首先定义一个函数,用于指定为响应事件而执行的程序代码。
然后,调用事件对象的addEventListener()方法,以便当事件发生时,执行该函数的动作。
●事件对象在ActionScript 3.0中,每个事件都由一个事件对象表示。
事件对象是Event类或某个子类的实例,它不但存储有关特定事件的信息,还包含便于操作事件对象的方法。
例如,当Flash Player检测到鼠标单击时,它会创建一个事件对象(MouseEvent类的实例)以表示该特定鼠标单击事件。
为方便对这些属性和方法的访问,Flash Player API定义了一个Event类,作为所有事件对象的基类。
Event类定义一组基本的、适用于所有事件对象的属性和方法,其详细说明如下。
事件侦听器也称为事件处理函数,是Flash Player为响应特定事件而执行的函数。
添加事件侦听器的过程分为两步:首先,为Flash Player创建一个为响应事件而执行的函数或类方法(也可称为侦听器函数或事件处理函数)。
ActionScript 编程实战 Flash动作面板概述
ActionScript 编程实战Flash动作面板概述ActionScript1.0和2.0的多数代码都是写在时间轴或元件中,而ActionScript3.0以后,只允许将代码写在时间轴和外部的类文件中。
将代码写在时间轴上,就需要使用到Flash 的【动作面板】。
1.动作面板在FlashCS4中,执行【窗口】|【动作】命令或按F9快捷键即可打开【动作】面板。
通过【动作面板】,用户可以将ActionScript脚本代码写在Flash的时间轴上,并对脚本代码进行格式化、验证语法等操作,如图1-11所示。
图1-11 【动作】面板在图1-11中,包含4个部分,如下所示。
●【动作工具箱】在【动作】面板中,【动作工具箱】的作用是提供ActionScript所有的包、类、属性和方法列表。
(关于包、类、属性和方法,请参考之后的面向对象编程相关章节)用户可以根据程序编写的需要,自行选择相应地语言元素,双击该元素,将其添加到代码中。
●【脚本导航器】【脚本导航器】的作用是提供当前编辑的代码位置,以及当前影片中所有代码的位置列表。
除当前选择的代码外,每段代码根据其所在的场景和图层、帧的位置顺序进行排列。
●【脚本助手】【脚本助手】的作用是显示和修改当前选择的表达式值、函数的名称、参数和数据类型等相关信息。
●【脚本窗格】【脚本窗格】的作用是输入和编辑脚本代码用户可以方便地拖动【动作】面板中各部分之间地分隔线,可以方便地调整各部分地大小。
同时,用户也可以对【动作】面板地边缘进行拖动,改变【动作】面板的大小。
2.【动作】面板的【脚本窗格】Flash CS4在【脚本窗格】中提供了一组按钮,可以帮助用户对ActionScript代码进行调试和格式化,如图1-12所示。
图1-12 【脚本窗格】在上面的【脚本窗格】中,包含如下按钮。
●【将新项目添加到脚本中】按钮单击该按钮,将弹出ActionScript各包及类的菜单供用户选择,并添加到代码中。
FLASHdeActionScript
影片剪辑控制
getProperty(目标, property)
返回影片剪辑指定属性的值 目标为要获取其属性的影片剪辑的实例名称 参数property为影片剪辑的属性。 例如:
动作面板
Flash提供的专门用来编写脚本,即AS程序的开发环境 Flash CS3【动作】面板的功能得到了扩充和增强,可以选
择ActionScript2.0或ActionScript3.0进行编程
AS版本选择 下拉菜单
语言工具箱
程序添加对象
工具栏 脚本编辑区
时间轴控制命令
play()命令
时间轴控制命令
nextFrame()
将播放头转到下一帧处,并停止播放
prevFrame()
将播放头转到上一帧处,并停止播放。若当前帧为第1帧,则播放头 不移动
stopAllSounds()
使当前在Flash Player中播放的所有声音停止 此动作不影响影片的视觉效果
影片剪辑控制
下雪、飘花等效果
for语句
让指定程序代码块执行一定次数的循环
格式:
for(初始值;条件;下一个){ statement(s);}
各参数含义如下:
初始值:是一个在开始循环前要计算的表达式,通常为赋值表达式。 条件:是一个计算结果为“true”或“false”的表达式。在每次循环前计算该条件,
例如:
On(release){ duplicateMovieClip(hd_mc,”myhd”,1);}
由duplicateMoveClip复制的影片剪辑由removeMoveClip删除 duplicateMoveClip常与for语句、setProperty函数合作,实现下雨、
Flash CS4 ActionScript3.0组件概述
Flash CS4 ActionScript3.0组件概述ActionScript 3.0组件是功能强大且具有一致外观和行为的应用程序。
设计者可以直接使用这些组件,而不用创建自定义的按钮、组合框和列表等。
1.认识Flash CS4组件面板执行【窗口】|【组件】命令,打开【组件】面板,该面板分为User Interface (用户界面)和Video (视频)两组组件。
这两组组件功能介绍如下。
●用户界面组件所提拱的菜单、例表、单选框、复选框等组件,可以很轻松的在Flash 中打造出信息反馈、会员注册等页面。
● 视频组件可以轻松地将视频播放器包括在Flash 应用程序中,以便播放通过HTTP 渐进式下载的Flash 视频(FLV)文件。
2.添加与删除组件在文档中添加组件,只需要将组件拖入到舞台或【库】面板中;如果不需要使用,则删除组件,这样可以减小Flash 文档的大小。
● 在舞台中添加和删除组件在【组件】面板中,选择所需的组件,并将其拖入到舞台中,这样即可在舞台中添加组件。
提示在将组件拖入到舞台的同时,Flash 会将一个可编辑的影片剪辑导入到【库】面板中。
选择舞台中添加的组件,按键或键即可删除该组件。
但是,同时导入到【库】面板中的组件将不会被删除。
视频组件 用户界面组件 拖入至舞台按Delete键删除组件提示从舞台中删除组件是不够的,如果未在【库】面板中删除组件,则在编译时组件还会包括在应用程序中。
●在【库】面板中添加和删除组件在【组件】面板中选择所需的组件,并将其拖入到【库】面板中,这样即可在【库】面板中添加组件。
拖入至【库】面板中选择【库】面板中的组件,单击该面板左下角的【删除】按钮,即可将该组件从【库】面板中删除。
选择单击技巧与删除舞台中的组件相同,选择【库】面板中的组件,按键或键也可删除。
●使用ActionScript添加组件使用ActionScript将组件添加到文档之前,必须将该组件放置在【库】面板中。
FLASH动画设计_ActionScript语言01
3.3 常用的Actions语句举例——跳转语句goto 常用的Actions语句举例 语句举例——跳转语句 跳转语句goto
跳转语句goto分为两种类型: 跳转语句goto分为两种类型: 分为两种类型 跳转并播放语句: 跳转并播放语句:gotoAndPlay 跳转并停止语句:gotoAndStop 跳转并停止语句:
3.3.1常用的 3.3.1常用的Actions语句举例——跳转并播放语句gotoAndPlay 常用的Actions语句举例 语句举例——跳转并播放语句 跳转并播放语句gotoAndPlay gotoAndPlay通常添加在帧或按钮元件上, gotoAndPlay通常添加在帧或按钮元件上,其作用是当播放到 通常添加在帧或按钮元件上 某帧或单击某按钮时, 某帧或单击某按钮时,跳转到场景中指定的帧并从该帧开始播 如果未指定场景,则跳转到当前场景中的指定帧。 放。如果未指定场景,则跳转到当前场景中的指定帧。 跳转并播放语句gotoAndPlay的基本语法格式为 跳转并播放语句gotoAndPlay的基本语法格式为: 的基本语法格式为: gotoAndPlay([scene,] frame)
Flash 动画设计与制作
——ActionScript语言 ——ActionScript语言 第1讲 主讲人:赵永礼 主讲人:赵永礼
ActionScript语言 概述—— ActionScript语言 概述—— 总目录
一、什么是ActionScript语言 什么是ActionScript语言 二、动作面板的应用 三、体验动作脚本的功能——常用Action 语句举例 体验动作脚本的功能——常用 常用Action 四、ActionScript语言 语法基础 ActionScript语言
通过Actions中相应语句的调用,能使Flash实现许多特殊的功能 通过Actions中相应语句的调用,能使Flash实现许多特殊的功能。因此 实现许多特殊的功能。 中相应语句的调用 ActionScript是Flash交互功能的核心和不可缺少的重要组成部分 ActionScript是Flash交互功能的核心和不可缺少的重要组成部分。 交互功能的核心和不可缺少的重要组成部分。
Adobe Flash Pro CS4功能介绍
全新 Adobe Creative Suite 界面新增功能
借助直观的面板停靠和弹出式行为提高工作效率, 它们简化了您在所有 Adobe Creative Suite® 版
垂直属性检查器新增功能
借助垂直显示的全新属性检查器, 您可以充分利用更宽的屏幕并获得屏幕空间。
可自定义的工作区
轻松创建和保存自定义工作区 (包括面板和工具栏设置) 以在每次启动时按您希望的方式工作。 简化的工作流程
Adobe Pixel Bender新增功能
在运行时轻松应用自定滤镜和效果以实时传达您的创意。使用 Flash 包含的 Adobe Pixel Bender™ 工具包创建出独特的滤镜、混合和填充, 从而为 Flash Player 运行时制作出引人注目的点播可视效 果。可视效果现在可以通过 Adobe Pixel Bender 移植到多个应用程序。
省时编码工具
代码折叠
按选择内容或标记从视图隐藏代码, 这样您可以更加轻松地专注于您正在开发的代码。
注释标记
使用简单的菜单命令将注释/取消注释标记应用于整个行或代码的任何部分。在 Adobe Flash CS4 Professional 和 Dreamweaver® CS4 软件中, 该脚本编辑器功能保持一致。
撤消/重做选项
在“对象级撤消”和“文档级撤消”模式之间切换。
元数据 (XMP) 支持新增功能
使用全新的 XMP 面板向 SWF 文件添加元数据。快速指定标记以增强协作和移动体验。
与 Adobe Flex 开发人员协作新增功能
在 Adobe Flex® 中编辑代码, 然后将它引入 Flash CS4 Professional 进行润色和生产。导入 Adobe Flex Builder™ 软件中开发的、只包含代码的 ActionScript 3.0 SWC 组件。
FlashCS4动画制作基础
将位图转换为图形对象: 选中舞台上的位图,单击菜 单“修改”/“分离”或者快捷键Ctrl+B,将位图分离 为图形对象,此时的属性面板中显示的是“形状”的 属性。
将位图转换为矢量图: 选中舞台上的位图,单击菜单 “修改”/“位图”/“转换位图为矢量图”命令。
5.3 Flash对象的编辑
5.1 Flash CS4简介
4. Flash CS4的文件基本操作 新建文档 设置文档属性 保存Flash文档
5.2 工具面板中的常用工具
菜单“窗口”/“工具”命令或快捷键Ctrl+F2将打开 工具面板
5.2 工具面板中的常用工具
一.选取工具组 选取工具中包含了“选取工具”、“部分选取工具”、
5.2 工具面板中的常用工具
2. 创建不同类型的文本 单击工具栏上的“文本”工具 ,打开其属性面板。在“文
本类型”下拉列表中选择“静态文本”、“动态文本”或 “输入文本”。 3. 为文本添加滤镜效果 选中文本,在属性面板的“滤镜”选项卡的底端单击“添 加滤镜”按钮,如图5.2.39所示。在弹出菜单中选择要添加 的滤镜效果。 4. 将文本对象转换为图形对象 单击菜单“修改”/“分离”命令或按快捷键Ctrl+B,将一 个组合的文本分离为单个字符的状态。 在文本处于选中状态下,再次单击菜单“修改”/“分离” 命令或按快捷键Ctrl+B,将文本对象转换成了图形对象, 可以用工具面板中的工具为其设置更加复杂的文字效果。
音和文本等。
排列元素:在舞台上和时间轴中排列这些媒体元素,以定 义它们在应用程序中的显示时间和方式。
应用特殊效果:根据需要应用图形滤镜(如模糊、发光和 斜角)、混合和其它特殊效果。
使用ActionScript控制行为。 测试并发布应用程序:进行测试以验证应用程序是否按预
FLASH ActionScript的介绍
ActionScript的介绍时间轴控制命令gotoAndPlay()跳转播放命令语法:gotoAndPlay([scene,]frame)—Scene可选字符串,指定播放头要转到的场景名称。
—frame表示将播放头转到的帧编号的数字,或者表示将播放头转到的帧的标签的字符串。
gotoAndStop()跳转停止命令语法:gotoAndPlay([scene,]frame)—Scene可选字符串,指定播放头要转到的场景名称。
—frame表示将播放头转到的帧编号的数字,或者表示将播放头转到的帧的标签的字符串。
play();播放stop();停止鼠标事件命令On(参数){命令}—press鼠标按下后触发命令—release按下鼠标点击后抬起时触发命令—releaseOutside按下鼠标后并拖出按钮范围时触发命令—keyPress键盘控制按键后触发命令—rollOver鼠标滑过的时候触发命令—rollOut鼠标滑出的时候触发命令—dragOver按下并拖动鼠标移动出按钮区域时触发命令—dragOut按下并拖动鼠标进入按钮区域时触发命令prevFrame(); 上一帧nestFrame(); 下一帧prevScene(); 上一场景nextScene(); 下一场景以上这些命令没有参数,一般都与事件操作命令结合使用。
stopAllSounds(); 停止所有声音播放。
浏览器网络命令Fscommand(命令) 发送指令到Flash Player—“quit”关闭播放器—“fullscreen”参数是true(真)falsc(假),设置为全屏模式—“allowscale”命令是视图缩放—“showmenu”视图的鼠标右键示例:on (press) {fscommand("quit", true);}译:鼠标按下后触发fscommand命令,即发送fscommand指令到Flash Player,如果为真,则执行“quit”命令,即关闭播放器。
Flash CS4 日期时间对象概述
Flash CS4 日期时间对象概述
日期和时间是在ActionScript程序中使用的一种常见信息类型。
在ActionScript 3.0中,可以使用Date类来表示某一时刻,其中包含日期和时间信息。
Date实例中包含各个日期和时间单位的值,其中包括年、月、日、星期、小时、分钟、秒、毫秒以及时区。
Date类是所有核心类中构造函数方法形式最为多变的类之一,可以使用以下4种方式来创建Date类的实例。
第一,如果未给定参数,则Date()构造函数将按照所在时区的本地时间返回包含当前日期和时间的Date对象。
var myDate:Date = new Date();
第二,如果仅给定了一个数字参数,则Date()构造函数将其视为自1970年1月1日以来经过的毫秒数,并且返回对应的Date对象。
第三,可以将多个数值参数传递给Date()构造函数。
该构造函数将这些参数分别视为年、月、日、小时、分钟、秒和毫秒,并将返回一个对应的Date对象。
例如,获取一个设置为2005年1月1日开始的午夜(本地时间)的Date对象。
var myDate:Date = new Date(2005, 0, 1, 0, 0, 0, 0);
第四,可以将单个字符串参数传递给Date()构造函数。
该构造函数将尝试把字符串解析
对于更高级的用法,ActionScript 3.0还包括Timer类,可以使用该类在一定延迟后执行动作,或者按重复间隔执行动作。
《Flash CS3动画制作》ActionScript 的应用(模块七)
➢ 匿名函数:匿名函数是引用其自身的未命名函数,该函数在创建时便 被引用。
➢ 回调函数:回调函数通过将匿名函数与特定的事件关联来创建,这种 函数可以在特定事件发生后调回。
变量的作用域
变量的作用域是指变量能够被识别和应用的区域。根据变量的作用域 可将变量分为全局变量和局部变量。全局变量是指在代码的所有区域 中定义的变量,而局部变量是指仅在代码的某个部分定义的变量。在 ActionScript 3.0中,在任何函数或类定义的外部定义的变量都为全局 变量;而通过在函数定义内部声明的变量则为局部变量。
(3)选择【插入】→【新建元件】菜单命令,在打开的“创建新元件 ”对话框中创建“车轮动”影片剪辑元件。
(4)将“库”面板中的“车轮.png”拖动到“车轮动”影片剪辑元件场 景中,调整其大小放置到如图所示位置。
放置车轮
操作一 制作停止车轮的转动
(5)接着在第2帧处插入关键帧,然后在第2帧到第30帧之间创建车轮 滚动的动作补间动画。
逻辑运算符
按位逻辑运算符
操作四 运算符与表达
运算符的优先级
运算符的优先级
操作五 ActionScript的添加方法
根据动画的实际需要,为相应的关键帧添加Action脚本,其操作步骤如 下:
(1)在时间轴中选中要添加Action脚本的关键帧。
(2)选择【窗口】→【动作】菜单命令,或按“F9”键,打开“动作帧”面板。
操作二 认识变量
变量的类型
➢ Numeric:数值变量,包括Number、Int和Uint3种变量类型。Number 适用于任何数值;Int用于整数;Uint则用于不为负数的整数。
FLASH CS4 类
FLASH CS4 类类是对象的抽象表示形式。
类用来存储有关对象可保存的数据类型及对象可表现的行为的信息。
尤其,在编写较大的程序时,使用类可以更好地控制对象的创建方式以及对象之间的交互方式。
ActionScript 的类分为两种,包括公共类和自定义类。
其中,公共类(自带的类)有数百种,可应用于多个方面。
而自定义类则通常由用户自行编写,以实现某方面的功能。
一个自定义类通常包括类名和类体,类体又包含类的属性和方法等几个部分。
类的结构如图3-7所示。
图3-7 类的结构1.类定义ActionScript 3.0 类定义使用的语法与ActionScript 2.0类定义使用的语法相似。
正确的类定义语法中要求class 关键字后跟类名。
类体要放在大括号({})内,且放在类名后面。
例如,下面的代码创建名为MyClass 的类,其中包含名为visible 的变量。
public class MyClass{var visible:Boolean = true;}2.类属性在ActionScript 3.0中,可使用以下4个属性之一来修改类定义:表3-9 修改类定义的属性使用internal 以外的每个属性时,必须显式包含该属性才能获得相关的行为。
例如,如果定义类时未包含dynamic 属性(attribute),则不能在运行时向类实例中添加属性(property)。
通过在类定义的开始处放置属性,可显式地分配属性,如下面的代码所示: dynamic class Shape {}对于包中的类定义,有一项重要的语法更改。
在ActionScript 2.0中,如果类在包中,则在类声明中必须包含包名称。
在ActionScript 3.0中,引入了package 语句,包名称必须包含在包声明中,而不是包含在类声明中。
3.类体类体放在大括号内,用于定义类的变量、常量和方法。
下面的示例显示 Adobe Flash Player API 中Accessibility 类的声明。
Flash动作脚本
认识动作面板
添 加 脚 本
查 找
插 入 目 标 路 径
语 法 检 查
自 动 套 用 格 式
显 示 代 码 提 示
调 试 选 项
折 叠 成 对 大 括 号
折 叠 所 选
展 开 全 部
应 用 块 注 释
帮 助
Flash
给Flash文件添加动作脚本
要点导读
在本节中,同学们将会学习如下的知识。 1. 在主场景关键帧中使用ActionScript代码 控制动画播放 2. 引用外部ActionScript文件
Flash
面向对象
类与对象
Flash
Action Script 3.0概述
Action Script 3.0语法规则
在ActionScript 3.0中,一个变量实际上包含三个 不同部分:变量名,可以存储在变量中的数据类型, 存储在计算机内存中的实际值。 对变量来说,数据类型也非常重要。在 ActionScript 3.0中创建变量时,应指定该变量将 保存的数据类型;此后,程序只能在该变量中存储 此类型的数据, 可以使用与该变量的数据类型关联 的特定特性来处理值。 在ActionScript中,要创建一个变量或声明变量, 应使用var语句:“var value1:Number;”。在本例 中,指示计算机创建一个名为value 的变量,该变 量仅存储Number(数值)的数据。用户还可以立 即在变量中存储一个值:“var value2:Number = 17;”。
Flash
Action Script 3.0概述
ActionScript 3.0与2.0区别
3、内存工作方式更有效率。2.0的显示对象,例如MovieClip、 Button、文字、色块、位图等等,一旦被实例化后,就会立 即出现在Flash的舞台中。而3.0的显示对象被实例化后,不会 马上出现,而是等到需要的时候,通过addChild()或 DisplayObjectContainer加入,这样可以减少内存资源的消 耗,使动画运行的更流畅。 4、强制性声明变量。2.0可以不使用关键词声明,直接使用变 量,语法的规范性不强。而3.0一定要通过关键词var声明变量, 同时还引入了const来声明常量。常量一般用来存储某一固定 值,例如圆周率3.14等。 ActionScript 3.0与2.0还有一些区别,例如3.0对象属性统一 取消下划线,代码只能写在时间轴上或外部定义的类.as文件, 这里就不再详述了,大家在以后的学习时深入体会吧。
ActionScript简介
ActionScript简介ActionScript是 Macromedia(现已被Adobe收购)为其Flash产品开发的,最初是⼀种简单的脚本语⾔,现在最新版本3.0,是⼀种完全的⾯向对象的编程语⾔,功能强⼤,类库丰富,语法类似JavaScript,多⽤于Flash互动性、娱乐性、实⽤性开发,⽹页制作和RIA应⽤程序开发。
ActionScript 是⼀种基于ECMAScript的脚本语⾔,可⽤于编写Adobe Flash动画和应⽤程序。
由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从⼀种语⾔翻译到另⼀种。
不过JavaScript的⽂档对象模型(DOM)是以浏览器窗⼝,⽂档和表单为主的,ActionScript的⽂档对象模型(DOM)则以SWF格式动画为主,可包括动画,⾳频,⽂字和事件处理。
ActionScript第⼀次以它⽬前的语法出现是Flash 5版本,这也是第⼀个完全可对Flash编程的版本。
这个版本被命名为ActionScript1.0。
Flash 6通过增加⼤量的内置函数和对动画元素更好的编程控制更进⼀步增强了编程环境的功能。
Flash 7(MX 2004)引进了ActionScript2.0,它增加了强类型(strong typing)和⾯向对象特征,如显式类声明,继承,接⼝和严格数据类型。
ActionScript1.0和2.0使⽤相同的编译形式编译成Flash SWF⽂件(即Shockwave Flash files,或 'Small Web Format').时间表Flash Player 2:第⼀个⽀持脚本的版本,包括控制时间轴的gotoAndPlay, gotoAndStop, nextFrame和nextScene等动作。
Flash Player 3:增强了载⼊外部SWF⽂件的基本脚本⽀持(loadMovie)。
FLASH CS4 调试ActionScript 3.0程序
FLASH CS4 调试ActionScript 3.0程序Flash包括一个单独的ActionScript 3.0调试器,它与ActionScript 2.0调试器的操作稍有不同。
ActionScript 3.0调试器仅用于ActionScript 3.0 FLA和AS文件。
FLA文件必须将发布设置设为Flash Player 9。
1.测试影片在【动作】面板的【脚本】中输入脚本代码后,则执行【调试】|【调试影片】命令,则将弹出Flash Player播放器。
并在【时间轴】面板位置显示【编译器错误】选项卡,并显示错误报告,如图3-3所示。
这是针对于内嵌式ActionScript 3.0脚本代码调试的一种方法。
图3-3 内嵌式代码调试方法2.通过调试模式在调试外部的.as文件,则将切换至【调试】工作区。
此时,将启动ActionScript 3.0调试会话,同时Flash将启动Flash Player并播放SWF文件。
调试版Flash播放器从Flash创作应用程序窗口的单独窗口中播放SWF。
在ActionScript 3.0调试器中,包括【动作】面板、【调试控制台】面板、【输出】面板和【变量】面板,如图3-4所示。
【调试控制台】面板显示调用堆栈并包含用于跟踪脚本的工具。
【变量】面板显示了当前范围内的变量及其值,并允许用户自行更新这些值。
图3-4 【调试】工作区开始调试会话的方式取决于正在处理的文件类型。
Flash启动调试会话时,将为会话导出的SWF文件中添加特定信息。
此信息允许调试器提供代码中遇到错误的特定行号。
调试会话期间,Flash遇到断点或运行时错误时将中断执行ActionScript代码。
FLASH教程-Actionscript
FLASHActionScript 是从Macromedia Flash 4 开始引入的面向对象的Flash 专用脚本语言. 虽然在Flash 4 中它还是非常简单的命令集合, 但它在一出现就已经展现出了强大的生命力. 它发展到今天Flash MX 中的这一步, 已经是第三个版本, 其功能之强大已具备了与Macromedia 的另一专业级多媒体开发平台Director 一争高下的资格(Director 所用的语言为Lingo). 由Flash 4 到Flash 5, ActionScript 经历了质的飞跃. 它基于与JavaScript 一样的语言规范: ECMA-262 欧洲计算机制造商协会规范. 由此规范重新构建的ActionScript 架构具有高度的严谨性, 规范性和稳定性. 因为具有共同的基准规范, 所以如果你懂得JavaScript, 那么学习ActionScript 基本上不成问题.继Flash 5 后就到了Flash MX (也就是我们曾经期待了很久的Flash 6)的时代, ActionScript 已经被加强到了几乎无所不能的水平(这里有点言过其实, 一个简单的例子: 它不会煮饭给你吃). 再加上其它的新功能, 基本上可以说Flash 已超过了Director 的开发能力. 另外还有一点: 它兼容以前任何版本的脚本代码.在开始前请注意一点: 由于作者并非什么高手, 也不是什么菜鸟, 所以写出来的东西可能会半桶水, 不上不下. 如果你看不惯这种作风, 就请你发邮件给我提出你的意见和建议.另外, 由于我脑袋里面的东西太多太杂, 所以有时可能会写些莫名其妙的东西. 如果你也看不惯这种情况, 记得发邮件给我提出你的修改意见.另外, 本书不是为完全不懂如何在Flash 中加入代码的读者而写的(指不会用Expert Mode 输入代码的用户), 不懂就请参考其它书(因为这些内容已经被重复过无数遍了). 或者看看这个如何在Flash MX 中添加ActionSript 的教学.另外, 如果你的英文不好的话, 最好先学好英文. 我写的教程是针对英文版的, 决不会为了什么"英语不好"之类的理由而写什么"汉化版"的教程. 英文看不懂就去恶补一下, 如果连这点都做不到还能干什么? 懒惰和没有毅力的人做什么事都不可能成功. 过去我也喜欢汉化软件给别人用, 但我发现这对中国软件用户的整体素质提高完全没有好处, 只会培养出些没有汉化版就无从下手的人. 所以现在的我反对汉化, 除非是为了给50 岁以上的用户使用.另外, 不要急于求成, 每天可以抽出时间认真地看完并理解一章就够了, 东西多了没有人会记得到, 毕竟天才还是少数.再另外, 学习不是一时的热情就可以得到成功的, 你还需要学会学习的方法, 分析的方法和思维的方法. 所以我不保证什么, 特别是不保证本教程能够教会你, 甚至是你能坚持看完一遍.在论坛上我发现一个问题: 我要汉化.也许是我太过言重了, 不过的确是个问题. 在这里我也不想举什么例子来说明我的观点, 毕竟会让很多人尴尬. 但最可悲的是被汉化惯坏了的中国用户, 一点点简单的英文都懒得学, 什么都要汉化. 不可否认, 汉化是可以带来一些方便. 但是由汉化培养出如此强的依赖性, 是否有违于汉化的本意? 不要认为这里谈论的东西与学习无关, 这恰恰是学习的关键. 懒惰, 惯于依赖别人, 没有创造和探索的精神, 这就是教育教给我们的东西. 连这点都不能下决心做到, 还能做什么? 哦, 我还漏了一点, 那就是为自己找理由, 这可能是我们自身存在的最大问题. "反正学不会", "反正有人会做", "反正我是菜鸟", "反正已经来不及了", "反正会有人帮忙的"...你还能想出多少个"反正"? 在这背后是我们的懒惰, 这些理由都是懒惰的借口, 它使我们在懒惰的同时能够心安理得. 学习的前提: 消灭无穷无尽的理由和懒惰. 不过我想能够做到的人不多, 毕竟世上成功的人永远是少数.然后又是一个问题: 不会利用资源.在Flash 帮助里面有非常多的实例和参考资料(ActionScript References 和ActionScript Dictionary), 在Flash MX 中还有专用的参考面板(Reference Panel). 有这么多的资源而不懂得利用, 不叫浪费资源叫什么? 如果是因为看不懂英文, 那就要好好反省一下自己: 我到底有多懒? 学点英文有什么难? 如果是因为不知道有这些东西的存在, 那也要反省一下自己: 我到底做什么去了? 用过软件的人都知道, 软件的帮助是最基本的参考资料. 遇到问题不第一时间找帮助还找什么?很多事情值得反省, 为什么连改getURL 的参数都要问个半天? 其实帮助里有那么多的示例和说明, 通过这些示例来了解代码的功能难道就不行, 帮助里的参数说明还不够详细? 另外自己难道就不能多尝试修改一下, 通过各种修改的效果难道就不能想出个所以然来? 如果是看不懂英文, 那就是上一个问题, 如果不是, 这又引出了下一个问题.最麻烦的问题: 不会思考.并不是说大家都是傻子, 而是说不运用自己的大脑让它白白衰老. 发现问题, 可以通过改变条件来寻找其根源. 总结和分析我想大家都不至于不会吧? 说来说去还是第一个问题: 懒.然后, 如果还没被我扫了兴致的话, 就进入下一章吧.从第1 至5 章将介绍有关ActionScript 的基础知识. 这部分的内容主要是介绍性的, 并不要求你完全记住, 只要有个大概的印象就可以了(至少知道有这种东西存在, 在需要的时候能够找得到). 很多东西只有在实际的应用过程中才能完全理解和熟悉, 所以希望你能经常地尝试写一点东西(从修改范例开始是个不错的想法).另外, 现在先不要抱怨我没有用什么特效范例来教ActionScript, 因为还没到那一步. 那种狭隘的模仿是无法教给你真正的本事的, 不信, 你可以试试不读海明威的书就去模仿海明威的文风来写文章(譬如《死在午后》), 绝对是形似而神不似.创造力是建筑在认识的基础上的.ActionScript 的每行语句都以分号";" 结束. 不同于BASIC 语言, ActionScript 语句同C++, Java, Pascal 一样允许分多行书写, 即允许将一条很的长语句分割成两个或更多代码行, 只要在结尾有个分号就行了. 允许语句分行书写的唯一缺点是(至少对许多熟悉BASIC 的人而言): 语句末尾不能忘记加分号. 语句分行唯一的限制是字符串不能跨行, 即两个分号必须在同一行.分行书写长语句也是一个很好的排版办法, 例如下面的语句段(目前你不需理解下面的语句是什么意思, 在双斜杠后面是注释):duplicateMovieClip( "MyOldMovieClip", //旧的MovieClip 实例名"MyNewMovieClip", 999 ); //新复制的实例名和所在层次setProperty( "MyNewMovieClipNameIsNewMC", //要修改其属性的MovieClip 实例名_alpha, "30"); //修改其透明度为30%一个好的程序员会懂得在程序代码中加入注释. 但也许你会说: 没关系, 我知道我写的是什么. 但是假如你是在1 个月后再读这段代码呢? 很明显, 你记不住. 所以多打几个字又有什么麻烦的?给ActionScript 代码加注释使用下面格式:statements;//这是单行注释, 由双斜杠开头,这行的后面部份都是注释内容statements;/* 这也是注释只不过可以换行*/就这么简单(却又十分有用). 注意/*和*/已经不建议使用了(因为必须配对, 所以经常会导致错误).除了注释, 增加代码可读性的另一途径是使用代码排版格式. 下面是一段具有高可读性的代码://计算x 阶乘的函数function f(x) {if (x<=0) { //假如x 小于等于0return 1; //返回1} else {return x*f(x-1); //否则返回阶乘结果}}Flash MX 之前版本必须由程序员自行编排代码格式, 而Flash MX 的Action 面板多了一个Auto Format (自动格式化)按钮, 可以用它来自动格式化代码(同时也会进行语法检查, 相当方便). 格式化的选项可以在Action 面板弹出菜单的Auto Format Options 项对应的对话框中设置. 下面是对Actions 面板的一点介绍:另外补充一点, 无论代码的字体设成什么, 在中文系统下行号与代码总是对不齐.语法着色和代码提示语法着色(Syntax Hightlighting)是许多编程语言的IDE (集成开发环境)所具备的功能. Flash 也具有这项功能. 语法着色的颜色可以在Action 面板弹出菜单的Preferences... 项对应的对话框中设置.对此, 没什么好详细解说的. 只是希望大家能利用语法着色来发现错误和阅读代码. Flash MX 新增加的代码提示功能(Code Hints)对于熟悉Visual Studio 6.0+ 版本的读者而言并不陌生. 例如在输入了一个对象名后再输入".", 就会显示相关的属性和方法列表; 在输入了函数名后输入"(", 就会显示相关的函数格式. 具体的可在输入代码时自己体会.关键字是任何一种语言程序的基本构造单位. 它是程序语言的保留字(Reserved Words), 不能被作为其它用途(不能作为自定义的变量, 函数, 对象名).Flash 的ActionScript 中关键字不是很多, 下面的它们的列表:Flash MX ActionScript 的关键字break 跳出循环体instanceof 返回对象所属的类(Class)case定义一个switch语句的条件选择语句块new使用构造函数(Constructor)创建一个新的对象continue 跳到循环体的下一项目return 在函数中返回值default定义switch语句的默认语句块switch 定义一个多条件选择语句块delete 清除指定对象占用的内存资源this 引用当前代码所在的对象else定义if语句返回为假时的语句块typeof 返回对象的类型for 定义一个循环var 声明一个本地变量(Local Variable) function 定义一个函数语句块void 声明返回值类型不确定if 定义一个条件语句块while 定义一个条件循环语句块in在一个对象或元素数组中创建循环with定义一个对指定对象进行操作的语句块列出这些并不是要求你像背单词一样把它们背下来(这也是为什么中国的教育质量这么差的原因), 只是希望大家记住: 在Flash 中有一些作为关键字的单词是不能随意使用的. 这在分析错误的时候是很有用的(特别对于初学者).同C++ 和Java 一样, ActionScript 是区分大小写的.这就意味着: If 并不等于if. 假如在代码中使用了If, 在运行和检查时都会产生错误. 避免这种情况发生其实很简单: 多注意一下输入的代码是否自动地被语法着色了(Syntax Hightlighting).但是对于变量(Variable), 实例名(Instance Name)和帧标签(Frame Label), ActionScript 是不区分大小写的. 尽管如此, 我还是建议大家在书写代码时保持大小写一致. 这是个很好的习惯.除了关键字, 程序语言中最重要的组成部分就是运算符. 先不要说我死板, 因为不了解这些东西, 你什么也做不成.下面是运算符的列表, 运算符的优先级(即几个运算符出现在同一表达式中时先运算哪一个)从上到下递减:+ 一元(Unary)加- 一元(Unary)减~ 按位(Bitwise)逻辑非! 逻辑非(NOT)not 逻辑非(Flash 4 格式)++ 后期(Post)递加-- 后期(Post)递减( ) 函数调用[ ] 数组(Array)元素. 结构(Structure)成员++ 先期(Pre)递加-- 先期(Pre)递减new 创建对象delete 删除对象typeof 获得对象类型void 返回未定义值* 乘/ 除% 求模(除法的余数)+ 加add 字符串(String)连接(过去的&)- 减<< 按位左移>> 按位右移>>> 按位右移(无符号unsigned, 以0 填充) < 小于<= 小于或等于> 大于>= 大于或等于lt 小于(字符串使用)le 小于或等于(字符串使用)gt 大于(字符串使用)ge 大于或等于(字符串使用)== 等于!= 不等于eq 等于(字符串使用)ne 不等于(字符串使用)& 按位(Bitwise)逻辑和(AND)^ 按位逻辑异或(XOR)| 按位逻辑或(OR)&& 逻辑和(AND)and 逻辑和AND (Flash 4)|| 逻辑或ORor 逻辑或OR (Flash 4): 条件= 赋值*= /= %=+= -= &=复合赋值运算|= ^= <<=>>= >>>=, 多重运算写了这么一大版(也可以说是抄了), 有什么用? 你会发现这些运算符与C++ 和Java 的运算符没什么很大的区别, 无论是形式上还是功能上. 作为初学者你必须记住其中比较常用的部分(不常用部分的说明文字背景较暗). 这对你今后写表达式有很大帮助.对于运算符的使用, 也有一些要注意的地方.例如and和or, 虽然对于效率而言与&&和||没什么至关重要的区别, 但如果你过去使用过BASIC, 你肯定会选择前者的表示方式; 假如你过去是使用C++ 或是Java的, 那么你就会倾向于使用后一种方法. 就我个人的观点, 为了使代码具有高可读性, 初学者还是应该使用意思明了的and和or.特别是像?:这类极其简化的运算符, 初学者更难以阅读. 例如下面代码:x = 5;y = 10;z = (x < 6) ? x: y; //如果x 小于6, 就把x 的值赋给z, 否则将y 的值赋给z trace (z); //返回5就不如下面的代码易于理解(尽管很冗繁):x = 5;y = 10;if(x < 6){ //如果x 小于6, 就把x 的值赋给z, 否则将y 的值赋给z z = x;} else {z = y;}trace (z); //返回5常量是在程序运行中不会改变的量.例如数值1,2,3..., 逻辑值true, false 等等. 另外还有一些系统内建的常量, 具体的可以看帮助文件的内容.在ActionScript 中最常见的语句就是表达式, 它通常由变量名, 运算符及常量组成. 下面是一个简单的表达式:x = 0;左边是变量名(x), 中间是运算符(赋值运算符"="), 右边是常量(数值0). 这就是一个非常简单的赋值表达式. 由这个表达式我们可以声明(Declare)一个变量, 为下一步操作做准备.表达式又分为赋值表达式, 算术表达式和逻辑表达式.赋值表达式上面已经说明了, 就是给变量一个值. 算术表达式顾名思义就是做数学运算的表达式, 例如: 1+3 (返回值为数值4). 逻辑表达式就是做逻辑运算的表达式, 例如: 1>3. 只不过逻辑表达式返回的是逻辑值而已. 前面的1>3 返回值为false, 即1 大于3 为假.将多个表达式组合在一起就可以组成复合表达式, 一般我们用到的也是这种表达式.例如:t = 3*3+(2+3);x = 1>3;上面的第二行是一个逻辑-赋值复合表达式. 首先Flash 计算逻辑表达式1>3 的值(false), 然后将该值赋给x (即x = false;). 对于复合表达式的运算顺序可以参考上面的运算符表. 要改变运算顺序可以使用圆括号(例子的第一行), 这是同其它语言一致的. 这一章就到此为止. 在下一章中, 我们将详细讨论Flash 中的数据类型及变量的使用.变量是什么? 大概说来就是存放信息的容器(更确切的说是指向内存空间中某个存贮位置的指针, 不过能够理解就行了, 何必去记这么抽象的定义). 只要能够理解它可以存放信息并可以通过各种途径改变其中的信息就可以了, 我又不是大学里面的老师, 整天就知道叫学生死记硬背定义, 实际的东西一点都没有, "一切为了考试".还有一个概念: 什么叫初始化变量? 就是在定义时给它一个有效值以说明它的内容和数据类型. 就像下面的例子, 定义了一个字符串(String)变量:MyString = "我不懂什么是初始化变量";就这么简单, 但是也有要注意的问题:▪变量名必须为有效的标识符(例如不能以数字和不允许使用的字符开头).▪变量名不能与ActionScript 关键字和常量相似或相同.▪变量名在它的作用域(Scope)中必须是唯一的(在下面我们会提到什么是作用域).也就是变量在什么范围内是可以访问的. 就好像在C&C: Renegade 中的任务一样, 没有Security Level 3 的ID Card 就进不了安全级别为3 的区域的.作用域一般说来有三种: 时间线(Timeline), 局部(Local), 全局(Global).对于时间线范围的变量, 就像上面的例子一样用=赋值并声明, 当然你也可以用set 动作(Flash 4, 不推荐使用的方法, 除非你觉得代码不够长):set( MyString, "我不懂什么是初始化变量" );时间线范围变量声明后, 在声明它的整个层级(Level)的时间线内它是可访问的.什么是局部变量? 我也常常问自己. 局部变量就是在声明它的语句块内(例如一个函数体)是可访问的变量, 通常是为避免冲突和节省内存占用而使用.声明它可以使用var关键字:function LocalVar(){var MyLocalString = "这是一个局部字符串变量";trace( "Inside: " + MyLocalString );}LocalVar();trace( "Outside: " + MyLocalString );上面的MyLocalString 字符串变量在函数尾就会被自动清除出内存. 所以在外面的trace语句返回结果为空("Outside:"), 而函数体内的trace返回:"Inside: 这是一个局部字符串变量".假如你删除了var关键字, 那么MyLocalString 就成时间线范围的变量了. 运行后显示Inside 和Outside 都为"这是一个局部字符串变量". 在后面的函数一章我们还会提到局部变量的内容.也许你注意到了函数中有一个trace动作. 它可以在测试模式(Testing Movie,CTRL+ENTER 组合键)下把指定变量的值发送到输出窗口(Output Window), 以便在运行时检查处理变量的代码是否正常. 这是一个非常方便的检查方法, 在测试代码时经常使用.在代码中如果遇到有不清楚的函数和关键字, 可以通过Action 面板的参考按钮(Reference)打开参考面板显示光标所在位置关键字或内建函数以及对象的详细信息, 也可以通过组合键SHIFT+F1 打开它. 下面是参考面板:全局变量, 顾名思义就是在整个Movie 中都可以访问的变量. 它的声明比较特殊:_global.MyGlobalString = "这是一个全局字符串变量";声明使用了一个_global标识符和点语法(Dot Syntax, 将在后面的章节讨论). _global 标识符是在Flash 6 中新增加的, 用于创建全局变量, 函数, 对象和类(Class, 不清楚类是什么的话可以看看C++ 的书).总的来说_global是一个与最底层_level0并列的对象. 所有的全局变量, 函数, 对象其实就相当于是它的属性, 方法, 子对象. 关于它的具体内容可以查阅帮助文件, 一般我们只要懂得用就行了.全局变量不会被同名的时间线变量和局部变量屏蔽(Obscured), 也就是说, 它在Movie 内的任何地方都是可访问的, 并且优先于时间线变量和局部变量访问.使用变量很简单, 有点编程基础的读者都可以办到. 下面用一个例子来说明在ActionScript 中变量的使用:function vars(x){if(x<5){ //如果x 小于1x = x + 1; //x 加1} else {x = 10; //否则赋值10}trace("x="+x);return x;}vars(2);vars(6);trace("x="+x); //测试x 是否为局部变量函数声明中的参数无需加var 声明也自动作为局部变量(例如上面例子中的x). 通过上面例子的最后一句就可以看出来(返回值为空).我们可以看到, 上面定义的函数中对局部变量x (在函数参数中声明)进行了4 种操作:▪赋值: 就是改变变量所存贮的内容.▪运算: 使用运算符运算并返回结果. 上例中的x = x + 1 可视为一个运算操作(x +1)和一个赋值操作(x = ...)的复合语句. 对于逻辑运算(上面if语句的条件), 返回的为逻辑值true或false(就像x<5 在x 为4 时会返回true).▪函数及命令调用: 就如上面trace("x="+x); 中的一样, x 是被作为参数传递给函数的, 它代表的是它所存贮的实际内容(在return x; 中也一样).在ActionScript 中变量的使用具有很大的灵活性, 下面我们将会针对不同的数据类型进行讲解.一个字符串就是一系列的字符, 例如"This"就是一个字符串.定义一个字符串变量很简单, 只要在初始化时将一个字符串数据赋给它就行了: chapter = "第2 章";section = "第2 节";section_name = "常见数据类型";full_name = section + " "add section_name + 999; //连接字符串if(typeof(full_name) ne"string"){full_name = "类型错误!";}trace("full_name=" + full_name);上面的第4 行的full_name 的值是前面两个变量(section 和section_name)和一个常量(999)的运算结果(使用了+和add运算符, 它们的功能是相同的). 请注意, 这行代码最后面的数值常量999 不是同一类型的数据, 如果在Pascal 这种数据类型检查极其严格的语言中这行代码是错误的. 但是ActionScript 可以自动将它转换为字符串格式, 而不需要专门的函数(当然, 最安全的方法是使用Number 对象的toString() 函数或是String() 函数). 由此可见, ActionScript 是一种弱类型检查的语言(即不严格限制各种数据类型间的运算和传递), 这和VB 倒是有点相似, 只不过更过分一点.在后面我用了一个if语句来测试后面加上999 的代码是否运行正常(即检查表达式返回的值是否为字符串, 尽管在实际中并没有这个必要). 注意我用的是字符串类型专用的逻辑运算符ne, 当然这只是为了表现字符串数据类型的特殊性, 实际应用中用!=也就可以了. 对于typeof操作符, 我们会在这一章的末尾详细讲解.在实际应用中, 有一些特殊的字符不能直接输入在字符串中, 例如不能在字符串中直接输入引号(会破坏字符串的完整性). 这时我们就需要用到转义字符了(Escaping). 要使用转义字符, 首先要输入一个反斜杠(\), 然后输入相应的代码. 详细的代码列表如下:\b 退格字符(ASCII 8)\f 换页符(ASCII 12)\n 换行符(ASCII 10)\r 回车符(ASCII 13)\t 制表符(ASCII 9)\" 双引号字符\' 单引号字符\\ 反斜杠字符\000 - \377 八进制表示的字符\x00 - \xFF 十六进制表示的字符\u0000 - \uFFFF 十六进制表示的16 位Unicode 字符例如:trace("He said:\"I don\'t care about you.\"\nAnd she smiled:\"Really?\"");你可以根据上面的对照列表读出上面代码的字符串内的实际内容. 运行后的输出为: He said:"I don't care about you."And she smiled:"Really?"可以看到, 转义字符都被转换为相应的实际字符了. 这就是转义字符的作用, 学过C++ 的读者应该很熟悉了.ActionScript 中的数值型数据为双精度浮点数(不懂是什么意思也没关系, 反正知道是数值就行了, 那只不过是个范围限制).对数值型数据可以进行任何相应操作. 如下例:a = 1;b = 2;sum = a + b; //求a, b 之和if(sum>0){ //假如结果大于0square_root = Math.sqrt(sum); //使用Math 对象的平方根函数求sum 的平方根}trace("sum=" + sum);trace("square_root=" + square_root);完.逻辑变量又被称为布尔变量(由其英文名称而来). 它只有两个值: true和false. 在必要的情况下, ActionScript 会自动将它的值转换为 1 和0, 你也可以用1 和0 给它赋值(这是可能是为了和Windows API 函数调用兼容而产生的).a = 10;b1 = 1;b2 = false;if(b1 == true){a = a + b1;} else {b2 = !b2;}trace("a=" + a);trace("b1=" + b1);trace("b2=" + b2);上面代码混合了数值型和逻辑型变量的运算. a = a + b1 将逻辑值b1(true即1)加到a 上, b2 = !b2 则是对b2 取反(即由false变为true 或是由true变为false, 因为逻辑值只有两种情况: 真或假). 你可以试着修改一下b1 的值来看看不同的效果.对象是ActionScript 中的一个重要数据类型. 说得更清楚一些, 它就是现在大多数编程语言中的类(Class).其实在Flash 中使用的MovieClip 其实也属于一种预定义的类, 只不过它有些特殊而已.关于对象我们会在后面章节详细介绍.影片是Flash 中唯一用来引用图像元素的数据类型. 你可以通过MovieClip 对象的各种属性(Property)和方法(Method)来操作它的实例(Instance).关于影片我们也会在后面详细讲解.空? 我是说"空", 也就是什么都没有. 这种数据类型就是这个意思, 而且它只有一个值: null. 那么它有什么用呢?▪用来表示一个变量尚未赋值▪用来表示一个变量已经不包含数据▪用来表示一个函数没有返回值▪用来表示一个函数的某个参数被省略了不要认为它毫无意义, 在涉及到具体的程序问题时它是非常有用的.未定义类型同Null 差不多, 也只有一个值: undefined.它被用来表示一个变量尚未赋值.在实际应用中我们经常遇到需要判断具体变量和对象的数据类型的情况. Flash 提供了一个很好用的typeof来解决这个问题. 特别是对于自定义函数的设计, 确定参数的类型是非常重要的步骤.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FLASH CS4 ActionScript 概述
ActionScript 是由Flash Player 和AIR 中的AVM2虚拟机执行的。
ActionScript 代码通常由编译器(如Flash 或Flex 的内置编译器、Flex SDK 中提供的编辑器)编译为“字节代码格式”(一种计算机能够理解的编程语言)。
字节码嵌入在SWF 文件中,SWF 文件由Flash Player 和AIR 执行。
1.ActionScript 3.0更新内容
对于了解面向对象编程基础的用户,看到ActionScript 3.0程序代码,会感到并不陌生。
因为,它提供了可靠的编程模型,并较早期ActionScript 版本改进的一些重要功能。
其改进的功能如下所示:
● 将AVM1虚拟机更新为AVM2虚拟机,并且使用全新的字节代码指令集,可使性能显著提高。
● 更新编译器代码库,在优化方法比较早期编译器版本较好。
● 扩展并改进的应用程序编程接口(API),拥有对对象的低级控制和真正意义上的面向对象的模型。
● 基于ECMAScript for XML (E4X)规范的XML API 。
E4X 是ECMAScript 的一种语言扩展,它将XML 添加为语言的本机数据类型。
● 更新了基于文档对象模型(DOM),如第3级事件规范的事件模型。
2.ActionScript 的使用方法
对于已经熟悉Flash 前期版本的用户,可能了解将文档中添加ActionScript 脚本的方法。
但对于初学结识Flash 的用户,如何使用ActionScript 脚本语言。
如下我们列出几种使用ActionScript 的方法:
● 使用【脚本助手】模式
可以在不亲自编写代码的情况下将ActionScript 添加到FLA 文件。
例如,执行【窗口】|
【动作】命令,并弹出【动作】面板。
然后,单击【脚本助手】按钮,输入每个动作所需的参数。
但是,用户必须了解所使用的函数,不必学习语法。
● 使用【行为】面板
使用行为可以在不编写代码的情况下,将代码添加到文件中。
行为是针对常见任务预先编写的脚本。
例如,执行【窗口】|【行为】命令,即可弹出【行为】面板(或者,按F9键)。
然后在【行为】面板中添加需要配置行为内容。
但是,行为仅对ActionScript 2.0及更早版本可用。
● 自己编写代码
用户还可以在【动作】面板中,编写自己的ActionScript 程序。
这样,可以更灵活的控制文档中的对象,但要求用户熟悉ActionScript 语言。
● 使用特定组件功能
组件是预先构建的影片剪辑,可帮助用户实现复杂的功能。
组件可以是简单的用户界面控件(如复选框),也可以是复杂的控件(如滚动窗格)。
用户还可以自定义组件的功能和外观,并可下载其他开发人员创建的组件。
大多数组件要求用户自行编写一些ActionScript 代码来触发或控制组件。
Flex 是通过java 或者.net 等非Flash 途径,解释.mxml 文件组织components ,并生成相应得.swf 文件。
Flex 的component 和flash 的component 很相似,但是有所改进增强。
目前M ,ADOBE 公司推出Flex 3.0。