交互式动画设计-2008
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实例:圆周运动
4
按钮代码
stop():使动画停止播放 : 按钮代码: 按钮代码:
//按钮代码典型结构 按钮代码典型结构 on(release){ play(); }
类别:全局函数 时间轴控制 类别:全局函数/时间轴控制
5
电影剪辑代码
控制电影剪辑的移动
onClipEvent(enterFrame){ this._x--; } enterFrame:每秒自动触发数次的事件 : this是电影剪辑在代码中引用自身的方式, 是电影剪辑在代码中引用自身的方式, 是电影剪辑在代码中引用自身的方式 可以省略
Key.isDown(Key. RIGHT) Key.isDown(39) onClipEvent (keyDown) { trace(Key.getCode()); }
30
fscommand
fscommand("command","parameters") 命
quit fullscreen allowscale showmenu exec
on (press) { firstclip.duplicateMovieClip("newcli p"+i,i) //trace(i) _root["newclip"+i]._x=Math.rando m()*550, _root["newclip"+i]._y=Math.rando m()*400 i++ }
交互式动画设计wk.baidu.com
1
ActionScript简介 简介
代码类型(可插入代码的对象) 代码类型(可插入代码的对象)
帧代码: 帧代码:在动画播放到该关键帧时执行 按钮代码:告诉按钮如何响应不同的事件, 按钮代码:告诉按钮如何响应不同的事件, 是一个或多个事件处理程序 电影剪辑代码: 电影剪辑代码:也是事件处理程序
例:animate_mouse.fla
7
鼠标跟随效果
例: sFollow.fla
8
控制电影剪辑的播放
stop() play() gotoAndStop(参数 参数) 参数 prevFrame() nextFrame() 注意:必须首先给电影剪辑命名
类别:内置类 影片 影片/movieclip/方法 类别:内置类/影片 方法 例: mcplayback.fla
26
_root和_parent 和
_root
mcA
mcB
mcC
mcD
若在mcD中访问 中访问mcC 若在 中访问 • 绝对路径:_root.mcB.mcC._x 绝对路径: • 相对路径:_parent.mcC._x 相对路径:
27
接受键盘输入
可以使用按钮或电影剪辑来检测键盘 输入 两种方法
使用按钮: 使用按钮:keyPress事件 事件 on (keyPress "<Right>") { _x++; } 问题:不能判断特殊键, 问题:不能判断特殊键,如alt、ctrl 、
13
复制电影剪辑
一、利用实例复制电影剪辑 firstclip.duplicateMovieClip("newclip”,0) duplicateMovieClip(“firstclip”,“newclip”,0) 1. 被复制的电影剪辑 2. 复制的新的电影剪辑的名字 3. 新的电影剪辑所在的层次:层次决定重叠顺序, 新的电影剪辑所在的层次:层次决定重叠顺序, 值大者显示在前。必须为每个复制的影片剪辑分 值大者显示在前。 配一个唯一的层次, 配一个唯一的层次,以防止它替换现有层次上的 影片。 影片。
19
删除电影剪辑
myMC.removeMovieClip() 只能删除使用duplicateMovieClip或 或
AttachMovie复制的电影剪辑 复制的电影剪辑
20
碰撞检测 hitTest
检测鼠标是否在某个电影剪辑上
myMC.hitTest(_root._xmouse, _root._ymouse,true) 第三个参数: 第三个参数:指定将电影剪辑的边框还 是整个图形作为检测区域
例:duplicateMovieClip.fla
16
i的初始化 写在浈上 的初始化,写在浈上 的初始化 如何改变名字为“newclip“+i的电影剪 的电影剪
辑的坐标
访问电影剪辑方式
mymc._x _root. mymc._x _root[“mymc”]._x
17
英文双引号,还有加 英文双引号,还有加i
24
检测两个电影剪辑是否重叠
myMC1.hitTest(myMC2) if(this.hitTest(_root[“mymc"])) { _x=0 }
25
相对路径和绝对路径
当在一个电影剪辑中通过代码控制另 一个电影剪辑时就涉及到路径问题
C:\
Windows Win.com Notepad.exe command Help My Documents My Pictures My Webs zhang Workshop Li
10
拖动电影剪辑
让电影剪辑跟随鼠标
myclip.startDrag(true); 参数:如果为true,则拖动时鼠标在电影 参数:如果为 , 剪辑中心; false, 剪辑中心;为false,则拖动时鼠标与电 影剪辑中心距离保持不变
类别:内置类 影片 影片/movieclip/方法 类别:内置类/影片 方法
例:碰撞.fla
方法一: 方法一:在电影剪辑中添加代码
onClipEvent (enterFrame) { _x=_root._xmouse _y=_root._ymouse }
方法二: 方法二:在主场景的帧上添加代码 Myclip.startDrag(true)
23
让电影剪辑在舞台上移动
onClipEvent (enterFrame) { _x+=5 if(_x>550){ _x=0 } }
3
控制flash播放顺序 播放顺序 控制
gotoAndPlay(参数 参数) 参数
告诉flash不要运行时间轴的下一帧,而 不要运行时间轴的下一帧, 告诉 不要运行时间轴的下一帧 是跳到完全不同的帧 如: gotoAndPlay(1) gotoAndPlay(“part1”)
类别:全局函数 时间轴控制 类别:全局函数/时间轴控制 注意: 注意:包含代码的帧,先执行代码, 然后再显示帧的内容。
18
二、利用元件而不是实例复制电影剪辑 利用元件而不是实例复制电影剪辑 元件 AttachMovie(“firstclip firstclip”, newclip”,0) AttachMovie( firstclip , “ newclip ,0)
注意: 注意:必须通过元件属性对话框设置其链 接属性(库面板/右键/连接) 接属性(库面板/右键/连接) 这里的firstclip不是元件的名字,而是连 firstclip不是元件的名字 这里的firstclip不是元件的名字,而是连 接属性的标志符
组件是已定义的复杂影片剪辑,可通过 组件是已定义的复杂影片剪辑, 改变参数,设置其外观和功能。 改变参数,设置其外观和功能。 包含在文件夹: 包含在文件夹:Flash UI Components.fla
Flash MX/First Run/Components
33
1、scrollPane 、
使用带垂直和水平滚动条的窗口, 使用带垂直和水平滚动条的窗口,以显示 Flash 文档中的影片剪辑。 文档中的影片剪辑。
2
第一个程序:帧代码 第一个程序:帧代码1
Trace(“字符串”) 字符串” 字符串
可输出一些信息到Flash窗口,输出窗 窗口, 可输出一些信息到 窗口 口是一个小文本窗口, 口是一个小文本窗口,在预览电影时出 当开发程序时用于调试。 现。当开发程序时用于调试。
类别:全局函数 其他函数 类别:全局函数/其他函数 添加帧代码:出现“ 标记 添加帧代码:出现“a”标记 运行: 运行:控制 测试影片
例:复制1.fla
14
使电影剪辑出现的位置随机
随机数
类别:内置类 核心 核心/Math 类别:内置类/核心
Math.random():生成一个介于0~1 :生成一个介于 之间的随机数 on (release) { duplicateMovieClip(“mymc”,"newclip",0); newclip._x=Math.random()*550; newclip._y=Math.random()*400; }
(1)输入文本 ) 动态文本、 (2)要将文本设置成动态文本、多行 )要将文本设置成动态文本 (3)将scrollBar拖到文本框上 ) 拖到文本框上 (4)调整文本框的大小 ) (5)再次拖动 )再次拖动scrollBar 35
fscommand(“exec",“plane.exe") 说明: 说明: 本身要被发布为exe文件 (1)flash本身要被发布为 ) 本身要被发布为 文件 (2)被调用的exe文件要放在fscommand 2)被调用的exe文件要放在fscommand 文件要放在 文件夹下
32
Flash UI 组件
令
无
参
数
作
关闭播放器。 关闭播放器。
用
true 或 false true 或 false true 或 false
设置Flash Player 为全屏模 设置 还是窗口模式。 式,还是窗口模式。 指定影片是否能够进行缩放。 指定影片是否能够进行缩放。 设置是否显示右键菜单
应用程序的路 应用程序的路 在播放器内执行应用程序。 在播放器内执行应用程序。 31 径
11
实现拖动
利用电影剪辑鼠标事件 onClipEvent (mouseDown) { this.startDrag(); } onClipEvent (mouseUp) { this.stopDrag(); }
12
创建包含按钮的电影剪辑 on (press) { this.startDrag(true); } on (release) { this.stopDrag(); }
9
控制电影剪辑的属性
可以控制电影剪辑的位置、大小、旋转 可以控制电影剪辑的位置、大小、 角度等 myclip._x=200 myclip._xscale=50 myclip._rotation=30
如何通过编程制作一个电影剪辑的旋转动画? 如何通过编程制作一个电影剪辑的旋转动画? 类别:内置类 影片 影片/movieclip/属性 类别:内置类/影片 属性 例: mcproperties.fla
15
单击一次, 单击一次,复制一个新的电影剪辑
引入变量i,每单击一次按钮增 引入变量 ,每单击一次按钮增1 电影剪辑名字: 电影剪辑名字:“newclip”+i
+:连接两个字符串 +:连接两个字符串
层次: 层次:i on (press){
duplicateMovieClip(“mymc”,"newclip“+i,i); i++; }
1) (1)将导入的图片转换为元件 (2)设置元件的链结属性,将标志符命 )设置元件的链结属性, 名为pic 名为 (3)设置组件的 )设置组件的scrollContent属性 属性 为pic
34
2、scrollBar 、
向文本框添加滚动条, 向文本框添加滚动条,使得文本框可以容 滚动条 纳大量的文本, 纳大量的文本,而无需将文本全部同时显 示出来。 示出来。
例: runaway.fla
21
onClipEvent (enterFrame) { if(this.hitTest(_root._xmouse,_root._ ymouse,true)){ _x=Math.random()*550; _y=Math.random()*400;} }
22
检测两个电影剪辑是否重叠 让电影剪辑跟随鼠标
6
让用户控制电影剪辑
使电影剪辑跟随用户的鼠标
_xmouse和_ymouse分别代表光标 和 分别代表光标 的横坐标和纵坐标( 的坐标系统) 的横坐标和纵坐标(flash的坐标系统) 的坐标系统 this. _xmouse:相对于电影剪辑 _xmouse: _root. _xmouse:相对于舞台 :
28
使用电影剪辑: 参数) 使用电影剪辑:key.isDown(参数 参数
onClipEvent (enterFrame) { if (Key.isDown(Key. RIGHT)) { _x++; } }
key对象类别:内置类/影片 对象类别:内置类 影片 影片/key 对象类别
29
虚拟键代码:用来表示键盘上某个键 虚拟键代码: 的一个数字
4
按钮代码
stop():使动画停止播放 : 按钮代码: 按钮代码:
//按钮代码典型结构 按钮代码典型结构 on(release){ play(); }
类别:全局函数 时间轴控制 类别:全局函数/时间轴控制
5
电影剪辑代码
控制电影剪辑的移动
onClipEvent(enterFrame){ this._x--; } enterFrame:每秒自动触发数次的事件 : this是电影剪辑在代码中引用自身的方式, 是电影剪辑在代码中引用自身的方式, 是电影剪辑在代码中引用自身的方式 可以省略
Key.isDown(Key. RIGHT) Key.isDown(39) onClipEvent (keyDown) { trace(Key.getCode()); }
30
fscommand
fscommand("command","parameters") 命
quit fullscreen allowscale showmenu exec
on (press) { firstclip.duplicateMovieClip("newcli p"+i,i) //trace(i) _root["newclip"+i]._x=Math.rando m()*550, _root["newclip"+i]._y=Math.rando m()*400 i++ }
交互式动画设计wk.baidu.com
1
ActionScript简介 简介
代码类型(可插入代码的对象) 代码类型(可插入代码的对象)
帧代码: 帧代码:在动画播放到该关键帧时执行 按钮代码:告诉按钮如何响应不同的事件, 按钮代码:告诉按钮如何响应不同的事件, 是一个或多个事件处理程序 电影剪辑代码: 电影剪辑代码:也是事件处理程序
例:animate_mouse.fla
7
鼠标跟随效果
例: sFollow.fla
8
控制电影剪辑的播放
stop() play() gotoAndStop(参数 参数) 参数 prevFrame() nextFrame() 注意:必须首先给电影剪辑命名
类别:内置类 影片 影片/movieclip/方法 类别:内置类/影片 方法 例: mcplayback.fla
26
_root和_parent 和
_root
mcA
mcB
mcC
mcD
若在mcD中访问 中访问mcC 若在 中访问 • 绝对路径:_root.mcB.mcC._x 绝对路径: • 相对路径:_parent.mcC._x 相对路径:
27
接受键盘输入
可以使用按钮或电影剪辑来检测键盘 输入 两种方法
使用按钮: 使用按钮:keyPress事件 事件 on (keyPress "<Right>") { _x++; } 问题:不能判断特殊键, 问题:不能判断特殊键,如alt、ctrl 、
13
复制电影剪辑
一、利用实例复制电影剪辑 firstclip.duplicateMovieClip("newclip”,0) duplicateMovieClip(“firstclip”,“newclip”,0) 1. 被复制的电影剪辑 2. 复制的新的电影剪辑的名字 3. 新的电影剪辑所在的层次:层次决定重叠顺序, 新的电影剪辑所在的层次:层次决定重叠顺序, 值大者显示在前。必须为每个复制的影片剪辑分 值大者显示在前。 配一个唯一的层次, 配一个唯一的层次,以防止它替换现有层次上的 影片。 影片。
19
删除电影剪辑
myMC.removeMovieClip() 只能删除使用duplicateMovieClip或 或
AttachMovie复制的电影剪辑 复制的电影剪辑
20
碰撞检测 hitTest
检测鼠标是否在某个电影剪辑上
myMC.hitTest(_root._xmouse, _root._ymouse,true) 第三个参数: 第三个参数:指定将电影剪辑的边框还 是整个图形作为检测区域
例:duplicateMovieClip.fla
16
i的初始化 写在浈上 的初始化,写在浈上 的初始化 如何改变名字为“newclip“+i的电影剪 的电影剪
辑的坐标
访问电影剪辑方式
mymc._x _root. mymc._x _root[“mymc”]._x
17
英文双引号,还有加 英文双引号,还有加i
24
检测两个电影剪辑是否重叠
myMC1.hitTest(myMC2) if(this.hitTest(_root[“mymc"])) { _x=0 }
25
相对路径和绝对路径
当在一个电影剪辑中通过代码控制另 一个电影剪辑时就涉及到路径问题
C:\
Windows Win.com Notepad.exe command Help My Documents My Pictures My Webs zhang Workshop Li
10
拖动电影剪辑
让电影剪辑跟随鼠标
myclip.startDrag(true); 参数:如果为true,则拖动时鼠标在电影 参数:如果为 , 剪辑中心; false, 剪辑中心;为false,则拖动时鼠标与电 影剪辑中心距离保持不变
类别:内置类 影片 影片/movieclip/方法 类别:内置类/影片 方法
例:碰撞.fla
方法一: 方法一:在电影剪辑中添加代码
onClipEvent (enterFrame) { _x=_root._xmouse _y=_root._ymouse }
方法二: 方法二:在主场景的帧上添加代码 Myclip.startDrag(true)
23
让电影剪辑在舞台上移动
onClipEvent (enterFrame) { _x+=5 if(_x>550){ _x=0 } }
3
控制flash播放顺序 播放顺序 控制
gotoAndPlay(参数 参数) 参数
告诉flash不要运行时间轴的下一帧,而 不要运行时间轴的下一帧, 告诉 不要运行时间轴的下一帧 是跳到完全不同的帧 如: gotoAndPlay(1) gotoAndPlay(“part1”)
类别:全局函数 时间轴控制 类别:全局函数/时间轴控制 注意: 注意:包含代码的帧,先执行代码, 然后再显示帧的内容。
18
二、利用元件而不是实例复制电影剪辑 利用元件而不是实例复制电影剪辑 元件 AttachMovie(“firstclip firstclip”, newclip”,0) AttachMovie( firstclip , “ newclip ,0)
注意: 注意:必须通过元件属性对话框设置其链 接属性(库面板/右键/连接) 接属性(库面板/右键/连接) 这里的firstclip不是元件的名字,而是连 firstclip不是元件的名字 这里的firstclip不是元件的名字,而是连 接属性的标志符
组件是已定义的复杂影片剪辑,可通过 组件是已定义的复杂影片剪辑, 改变参数,设置其外观和功能。 改变参数,设置其外观和功能。 包含在文件夹: 包含在文件夹:Flash UI Components.fla
Flash MX/First Run/Components
33
1、scrollPane 、
使用带垂直和水平滚动条的窗口, 使用带垂直和水平滚动条的窗口,以显示 Flash 文档中的影片剪辑。 文档中的影片剪辑。
2
第一个程序:帧代码 第一个程序:帧代码1
Trace(“字符串”) 字符串” 字符串
可输出一些信息到Flash窗口,输出窗 窗口, 可输出一些信息到 窗口 口是一个小文本窗口, 口是一个小文本窗口,在预览电影时出 当开发程序时用于调试。 现。当开发程序时用于调试。
类别:全局函数 其他函数 类别:全局函数/其他函数 添加帧代码:出现“ 标记 添加帧代码:出现“a”标记 运行: 运行:控制 测试影片
例:复制1.fla
14
使电影剪辑出现的位置随机
随机数
类别:内置类 核心 核心/Math 类别:内置类/核心
Math.random():生成一个介于0~1 :生成一个介于 之间的随机数 on (release) { duplicateMovieClip(“mymc”,"newclip",0); newclip._x=Math.random()*550; newclip._y=Math.random()*400; }
(1)输入文本 ) 动态文本、 (2)要将文本设置成动态文本、多行 )要将文本设置成动态文本 (3)将scrollBar拖到文本框上 ) 拖到文本框上 (4)调整文本框的大小 ) (5)再次拖动 )再次拖动scrollBar 35
fscommand(“exec",“plane.exe") 说明: 说明: 本身要被发布为exe文件 (1)flash本身要被发布为 ) 本身要被发布为 文件 (2)被调用的exe文件要放在fscommand 2)被调用的exe文件要放在fscommand 文件要放在 文件夹下
32
Flash UI 组件
令
无
参
数
作
关闭播放器。 关闭播放器。
用
true 或 false true 或 false true 或 false
设置Flash Player 为全屏模 设置 还是窗口模式。 式,还是窗口模式。 指定影片是否能够进行缩放。 指定影片是否能够进行缩放。 设置是否显示右键菜单
应用程序的路 应用程序的路 在播放器内执行应用程序。 在播放器内执行应用程序。 31 径
11
实现拖动
利用电影剪辑鼠标事件 onClipEvent (mouseDown) { this.startDrag(); } onClipEvent (mouseUp) { this.stopDrag(); }
12
创建包含按钮的电影剪辑 on (press) { this.startDrag(true); } on (release) { this.stopDrag(); }
9
控制电影剪辑的属性
可以控制电影剪辑的位置、大小、旋转 可以控制电影剪辑的位置、大小、 角度等 myclip._x=200 myclip._xscale=50 myclip._rotation=30
如何通过编程制作一个电影剪辑的旋转动画? 如何通过编程制作一个电影剪辑的旋转动画? 类别:内置类 影片 影片/movieclip/属性 类别:内置类/影片 属性 例: mcproperties.fla
15
单击一次, 单击一次,复制一个新的电影剪辑
引入变量i,每单击一次按钮增 引入变量 ,每单击一次按钮增1 电影剪辑名字: 电影剪辑名字:“newclip”+i
+:连接两个字符串 +:连接两个字符串
层次: 层次:i on (press){
duplicateMovieClip(“mymc”,"newclip“+i,i); i++; }
1) (1)将导入的图片转换为元件 (2)设置元件的链结属性,将标志符命 )设置元件的链结属性, 名为pic 名为 (3)设置组件的 )设置组件的scrollContent属性 属性 为pic
34
2、scrollBar 、
向文本框添加滚动条, 向文本框添加滚动条,使得文本框可以容 滚动条 纳大量的文本, 纳大量的文本,而无需将文本全部同时显 示出来。 示出来。
例: runaway.fla
21
onClipEvent (enterFrame) { if(this.hitTest(_root._xmouse,_root._ ymouse,true)){ _x=Math.random()*550; _y=Math.random()*400;} }
22
检测两个电影剪辑是否重叠 让电影剪辑跟随鼠标
6
让用户控制电影剪辑
使电影剪辑跟随用户的鼠标
_xmouse和_ymouse分别代表光标 和 分别代表光标 的横坐标和纵坐标( 的坐标系统) 的横坐标和纵坐标(flash的坐标系统) 的坐标系统 this. _xmouse:相对于电影剪辑 _xmouse: _root. _xmouse:相对于舞台 :
28
使用电影剪辑: 参数) 使用电影剪辑:key.isDown(参数 参数
onClipEvent (enterFrame) { if (Key.isDown(Key. RIGHT)) { _x++; } }
key对象类别:内置类/影片 对象类别:内置类 影片 影片/key 对象类别
29
虚拟键代码:用来表示键盘上某个键 虚拟键代码: 的一个数字