搜档网
当前位置:搜档网 › flash歌词同步

flash歌词同步

flash歌词同步
flash歌词同步

相关文章:Flash AS3用于读取LRC同步歌词的类。

一、准备工作

既然要制作歌词同步程序,首先要准备一首歌,我们就以“周杰伦-青花瓷”为例。首先要下载这首“青花瓷.mp3”,保存为“C:\My Player\Music\青花瓷.mp3”。还要下载青花瓷的LRC 文件,大家可以到网上下载(地址见附录),将文本内容保存为“C:\My Player\LRC\青花瓷.lrc”。我们的程序(类和FLA)则保存在“C:\My Player\”文件夹下。

青花瓷.lrc 文件:

--------------------------------------------------------------------------------

[ti:青花瓷]

[ar:周杰伦]

[al:我很忙]

[by:张琪]

[00:00.00]发送短信18到291199下载该歌曲到手机

[00:01.11]青花瓷

[03:36.49]

[00:21.39]素眉勾勒秋千话北风龙转丹

[00:26.08]屏层鸟绘的牡丹一如你梳妆

[00:30.46]黯然腾香透过窗心事我了然

[00:34.93]宣纸上皱边直尺各一半

[00:39.49]油色渲染侍女图因为被失藏

[00:43.83]而你嫣然的一笑如含苞待放

[00:48.30]你的美一缕飘散

[00:50.77]去到我去不了的地方

[02:23.97][00:55.77]

[03:01.92][02:25.63][00:56.90]天正在等烟雨

[03:03.57][02:27.91][00:58.99]而我在等你

[03:05.92][02:30.44][01:00.93]炊烟袅袅升起

[03:07.76][02:32.25][01:03.49]隔江千万里

[03:10.36][02:34.85][01:05.84]在平地书刻你房间上的飘影

[03:14.67][02:38.73][01:09.87]就当我为遇见你伏笔

[03:18.83][02:43.35][01:14.34]天正在等烟雨

[03:21.20][02:45.60][01:16.68]而我在等你

[03:23.71][02:48.01][01:18.99]月色被打捞起

[03:25.74][02:50.10][01:21.18]掩盖了结局

[03:28.33][02:52.54][01:23.72]如传世的青花瓷在独自美丽

[03:32.30][02:56.67][01:27.65]你眼的笑意

[01:50.25]色白花青的景已跃然于碗底

[01:54.69]临摹宋体落款时却惦记着你

[01:59.22]你隐藏在药效里一千年的秘密

[02:03.75]急溪里犹如羞花沾落地

[02:08.32]林外芭蕉惹咒语

[02:10.57]梦幻的铜绿

[02:12.84]而我路过那江南小镇的等你

[02:17.19]在泼墨山水画里

[02:19.75]你从墨色深处被隐去

--------------------------------------------------------------------------------

大家也可以把这个文本内容复制下来,然后在“C:\My Player\LRC\”下创建一个文本文档,将内容粘贴上去,再将文档保存为“青花瓷.lrc”,注意扩展名是“.lrc”。

二、LRC 内容分析

准备工作完成了,下面分析一下这个LRC 文件。之所以叫LRC ,是因为它是Lyric (歌词) 的缩写。这种格式真是一目了然,前面“[ ]”中的数字表示其后歌词的开始时间。例如,“[01:50.25]色白花青的景已跃然于碗底”表示在1分50.25秒时,歌词内容是“色白花青的景已跃然于碗底”。

还有一种形式是“[03:01.92][02:25.63][00:56.90]天正在等烟雨”这种形式常用于赋格部分(俗称:歌曲的高潮部分),它表示在03:01.92, 02:25.63, 00:56.90 时的歌词都是“天正在等烟雨”。由于这种形式的存在,使后面的编程稍显复杂,不过没关系,凭借各位的聪明智**

四、LRC 的读取与存储转换(使用文档类设计)

1.读取LRC 文件,这一步非常简单与读取普通的文本文件是一样的;

CODE:

public function LRCPlayer() {

var loader:URLLoader=new URLLoader();

loader.load(new URLRequest("LRC/青花瓷.lrc"));

loader.addEventListener(https://www.sodocs.net/doc/d711722090.html,PLETE,LoadFinish);

}

private function LoadFinish(evt:Event):void {

trace(evt.target.data);

}

--------------------------------------------------------------------------------

2.将读取的LRC 数据按行分割("\n" 为换行符),数组的每一个元素代表LRC 的一行内容;CODE:

function LoadFinish(evt:Event):void {

var list:String=evt.target.data;

var listarray:Array=list.split("\n");

trace(listarray);

}

--------------------------------------------------------------------------------

3.在数组中提取每一行的时间及歌词,解决单时间序列的问题;(注意!此段代码只作讲解,不以应用)

LRC 内容如下:

QUOTE:

[00:43.83]而你嫣然的一笑如含苞待放

[00:48.30]你的美一缕飘散

[00:50.77]去到我去不了的地方

[03:01.92]天正在等烟雨

[03:03.57]而我在等你

[03:05.92]炊烟袅袅升起

[03:07.76]隔江千万里

代码如下:

CODE:

function LoadFinish(evt:Event):void {

var list:String=evt.target.data;

var listarray:Array=list.split("\n");

for (var i=0; i

var info:String=listarray[i];

//提取每行内容,用变量info 保存

var lyric:String=info.substr(10);

//将歌词内容提取到lyric 变量中

var ctime:String =info.substr(0,10);

//提取时间序列字串

var ntime:Number=Number(ctime.substr(1,2))*60+Number(ctime.substr(4,5));

//将时间字串转换为计算机可读取的时间

var obj:Object=new Object();

obj.timer=ntime*1000;

obj.lyric=lyric;

LRCarray.push(obj);

//将时间与歌词保存到一个Object 中,并压入LRCarray 数组

trace(obj.timer,obj.lyric);

}

}

输出结果:

QUOTE:

43830 而你嫣然的一笑如含苞待放

48300 你的美一缕飘散

50770 去到我去不了的地方

181920 天正在等烟雨

183570 而我在等你

185920 炊烟袅袅升起

187760 隔江千万里

--------------------------------------------------------------------------------

4.在LRC文件,还有多时间序列的存在,所以单时间序列算法不能满足实际需要,下面就来解决多时间序列问题;

LRC 内容如下:

QUOTE:

[00:43.83]而你嫣然的一笑如含苞待放

[00:48.30]你的美一缕飘散

[00:50.77]去到我去不了的地方

[03:01.92][02:25.63][00:56.90]天正在等烟雨

[03:03.57][02:27.91][00:58.99]而我在等你

[03:05.92][02:30.44][01:00.93]炊烟袅袅升起

[03:07.76][02:32.25][01:03.49]隔江千万里

代码如下:

CODE:

function LoadFinish(evt:Event):void {

var list:String=evt.target.data;

var listarray:Array=list.split("\n");

var reg:RegExp=/\[[0-5][0-9]:[0-5][0-9].[0-9][0-9]\]/g;

//建立正则表达式,范围:[00:00.00]~[59:59.99]

for (var i=0; i

var info:String=listarray[i];

//提取每行内容,用变量info 保存

var len:int=info.match(reg).length;

//该行拥有时间序列的个数

var timeAry:Array=info.match(reg);

//将匹配的时间序列保存到timeAry 数组中

var lyric:String=info.substr(len*10);

//根据每个时间序列占10个字符,找出歌词内容的起点

//将歌词提取到lyric 变量中

for (var k:int=0; k

var obj:Object=new Object();

var ctime:String=timeAry[k];

var ntime:Number=Number(ctime.substr(1,2))*60+Number(ctime.substr(4,5));

obj.timer=ntime*1000;

obj.lyric=lyric;

LRCarray.push(obj);

trace(obj.timer,obj.lyric);

}

//将时间序列转换为毫秒并与歌词一起保存为一个数组元素

}

}

输出结果:

QUOTE:

43830 而你嫣然的一笑如含苞待放

48300 你的美一缕飘散

50770 去到我去不了的地方

181920 天正在等烟雨

145630 天正在等烟雨

56900 天正在等烟雨

183570 而我在等你

147910 而我在等你

58990 而我在等你

185920 炊烟袅袅升起

150440 炊烟袅袅升起

60930 炊烟袅袅升起

187760 隔江千万里

152250 隔江千万里

63490 隔江千万里

--------------------------------------------------------------------------------

5.将获得的LRCarray 数组按起始时间排序,这对于按序读取歌词有重要意义;CODE:

LRCarray.sort(compare);

private function compare(paraA:Object,paraB:Object):int {

if (paraA.timer>paraB.timer) {

return 1;

}

if (paraA.timer

return -1;

}

return 0;

}

结果如下:

QUOTE:

43830 而你嫣然的一笑如含苞待放

48300 你的美一缕飘散

50770 去到我去不了的地方

56900 天正在等烟雨

58990 而我在等你

60930 炊烟袅袅升起

63490 隔江千万里

145630 天正在等烟雨

147910 而我在等你

150440 炊烟袅袅升起

152250 隔江千万里

181920 天正在等烟雨

183570 而我在等你

185920 炊烟袅袅升起

187760 隔江千万里

--------------------------------------------------------------------------------

6.最后,随着音乐的播放,读取播放时间段内的歌词。用当前播放时间与LRCarray 中的时间相比较,如果当前时间小于LRCarray.timer 的时间,那么就显示LRCarray[i-1].lyric 的歌词。为什么要显示[i-1] 的歌词呢?比如说当前播放到第500 秒,读取的LRCarray[20].timer 时间是400 秒,那么i++ 。下一次读取的LRCarray[21].timer 时间是700 秒,这时当前播放时间小于读取的这个时间,就说明当前的第500 秒仍处于LRCarray[20].timer 的时间范围内。

CODE:

var lrc_txt:TextField=new TextField();

var LRCarray:Array=new Array();

var sc:SoundChannel;

public function LRCPlayer() {

lrc_txt.width=500;

lrc_txt.selectable=false;

addChild(lrc_txt);

//歌词在文本lrc_txt 中显示

var loader:URLLoader=new URLLoader();

loader.load(new URLRequest("LRC/青花瓷.lrc"));

loader.addEventListener(https://www.sodocs.net/doc/d711722090.html,PLETE,LoadFinish);

var sound:Sound=new Sound();

sound.load(new URLRequest("Music/青花瓷.mp3"));

sc=sound.play();

//播放声音,并生成sc 变量,SoundChannel 类的实例

stage.addEventListener(Event.ENTER_FRAME,SoundPlaying);

//实时刷新歌词

}

function SoundPlaying(evt:Event):void {

for (var i=1; i

if (sc.position

lrc_txt.text=LRCarray[i-1].lyric;

break;

//找到歌词,跳出循环体

}

lrc_txt.text=LRCarray[LRCarray.length-1].lyric;

//找不到歌词,说明已超出了最后一句的时间,因此显示最后一句歌词}

}

五、全部代码(文档类LRCPlayer.as):

CODE:

package {

import flash.display.Sprite;

import https://www.sodocs.net/doc/d711722090.html,.URLRequest;

import https://www.sodocs.net/doc/d711722090.html,.URLLoader;

import flash.media.Sound;

import flash.media.SoundChannel;

import flash.events.Event;

import flash.text.TextField;

import flash.system.System;

public class LRCPlayer extends Sprite {

var lrc_txt:TextField=new TextField();

var LRCarray:Array=new Array();

var sc:SoundChannel;

public function LRCPlayer() {

https://www.sodocs.net/doc/d711722090.html,eCodePage=true;

lrc_txt.width=500;

lrc_txt.selectable=false;

addChild(lrc_txt);

var loader:URLLoader=new URLLoader();

loader.load(new URLRequest("LRC/青花瓷.lrc"));

loader.addEventListener(https://www.sodocs.net/doc/d711722090.html,PLETE,LoadFinish);

var sound:Sound=new Sound();

sound.load(new URLRequest("Music/青花瓷.mp3"));

sc=sound.play();

stage.addEventListener(Event.ENTER_FRAME,SoundPlaying);

}

function SoundPlaying(evt:Event):void {

for (var i=1; i

if (sc.position

lrc_txt.text=LRCarray[i-1].lyric;

break;

}

lrc_txt.text=LRCarray[LRCarray.length-1].lyric;

}

}

function LoadFinish(evt:Event):void {

var list:String=evt.target.data;

var listarray:Array=list.split("\n");

var reg:RegExp=/\[[0-5][0-9]:[0-5][0-9].[0-9][0-9]\]/g;

for (var i=0; i

var info:String=listarray[i];

var len:int=info.match(reg).length;

var timeAry:Array=info.match(reg);

var lyric:String=info.substr(len*10);

for (var k:int=0; k

var obj:Object=new Object();

var ctime:String=timeAry[k];

var ntime:Number=Number(ctime.substr(1,2))*60+Number(ctime.substr(4,5));

obj.timer=ntime*1000;

obj.lyric=lyric;

LRCarray.push(obj);

}

}

LRCarray.sort(compare);

}

private function compare(paraA:Object,paraB:Object):int {

if (paraA.timer>paraB.timer) {

return 1;

}

if (paraA.timer

return -1;

}

return 0;

}

}

}

六、*无处不在的优化

至此,该程序已经可以顺利执行了,此处只讨论一下优化问题,看不懂可以跳过。以这段代码为例:

CODE:

function SoundPlaying(evt:Event):void {

for (var i=1; i

if (sc.position

lrc_txt.text=LRCarray[i-1].lyric;

break;

}

lrc_txt.text=LRCarray[LRCarray.length-1].lyric;

}

}

如果要进行优化,那么这个for 循环,应该写成:

CODE:

for (var i=1,j=LRCarray.length; i

这样在执行判断时,不必每次都进行LRCarray.length 操作,该操用于读取数组长度,执行Array 类的length 方法,属于高级操作,花费的时间要比低级操作多。其实,只要读取一次长度,然后将结果保存在变量j 中,每次判断时读取j 的值即可。取值与赋值都属于低级别的操作,速度较快。同样的道理,在

CODE:

if (sc.position

中的sc.position 在每次判断时都要读取一遍,这时就应将它在循环之前保存到一个变量里,这段代码优化后应是这样:

CODE:

function SoundPlaying(evt:Event):void {

var now:Number=sc.position;

for (var i=1,j=LRCarray.length; i

if (now

lrc_txt.text=LRCarray[i-1].lyric;

break;

}

lrc_txt.text=LRCarray[j-1].lyric;

}

}

在我们的文档类中还有几个地方用到了for 循环,请大家按照上述方法自行优化。

其实,代码优化无处不在,其中的学问不胜枚举,有兴趣的朋友可以到我的博客中看一下关于代码优化的总结贴,见附录。

七、附录

1.LRC 文件下载地址:

https://www.sodocs.net/doc/d711722090.html,/

https://www.sodocs.net/doc/d711722090.html,/

2.至于MP3 的下载,我想大家比我在行,用百度或酷狗都可以。

3.代码优化总结贴地址:

https://www.sodocs.net/doc/d711722090.html,/flash/actionscript-5898.html

4.整个文件包括(歌曲、歌词、LRCPlayer.as 、FLA 文件)打包下载:

https://www.sodocs.net/doc/d711722090.html,/zh-cn/files/cf760b0f-01a0-11dd-9174-0014221f3995/

八、结束语

恭喜您坚持到了现在,确实内容比较长,同时也涉及了一些知识点。其实做法肯定不只这一种,所以希望大家多多发挥主观能动性,结合上述内容继续将这个播放程序做大做强。好了,就到这里,再次感谢。

转载请注明:破洛洛(谢谢合作)

上一篇文章:优化Flash Actionscript代码的三种方法-Flash actionscript

下一篇文章:Flash as3:绝对坐标与相对坐标-Flash actionscript

Flash中的动作脚本

Flash中的动作脚本 1.1什么是ActionScript ActionScript是Flash的脚本语言。可以使用ActionScript控制Flash中的对象,创建向导和交互元素,也可以扩展Flash,制作高级交互影片和Flash交互网站。 1.2动作脚本所附加的位置 1.附着在按钮实例上 方法:选择场景中的按钮,单击鼠标右键,从弹出的快捷菜单中选择“动作”(Action),在打开的“动作”面板中添加ActionScript脚本。 使用:在动画播放时,发生按钮事件时,即会触发附着在其上对应事件的捕捉函数并运行该函数或指令。 2.附着在关键帧上 方法:在想要附着动作脚本的关键帧上单击鼠标右键,从弹出的快捷菜单中选择“动作”,在打开的“动作”面板中添加动作脚本。 使用:在动画播放时,只要该关键帧被播放一次,附着在它上面的脚本就执行一次。 显示:附着有动作脚本的关键帧会显示一个a。 3.附着在影片剪辑上 方法:在场景的影片剪辑上单击鼠标右键,从弹出的快捷菜单中选择“动作”,在打开的“动作”面板中添加动作脚本命令,该脚本就附着在影片剪辑上。 使用:当对影片剪辑发生各种事件时,就触发了附着在其上的捕捉函数,开始运行捕捉函数中的脚本命令。 1.3ActionScript相关述语 1.实例:属于某个类的对象,同类对象的实例具有该类对象的所有共同特性。例如每一个影片剪辑都是MovieClip类的一个实例,它们都具有_x、_y、_alpha 等属性。每个实例都对应着一个标识该实例的标识符,称为实例名称。要用程序控制或使用某个实例,就需要用到实例名称。例如,要让影片剪辑实例(名称为myCan)中的动画播放,可以使用如下脚本程序:“myCar.play();”。其中,myCar 表示实例名称,play()是MovieClip类的方法,它们之间用(.)连接起来。 2.对象:特定类的实例,是属性和方法的集合。按钮是对象,影片剪辑是对象。 3.事件:是SWF文件播放时对象所发生的动作。例如,单击按钮,按下键盘上的键,动画播放到某一帧等都是事件。 1)按钮事件 a)onDragOut:当在按钮上按下鼠标,只要按住左键移到按钮外,就会开始执行 相应的动作。 b)onDragOver:在按钮上按下鼠标,并按住移开按钮,然后又移到按钮上,并 且在些过程中一直没有释放,则开始执行相应的动作。

Flash骨骼工具详解

Flash 骨骼工具详解 2008 年9 月,Adobe 公司发布了新版本的Flash “ Adobe Flash CS4 Professional ”,从这个版本开始,Flash 动画技术有了很大的变革。其中主要包括“ 3D工具”、“骨骼工具”和新的动作补间形式。 请朋友们注意,以上这些动画技术都需要ActionScript 3.0 支持。因此,在新建动画文件的时候,要选择创建“ ActionScript 3.0 ”文档, 发布设置的时候,选择最新版本的播放器。 Flash CS6 版本中,取消了骨骼动画的功能。 1、关于骨骼动画 在动画设计软件中,运动学系统分为正向运动学和反向运动学这两种。正向运动学指的是对于有层级关系的对象来说,父对象的动作将影响到子对象,而子对象的动作将不会对父对象造成任何影响。如,当对父对象进行移动时,子对象也会同时随着移动。而子对象移动时,父对象不会产生移动。由此可见,正向运动中的动作是向下传递的。 与正向运动学不同,反向运动学动作传递是双向的,当父对象进行位移、旋转或缩放等动作时,其子对象会受到这些动作的影响,反之,子对象的动作也将影响到父对象。反向运动是通过一种连接各种物体的辅助工具来实现的运动,这种工具就是IK 骨骼,也称为反向运动骨骼。使用IK 骨骼制作的反向运动学动画,就是所谓的骨骼动画。 2、骨骼动画工具 骨骼动画工具组包括2 个工具:骨骼工具和绑定工具。如图XXX所 示: 图XXX 骨骼工具组 3、骨骼动画的创建 在Flash 中,创建骨骼动画一般有两种方式。一种方式是为元件实例添加与其他

元件实例相连接的骨骼,使用关节连接这些骨骼。骨骼允许实例链一起运动。另一种方式是在形状对象(即各种矢量图形对象)的内部添加骨骼,通过骨骼来移动形状的各个部分以实现动画效果。这样操作的优势在于无需绘制运动中该形状的不同状态,也无需使用补间形状来创建动画。 (1)元件实例骨骼动画 元件实例骨骼动画,适合具有有关节这一类事物的动画的制作。比如人和动物的肢体、带有关节的机械等等。下面以制作挖掘机动画来简单介绍元件实例骨骼动画的制作。 首先创建“ ActionScript 3.0 ”文档,创建好三个元件:挖掘机体,挖掘机臂,铲 斗。如图XXX所示: 图XXX 创建挖掘机相关部件的元件 把挖掘机体元件从元件库中拖入图层1 的第一个关键帧中。如图XXX所示: 图XXX 把挖掘机体元件拖入舞台

FLASH动作脚本基本知识

FLASH动作脚本基本知识 第一讲动作脚本基本知识 一、动作脚本概念动作脚本就是Flash MX 为我们提供的各种命令,运算符以及对象,使用动作脚本时必须将其附加在按钮、影片剪辑或者帧上,从而使单击按钮和按下键盘键之类的事件时触发这些脚本。以便实现所需的交互性。 学习动作脚本的最佳方法是对其进行实际操作,即使对动作脚本没有完全理解,也不影响对其控制功能的使用,一样能够实现简单的交互性操作,经过一段时间的实践对基本的动作(如play 和stop)运用自如,对动作脚本略知一二后,就可以开始学习关于此语言的更多知识了。 二、动作脚本面板当我们为帧,按钮或影片剪辑指定动作时必须使用动作面板,动作面板的结构如示例1.1 三、基本动作控制命令 1 停止命令格式; stop(); 说明动作;停止播放头的移动 2 播放命令 格式;play(); 说明动作;在时间轴中向前移动播放头。 3 转移命令gotoAndPlay(scene, frame) 参数scene 播放头将转到的场景的名称。frame 播放头将转到的帧的编号或标签。 动作;将播放头转到场景中指定的帧并从该帧开始播放。如果未指定场景,则播放头将转到当前场景中的指定帧。以上三个命令是动作脚本中最常用的基本动作,它们通过对时间轴上播放头的控制实现的特定功能,在对播放头实施控制时一般有多种方法可供选择,但最常用的是在坐标系内部实施控制和在不同坐标系之间实施控制,前者直接使用命令就可以实现目的(见示例1.2和示例1.3),后者则必须使用目标路径才能实现控制功能(见示例1.4和示例1.5) 四按钮 使用按钮元件可以在影片中创建响应鼠标点击、滑过或其它动作的交互式按钮。可以定义与各种按钮状态关联的图形,然后指定按钮实例的动作。请参阅为按钮指定动作。在单击或滑过按钮时要让影片执行某个动作。您必须将动作指定给按钮的一个实例;该元件的其它实例不受影响。 当为按钮指定动作时,必须将动作嵌套在on 处理函数中,并指定触发该动作的鼠标或键盘事件。当在标准模式下为按钮指定动作时,会自动插入on 处理函数,然后您可从列表中选择一个事件。您也可用动作脚本Button 对象的事件在发生按钮事件时执行脚本。************************************************ 注释1:命令中的圆括号(1) 圆括号一般用来放置函数的参数以便传递这些参数,我们所学习的各种命令,也都可以称为函数.

Flash元件库

Flash元件库 定义: 元件:原意是指小型的、机器、仪器的组成部分,如电容﹑晶体管﹑游丝﹑发条等。本意是指动画中可以反复取出使用的素材,它可以是图形、按钮或一个小动画,它可以独立于主动画进行播放。 元件库:原意是指将元件的各种模型集成在一个地方。本意指用于存放和组织可重复使用的元件。 分析: 学生经过前期的实践操作,已经由感性认识上升到理性认识的角度,并且能够积极地跟随老师探究新鲜知识,能初步把所教的应用到实际生活中。对于Flash 动画制作软件有一定的了解,但是不能真正理解做Flash动画的操作条理,而且对这款软件制作动画的关键环节也不是很清晰。本节课所涉及的元件及元件库的知识点是以后动画的基础,但必须与前面内容相联系。通过本节课的学习,学生可以进一步了解及掌握动画制作的关键所在,以此彻底掌握且熟悉元件对象在制作动画中的操作方法与使用技巧。 重点: 了解Flash元件的分类,学会库项目的管理。 难点: 会区分元件的种类,掌握元件库的基本操作 教学策略: 教学过程先给学生展示两个较为复杂较为完整的flash作品,首先从视觉上吸引学生的注意力,从作品情节和技能上激发学生制作的欲望,然后老师对作品做简单分析,着重介绍库元件的类型、文件夹管理功能,学生自然回忆起上节课所学知识和技能,与学生现有知识结构接轨,最后老师明确任务,学生积极接受任务,主动探索,给学生提供舞台,充分发挥他们的聪明才智。在最后的评价环节,先请作品制作人介绍自己作品的构思,老师引导学生用欣赏的眼光对待别人的作品,并真诚地指出不足,帮助同学进步,同时落实这节课的情感目标,学生心中充满对美好生活环境的向往,或对目前污染现状的反应,都能唤起并加强学生低碳生活、保护环境的意识。 任务范例:利用已有源文件中的元件进行二次创作 推荐人:何民春 适用范围:八/初二年级学生 任务描述:根据老师提供的两三个flash源文件,充分利用库中的元件进行二次创作,生成一幅融入自己创意的flash作品,并为作品命名。期间用到元件的复制、库中元件合理分类管理。

Flash基本工具的使用及基本动画练习大全

在时间帧面板上,每5帧有个“帧序号”标识,常见“帧符号”意义如下: ●关键帧:关键帧定义了动画的变化环节,逐帧动画的每一帧都是关键帧。而补间动画在动画的重要点上创建关键 帧,再由Flash自己创建关键帧之间的内容。实心圆点是有内容的关键帧,即实关键帧。而无内容的关键帧(即空白关键帧)则用空心圆表示。 ●普通帧:普通帧显示为一个个的单元格。无内容的帧是空白的单元格,有内容的帧显示出一定的颜色。不同的颜 色代表不同类型的动画,如动作补间动画的帧显示为浅蓝色,形状补间动画的帧显示为浅绿色。而静止关键帧后的帧显示为灰色。关键帧后面的普通帧将继承该关键帧的内容。 ●帧标签:帧标签用于标识时间轴中的关键帧,用红色小旗加标签名表示,如。 ●帧注释:用于为你自己或处理同一文件的其他人员提供提示。用绿色的双斜线加注释文字表示,如。 ●播放头:指示当前显示在舞台中的帧,将播放头沿着时间轴移动,可以轻易地定位当前帧。用红色矩形表示,红 色矩形下面的红色细线所经过的帧表示该帧目前正处于“播放帧”。 逐帧动画 1.逐帧动画的概念和在时间帧上的表现形式 在时间帧上逐帧绘制帧内容称为逐帧动画,由于是一帧一帧地画,所以逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容。 逐帧动画在时间帧上表现为连续出现的关键帧,如图3-2-1所示。 2.创建逐帧动画的几种方法 (1)用导入的静态图片建立逐帧动画 用jpg、png等格式的静态图片连续导入到Flash中,就会建立一段逐帧动画(参考实例:奔跑的豹子)。 (2)绘制矢量逐帧动画 用鼠标或压感笔在场景中一帧帧的画出帧内容(参考实例:旋转的立方体)。

(3)文字逐帧动画 用文字作帧中的元件,实现文字跳跃、旋转等特效。 (4)指令逐帧动画 在时间帧面板上,逐帧写入动作脚本语句来完成元件的变化。 (5)导入序列图像 可以导入gif序列图像、swf动画文件或者利用第3方软件(如swish、swift 3D等)产生的动画序列。 3.绘图纸功能 (1)绘画纸的功能 绘画纸是一个帮助定位和编辑动画的辅助功能,这个功能对制作逐帧动画特别有用。通常情况下,Flash 在舞台中一次只能显示动画序列的单个帧。使用绘画纸功能后,你就可以在舞台中一次查看两个或多个帧了。 如图3-2-2所示,这是使用绘画纸功能后的场景,可以看出,当前帧中内容用全彩色显示,其它帧内容以半透明显示,它使我们看起来好像所有帧内容是画在一张半透明的绘图纸上,这些内容相互层叠在一起。当然,这时你只能编辑当前帧的内容。 图3-2-2 同时显示多帧内容的变化 (2)绘图纸各个按钮的介绍 ●【绘图纸外观】按钮:按下此按钮后,在时间帧的上方,出现绘图纸外观标记。拉动外观标记的两端, 可以扩大或缩小显示范围。 ●【绘图纸外观轮廓】按钮:按下此按钮后,场景中显示各帧内容的轮廓线,填充色消失,特别适合观察对象轮 廓,另外可以节省系统资源,加快显示过程。 ●【编辑多个帧】按钮:按下后可以显示全部帧内容,并且可以进行“多帧同时编辑”。

(完整版)flash元件影片剪辑

第五讲元件和实例打印本页 随着动画复杂度的提高,必然会出现两种情况:首先是有些元素会重复使用;其次是有些对象会要求有特殊的同步行为和交互行为。这时,就需要用到Flash中的元件,并通过元件来创建实例。 5.1 元件与实例 学习目标 本节学习的概念比较多。"元件"(symbol),又称符号,是一种比较独特的、可重复使用的对象。以元件为样本,创建出来的对象叫做"实例"。元件的引入使得动画的制作更为简单,动画文档的大小明显减小,播放速度也显著提高。而库面板则是管理元件的主要工具,每个动画文档都有自己库,存放着各自的元件,就像每个工厂将材料存放在自己的仓库中一样。 5.1.1 元件的分类 在Flash中,元件包括图形、按钮、影片剪辑三类。每个元件都有一个唯一的时间轴和舞台。创建元件时要选择元件类型,这取决于元件在文档中的工作方式。三类元件的介绍如下: 1. 图形元件 可用于静态图像,并可用来创建连接到主时间轴的可重用动画片段。图形元件与主时间轴同步运行。交互式控件和声音在图形元件的动画序列中不起作用。 2. 按钮元件 可以创建响应鼠标点击、滑过或其它动作的交互式按钮。可以定义与各种按钮状态关联的图形,然后将动作指定给按钮实例。 3. 影片剪辑元件 可以创建可重用的动画片段。影片剪辑拥有它们自己的独立于主时间轴的多帧时间轴。可以将影片剪辑看作是主时间轴内的嵌套时间轴,它们可以包含交互式控件、声音甚至其它影片剪辑实例。也可以将影片剪辑实例放在按钮元件的时间轴内,以创建动画按钮。 5.1.2 使用库面板 库面板用于存储和组织在Flash中所创建的图标以及导入的声音文件。其中,图标由图片、按钮、电影片段构成。库面板也包括在文件夹中存储的库存项目列表,从中可以看出电影中的一个图标使用的频度,并且可以将其按照类型排序。 "库"面板的主要操作都在单击右上角的按钮后打开的弹出菜单中。单击该按钮,弹出菜单。 "库"面板的相关操作包括以下内容。 1. 显示"库"面板 在主菜单中选择"窗口/库",可以显示或者隐藏"库"面板。 2. 在"库"面板中查看项目 "库"面板中的每个Flash文件包括元件、位图和声音文件。当用户在"库"面板中选择项目时,该项目的内容就出现在窗口上部的预览界面中。如果选定的项目是动画或是声音文件,也可以应用控制器进行预览的控制。 "库"面板的纵栏依次是列表项的名字、类型、在动画文件中使用的次数、链接和上一次修改的时间。可以在"库"面板中按任何项目排序。单击纵栏项目头,按照字母顺序等进行排列,也可以单击右上角的三角形按钮使项目按某一列的逆向排序。 3. 使用"库"面板中的文件夹 单击下部的新建文件夹的按钮,可以加入一个新的文件夹。当创建新元件时,新元件将出现在当前选定的文件夹里。如果没选定文件夹,它将出现在"库"面板的最下边,可以用鼠标把它从某个文件夹拖到另一个文件夹中。

信息技术工具介绍flash

信息技术工具介绍——Flash 一、flash软件介绍 Flash是一种动画创作与应用程序开发于一身的创作软件,为创建数字动画、交互式Web站点、桌面应用程序以及手机应用程序开发提供了功能全面的创作和编辑环境。Flash广泛用于创建吸引人的应用程序,它们包含丰富的视频、声音、图形和动画。可以在Flash中创建原始内容或者从其它Adobe应用程序(如Photoshop或illustrator)导入它们,快速设计简单的动画,以及使用Adobe Action Script 3.0开发高级的交互式项目。设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用Flash创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的Flash应用程序。 二、基本功能及应用 Flash动画设计的三大基本功能是整个Flash动画设计知识体系中最重要、也是最基础的,包括:绘图和编辑图形、补间动画和遮罩。这是三个紧密相连的逻辑功能,并且这三个功能自Flash诞生以来就存在。 Flash包括多种绘图工具,它们在不同的绘制模式下工作。许多创建工作都开始于像矩形和椭圆这样的简单形状,因此能够熟练地绘制它们、修改它们的外观以及应用填充和笔触是很重要的。对于Flash提供的3种绘制模式,它们决定了"舞台"上的对象彼此之间如何交互,以及你能够怎样编辑它们。默认情况下,Flash使用合并绘制模式,但是你可以启用对象绘制模式,或者使用"基本矩形"或"基本椭圆"工具,以使用基本绘制模式。 绘图和编辑图形不但是创作Flash动画的基本功,也是进行多媒体创作的基本功。只有基本功扎实,才能在以后的学习和创作道路上一帆风顺;使用FlashProfessional8绘图和编辑图形--这是Flash动画创作的三大基本功的第一位;在绘图的过程中要学习怎样使用元件来组织图形元素,这也是Flash动画的一个巨大特点。Flash中的每幅图形都开始于一种形状。形状由两个部分组成:填充(fill)和笔触(stroke),前者是形状里面的部分,后者是形状的轮廓线。如果你总是可以记住这两个组成部分,就可以比较顺利地创建美观、复杂的画面。 补间动画是整个Flash动画设计的核心,也是Flash动画的最大优点,它有动画补间和形状补间两种形式;用户学习Flash动画设计,最主要的就是学习“补间动画”设计;在应用影片剪辑元件和图形元件创作动画时,有一些细微的差别,你应该完整把握这些细微的差别。 Flash的补间动画有以下几种: 1.动作补间动画 动作补间动画是Flash中非常重要的动画表现形式之一,在Flash中制作动作补间动画的对象必须是"元件"或"组成"对象。

用flash制作精确倒计时程序

用flash制作精确倒计时程序 在FLASH时间函数中没有日期、时间的加减功能,对于需要用到“倒计时”时没法直接求两时间差,这里我们不得不借助另一特殊函数gettime()来计算。 该函数是取得指定对象自1970年1月1日午夜(通用时间)以来的毫秒数。譬如我们定义了一个时间变量“s1”,赋给它的值是“2006年8月1日0时”,试用下面语句: s1=new Date(2006,7,1,0,0,0); sj = s1.getTime(); 如果设置一个动态文本框,变量名为“sj”,运行结果文本框中就出现: 1154361600000 就是说,自1970年1月1日午夜到2006年8月1日的午夜经过了1154361600000毫秒。那么还要说明一下,我们说的8月1日你怎么在时间参数里写2006,7,1呢,只是因为它按够了一个月的天数后才计月的,于是把每年开始的月计算为0,所以8月份计为7。 这就好啦,有了这个值我们就能求出两时间的差啦。当然,我们做倒计时不能显示出毫秒数,因为看到这些毫秒数,谁也不知道还有多少时间,程序中还要通过换算显示出几天几时或几分几秒才好。下面我们就从这个思路制作“倒计时”。 为了方便其他程序调用,还建立一个新元件(影片剪辑)。建立6个“输入文本”框,分别输入变量名“n、y、r、d、f、m”,用以分别输入最终目标的年、月、日、点、分、秒数,选择“n”框,打开“属性”面板,点击“字符”弹出“字符选项”,选中“仅”“数字”,点击“完成”,在下行“最多字符”框中输入“4”,其他框同样都选择“仅”“数字”,“最多字符”框中输入“2”。这样可以避免输入时间时输入非标字符和输入过多位数。最好再选中对齐按钮中的右对齐。 时间轴共用2帧,在第1帧输入如下代码: s2 = new date(); js1 = int((s1.gettime()-s2.gettime())/1000); t1 = int(js1/(3600*24)); d1 = int(js1/3600)-t1*24; f1 = int(js1/60)-t1*60*24-d1*60; m1 = js1-t1*3600*24-d1*3600-f1*60; if (js1<0.1) { js = "离目标时间还差"+t1+"天"+d1+"小时"+f1+"分"+m1+"秒"; } else { is = "时间到!倒计时结束。"; } 制作一个“开始”按钮,输入代码: on (release) { s1 = new date(n,y-1,r,d,f,m); }

Flash 基本介绍

Flash动画设计与制作——知识要点 一、动画的基本原理: 所谓动画,包括Flash动画都是一个原理——将许多静止的图片按照一定的时间序列进行播放,给人产生的错觉就是画面会连续动起来。那些静止的图片叫帧;播放速度越快,动画越流畅。 Flash动画与传统动画一样,是将许多静止的图片(即画面)按照一定的时间序列进行组合而构成的。产生的动画最基本元素就是那些静止的图片,即帧,所以怎样生成帧就是制作动画的核心,而用Flash制作动画也是这个道理——时间轨上每个小格子就是一个帧。按理说,每一帧都需要制作,但是Flash能根据前一个关键帧和后一个关键帧自动生成期间的帧而不用人为地刻意制作。 二、Flash动画的类型: Flash动画由两种类型:逐帧动画;补间动画 1. 逐帧动画: 逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每一个帧上逐帧添加和编辑不同的对象(静止图片),使其连续播放而成动画。 2. 补间动画: 在Flash动画制作时,只需要编辑和处理动画的起始帧(关键帧)和结束帧(关键帧)的对象(元件),即可在两个关键帧之间创建“补间动画”。创建补间动画后,两个关键帧之间的过渡帧,是由计算机自动运算而得到的。因此,补间动画的动作对象必须是元件。 三、Flash的工作界面基本介绍 在Flash的【工作区】主界面中,包括了菜单栏、【时间轴】面板、【舞台】(文档编辑区)、【属性】/【库】面板组、【工具】箱等组成部分。如图1所示。 1. 菜单栏 Flash与同为Adobe创意套件的其它软件相比最典型的特征就是没有标题栏。Adobe公司将Flash的标题栏和菜单栏集成到了一起,以求在有限的屏幕大小中尽可能地将空间留给【文档】窗格。 2. 【时间轴】/【动画编辑器】面板组 时间轴是指动画播放所依据的一条抽象的轴线。在Flash中,将这套抽象的轴线具象化到了一个面板中,即【时间轴】面板。 与【时间轴】面板共存于一个面板组的还有Flash CS4以上版本新增的【动画编辑器】面板。分别选择面板组中的选项卡,可在这两个面板间进行切换。 3. 【舞台】 【舞台】,即是Flash动画编辑制作的工作区。当新建一个Flash文档后,将在舞台中出现一张白色的场景。此时,即可开始在此场景中制作动画。 4. 【工具箱】 【工具箱】面板也是Flash中最常用的面板之一。在【工具箱】面板中,列出了Flash中常用的30种工具,用户可以单击相应的工具按钮,或按这些工具所对应的快捷键,来调用这些工具。 提示: 1.在默认情况下,【工具箱】面板是单列分布在窗口的右侧的。用户可以将鼠标悬停在【工具箱】面板的左侧边界上,当鼠标光标转换为“双向箭头”时,将其向左拖拽。此时,【工具箱】面板将逐渐变宽,

(完整版)flash试题与答案

1.Flash中空白关键帧() A. 无内容,不可编辑 B. 有内容,不可编辑 C. 有内容,可编辑 D. 无内容,可编辑 2.下面哪个面板可以设置舞台背景? A. 对齐面板 B. 颜色面板 C. 动作面板 D. 属性面板 3、对于在网络上播放的动画,最合适的帧频率是多少? A. 24fps B. 12fps C. 25fps D. 16fps 4.插入空白关键帧的作用是 A. 完整的复制前一个关键帧的所有内容 B. 起延时作用 C. 等于插入了一张白纸 D. 以上都不对 5.插入关键帧的快捷键是 A. F1 B. F6 C. F7 D. F9 6、选择插入>时间轴>关键帧命令可以插入关键帧,按()键同样可以在时间轴上指定帧位置插入关键帧。 A. F5 B. F6 C. F7 D. F8 7、将当前选中的关键帧转换为普通帧操作的菜单操作() A. 编辑/消除 B. 文件/关闭 C. 修改/时间轴/转换为空白关键帧 D. 修改/时间轴/清除关键帧 8、按下()键可以快速在指定的位置插入空白关键帧。

B. F5 C. F4 D. F7 9、Flash影片帧频率最大可以设置到多少? A. 99fps B. 100fps C. 120fps D. 150fps 10、关于Flash影片舞台的最大尺寸,下列说法正确的是() A. 8192*8192 B. 1000*1000 C. 2880*2880 D. 4800*4800 11.一个最简单的动画最少应该有()个关键帧。 A. 1 B. 2 C. 3 D. 4 1.双击()工具,舞台将在工作区正中央显示。 A. 套索 B. 滴管 C. 选择 D. 手形 2.使用部分选取工具拖拽节点时,按下什么键可以使角点转换为曲线点。 A. 【ALT】 B. 【CTRL】 C. 【SHIFT】 D. 【ESC】 3.在制作图形的过程中,可以应用()工具改变图形的大小和倾斜度 A. 任意变形工具 B. 椭圆工具 C. 颜料桶工具 D. 选择工具 4.在flash中选择滴管工具,当单击填充区域时,该工具将自动变为 A. 墨水瓶 B. 颜料桶

教你用flash8.0一步一步制作计时器和任意时间可以暂停的倒计时器

教你用flash8.0一步一步制作计时器和任意时间可以暂停的倒计时器 西风卷浪qq 340316272 一、获取系统时间方法: 1、新建一图层1,鼠标双击“图层1”,改名为“文本”;(图层改名方法后面就不再叙述) 2、选中“文本”层第一帧,再用鼠标点击左面工具栏的“A”,再点击在左下角属性栏“A”旁边的倒三角,点击“动态文本”(字体、字号、颜色根据需要自选),在工作面建立一个文本,输入“00:00:00”(引号不要)便于观察大小;在工作面中间的下面的“变量”里输入“bjsj”(引号不要)(输入变量名是便于动作调用,后面不再解释) 3、新建图层2,命名“动作”。选中“动作”层第一帧(为空白关键帧),按“F9”,在动作脚本框里输入(也可直接将下面脚本复制进去)(后面的脚本都可直接复制,不再解释)mytime=new Date() //定义一个时间函数mytime t_h=mytime.getHours() //定义t_h获得当前时间中的时 if(t_h<10){ shi="0" + t_h //让小时以“00”的格式显示 } else{shi=t_h //把小时赋值给变量“shi” }t_m=mytime.getMinutes() //定义t_m获得当前时间中的分钟 if(t_m<10){ fen="0" + t_m //让分钟以“00”的格式显示 }else{ fen=t_m //把分钟赋值给变量“fen” } t_s=mytime.getSeconds() //定义t_m获得当前时间中的秒 if(t_s<10){ miao="0" + t_s //让秒数以“00”的格式显示 } else{ miao=t_s //把秒数赋值给变量“miao” } bjsj=shi + ":" + fen + ":" + miao //动态文本框显示时分秒 4、选中“动作”层第二帧,按“F7”(插入空白关键帧),在按“F9”,在脚本里输入 gotoAndPlay(1) 5、测试、调整、完成。呵呵!! 二、制作计时器方法: 1、新建一图层1,鼠标双击“图层1”,改名为“文本”;(图层改名方法后面就不再叙述) 2、选中“文本”层第一帧,再用鼠标点击左面工具栏的“A”,再点击在左下角属性栏“A”旁边的倒三角,点击“动态文本”(字体、字号、颜色根据需要自选),在工作面建立一个文本,输入“00:00:00”(引号不要)便于观察大小;在工作面中间的下面的“变量”里输入“JiShiText”(引号不要)(输入变量名是便于动作调用,后面不再解释) 3、新建图层2,命名“动作”。选中“动作”层第一帧(为空白关键帧),按“F9”,在动作脚本框里输入(也可直接将下面脚本复制进去)(后面的脚本都可直接复制,不再解释)stop();//停止 zong=0 //为变量zong覆初值 JiShiText="00"+":"+"00"+":"+"00"; 4、分别选中“动作”层第二帧和第十三帧,按“F7”插入空白关键帧,选中第二帧,按“F9”,在脚本框里输入: zong=zong+1 //zong用来计算已经用去的总秒数 shi=int(zong/3600) //shi用来显示总秒数换算成的小时数 if(shi<10){ h="0" + shi //让小时以“00”的格式显示

Flash基础知识

Flash基础知识 教学目标: 【知识与技能】 1.熟悉Flash的工作界面 2.利用工具栏的工具绘制、修改图形 3.理解元件的作用,并掌握创建元件的操作 4.了解时间轴,理解帧、图层的概念,并掌握帧的操作 【过程与方法】 1.通过工具提示信息了解工具的用途 2.通过鼠标的形状变化及形状区别其不同的功能 3.学会知识的迁移,把Photoshop所学的知识迁移到Flash的学习中去。【情感、态度与价值观】 1.体验信息技术的发展使得动画的设计变得简单。 教学过程: 【引言】 随着信息技术的发展,动画的实现也随之发生了改变。由以往的手工绘图并利用机器快速翻动画面实现动画,到现在只要有一台计算机就能进行制作及实现。 Flash作为一款基于矢量图形的动画制作工具,以其出色的表现能力以及快捷方便的操作,赢得了IT业的青睐。它不但能设计动画,还能使动画拥有交互性,因此,它是多媒体技术最好的体现。

下面让我们来学习Flash软件的基础知识。并通过以后的学习来体现其强大的多媒体技术的魅力。 【教学内容】 一、利用工具栏绘制简单图形 1.认识工具栏 工具栏中的工具使您可以绘制、涂色、选择和修改插图,并可以更改舞台的视图,如图所示。

工具栏分为四个部分: ?“工具”区域包含绘画、涂色和选择工具。 ?“视图”区域包含在应用程序窗口内进行缩放和移动的工具。 ?“颜色”区域包含用于笔触颜色和填充颜色的功能键。 ?“选项”区域显示选定工具的组合键,这些组合键会影响工具的涂色或编辑操作。 【观察并回答】 如何知道工具栏中的工具的名称及其用途是什么?Flash给了我们哪些提示? 1.绘制及修改图形 图形是动画的基本元素,利用工具栏的工具绘制、修改图形是FLASH动画制作的基础。 (1)常用绘制图形的工具 直线工具、椭圆工具、矩形工具、多角星形工具、画笔工具、刷子工具。 绘制的方式一般都是选中所需工具,并在舞台上利用鼠标进行绘画。(2)修改图形的工具 *移动工具、部分选取工具、*任意变形工具、橡皮擦工具。 这里重点介绍移动工具及任意变形工具。 ?移动工具的4种功能: 【演示】

flash动画脚本

1.控制类动作,这些动作是在FLASH 最常用到的动作:gotoAndPlay (x)跳转并播放,他的作用是跳转的指定的影格并播放。参数X为要跳至的影格,如gotoAndPlay (1)就是跳至第一个影格并播放。Play () :开始播放影片。stop () :停止播放影片。getURL ("x"):通过浏览器或者其他程序调用参数X的url,如getURL ("mail tg@https://www.sodocs.net/doc/d711722090.html,")--就是给我写信了。stopAllSounds ():停止所有声音。toggleHighQuality ():将画质切换到高品质。print ( target, type ):打印影片剪辑,其中target为内容名称,type 为类型。fscommand ( command, arguments ):发送FS command 到影片中,如fscommand ( "quit" )就是退出影片播放。load/unloadMovieNum ("", 0):加载/卸载影片。tellTarget ( target ) :通知目标,用来控制以定义名称的影片播放,(target) 为目标。setProperty ( target, property, value ):设定目标对象属性值,property 为属性名,value为属性值。在ActionScript中包含的属性是很丰富的,我们在下面的属性篇有专门的介绍。delete :删除变量或者对象set ( name, value ):定义value 为变量值loadVariables ( url, target, method ):从URL中接受数据,一般用在读取外部的ASP、CGI、PHP程序。(我们做聊天室或者论坛就是靠的他了) 2.判断类动作if (<表达式>):假设...则....(基本上在什么语言里都有的语句。如果你连这个都看不懂的话,最好还是去看看编程的书) else:与if联用,如果表达式正确则执行if 后面的语句,如果表达式不正确则运行else后面的语句。ifFrameLoaded ():判断动画是否已经加载return ():在循环函数中返回值 3 函数类动作function name ():定义一系列的子程序,可以在其他的地方调用call ( frame ):调用指定的影格的子程序var :对本地变量进行定义 4 循环类动作while 、for、do....while :反复执行循环体内的程序continue :在嵌套循环中跳过终止循环,继续下一个循环break :终止循环二、运算符篇ActionScript 中为我们提供了大量的运算符,方便了我们程序的编写。其中包括算术运算符、逻辑运算符、字符串运算符、位运算符和混合运算符。算术运算符:+(加)、-(减)、*(乘)、/(除)、=(等于)。例如a= 10 ,b= 4 ,c= a*b ,c的值就是40 逻辑运算符:==(等于)、<> (不等于)、!>(不等于)、<(小于)、>(大于)、<=(小于或者等于)、>=(大于或者等于)、--(变量值减1)、++(变量值加1)、%(取余)、typeof(返回表达式类型)、void(返回不确定值)、and、(逻辑与运算)、&&(逻辑与运算)、||(逻辑或运算)、!(逻辑否运算)、not(逻辑否运算)。在算术运算符中的等于是赋值,在逻辑运算符中的等于是判断是否相等。例如if (i==1) {play ();},就是判断i是否等于1。递增运算符++和递减运算符--可以放在变量前后使用并且放在变量前后使用效果并不一样,放在变量前使用时表示变量在使用前+/-1,放在变量后使用表示变量在使用后+/-1。(如果还是不太明白,你只好去翻C语言书看看吧) 字符串运算符:add (连接前后两字符串)、eq(判断两字符串是否相等)、ne(判断两字符串是否不等)、lt(小于)、gt(大于)、le(小于或者等于)、ge(大于或者等于)。在表达式中被" "包含起来的符号就被认为是字符串,如a=\'123\'add"abc" ,a的值就是"123abc"。在字符串运算中ActionScript会自动把数字转化为字符串,同样在算术运算中ActionScript一样能把包含数字的字符串转化为数字。位运算符:%(按位与符号)、<<(左位移数字位)、>>(左位移数字位)、>>>(无标记右移)、^(按位异或))、|(按位或) 位运算在实际使用中并不常见,大家可以参考C语言手册进行学习。混合运算符:&=(字符连接后赋值)、%=(除法取余后赋值)、*=(乘法后赋值)、+=、-=、/=、<<=、>>=、>>>=、^=、|=与之类似。看完上面的介绍后,大家可以很清楚的看到,ActionScript中的运算符与其他的编程语言(C、BASIC等)极其类似,熟练掌握这些运算符对我们后面的制作是十分用帮助的。三、函数篇在任何一种编程语言中函数都是不可缺少的部分,在ActionScript也不例外,我们一起来看一下ActionScript所包含的函数。一般函数Boolean:转换及传回布尔值;escape:转换URL码符号成十六进制字符并以%区分显示;eval :将参数运算并回传值为变量;getProperty:取得对象参数;getTimer:取得影片开始播放的时间(以毫秒为单位);getVersion:取得系统FLASH 播放器的版本号;

Flash 骨骼工具详解

Flash骨骼工具详解 2008年9月,Adobe公司发布了新版本的Flash “Adobe Flash CS4 Professional”,从这个版本开始,Flash动画技术有了很大的变革。其中主要包括“3D工具”、“骨骼工具”和新的动作补间形式。 请朋友们注意,以上这些动画技术都需要ActionScript 3.0支持。因此,在新建动画文件的时候,要选择创建“ActionScript 3.0”文档,发布设置的时候,选择最新版本的播放器。 Flash CS6版本中,取消了骨骼动画的功能。 1、关于骨骼动画 在动画设计软件中,运动学系统分为正向运动学和反向运动学这两种。正向运动学指的是对于有层级关系的对象来说,父对象的动作将影响到子对象,而子对象的动作将不会对父对象造成任何影响。如,当对父对象进行移动时,子对象也会同时随着移动。而子对象移动时,父对象不会产生移动。由此可见,正向运动中的动作是向下传递的。 与正向运动学不同,反向运动学动作传递是双向的,当父对象进行位移、旋转或缩放等动作时,其子对象会受到这些动作的影响,反之,子对象的动作也将影响到父对象。反向运动是通过一种连接各种物体的辅助工具来实现的运动,这种工具就是IK骨骼,也称为反向运动骨骼。使用IK骨骼制作的反向运动学动画,就是所谓的骨骼动画。 2、骨骼动画工具 骨骼动画工具组包括2个工具:骨骼工具和绑定工具。如图XXX所示: 图XXX 骨骼工具组 3、骨骼动画的创建 在Flash中,创建骨骼动画一般有两种方式。一种方式是为元件实例添加与

其他元件实例相连接的骨骼,使用关节连接这些骨骼。骨骼允许实例链一起运动。另一种方式是在形状对象(即各种矢量图形对象)的内部添加骨骼,通过骨骼来移动形状的各个部分以实现动画效果。这样操作的优势在于无需绘制运动中该形状的不同状态,也无需使用补间形状来创建动画。 (1)元件实例骨骼动画 元件实例骨骼动画,适合具有有关节这一类事物的动画的制作。比如人和动物的肢体、带有关节的机械等等。下面以制作挖掘机动画来简单介绍元件实例骨骼动画的制作。 首先创建“ActionScript 3.0”文档,创建好三个元件:挖掘机体,挖掘机臂,铲斗。如图XXX所示: 图XXX 创建挖掘机相关部件的元件 把挖掘机体元件从元件库中拖入图层1的第一个关键帧中。如图XXX所示: 图XXX 把挖掘机体元件拖入舞台

什么是flash元件

什么是flash元件 元件是可反复取出使用的图形、按钮或一段小动画,元件中的小动画可以独立于主动画进行播放,每个元件可由多个独立的元素组合而成。说的直白些,元件就相当于一个可重复使用的模板,使用一个元件就相当于实例化一个元件实体。使用元件的好处是,可重复利用,缩小文件的存储空间。 flash元件有三种 一是图形元件 二是按钮 三是影片剪辑 影片剪辑---可以独立于主时间轴播放的动画剪辑,可以加入动作 代码。 图形---依赖主时间轴播放的动画剪辑,不可以加入动作代码。 按钮---有“常规”、“弹起”、“按下”和“点击”四帧的特殊影片剪辑,可以加入动作代码。 影片剪辑顾名思义可以存放影片(即动画),当图形元件和影片剪辑都有动画时,把影片剪辑元件放到主场景时,他会循环地不停的播放。而把图形元件放到主场景,不会播放. 如何创建元件?

方法1:新建一个空白元件,然后在元件编辑状态下穿件元件的内容。选择菜单“插入”—>“新建元件”或者按键盘ctrl+F8也可以新建一个元件。 方法2:将场景上的对象转换成元件。选择场景里现有元件,单击鼠标右键,选择转换为元件。 方法3:将动画转换为元件。 flash中添加帧、添加空白帧和添加关键帧有什么区别 添加帧只能延续上一个关键帧的内容,添加关键帧才可以编辑,两个关键帧之间的帧可以生成动作或形状动画。添加关键帧时里面会自动有上一个关键帧的内容,如果你懒得删除,就插入空白关键帧。Action Script只有关键帧或空白关键帧里才可以用。在时间轴上帧是一个有颜色的方块,关键帧是一个有实心圆圈的方块,空白关键帧是一个有空心圆圈的方块 帧有两种含义 1.时间轴面板上的帧格 2.插入帧:比如你做两段动画,第一段播放完后需要作为背景,你就使 用处长帧来令它一直显示 关键帧:有显示内容的帧 空白关键帧:没显示内容的帧

FLASH AS动作脚本语言的语法规则

1.动作脚本语言的语法规则的操作技巧详解。 (包括点语法、大括号、括号、分号、//注释、常数、字符串、实例名称等语法规则的操作技巧详解)。 教学目的:使学员全面快速掌握编写动作脚本语言的语法规则和专业词语的真正含义作用功能等。 技巧经验 知识要点 1、要想学好FLASH的动作脚本语言,我们必须要掌握它的常见的语法规则。 2、点语法:用"."表示对象或者影片剪辑元件的相关属性、方法、路径、变量、函数等。 例1:表示一个影片剪辑元件的X坐标属性,它的语法是:ball_mc._x 其中ball_mc是一个影片剪辑元件,_x是该元件的X坐标属性。 例2:表示一个影片剪辑元件的方法,它的语法是:ball_mc.play() 其中ball_mc是一个影片剪辑元件,play()是该元件的方法,表示对该元件进行播放。 3.另外点语法还有几个重要的别名,必须要掌握: A:_root表示绝对路径,它指的是时间主轴(场景中的时间轴是主轴,影片剪辑元件等中的时间轴是子轴)。 例如:_root.play() 表示要时间主轴进行播放。 B:_parent表示当前影片剪辑的上一级时间轴(如:一级子轴的上一级时间轴是主轴,二级子轴的上一级时间轴是一级子轴)。例如:在当前影片剪辑的内部时间 轴上写入代码是,_parent.play() 表示当前影片剪辑内部的时间轴的上一级时间轴进行播放。C:this表示当前时间轴,可以操控当前时间轴上的对像等。 例如:this.play() 表示要当前时间轴进行播放。 4.大括号:用"{ }"表示把动作脚本语言组合成块(一个完整的语句)。 5.括号:用"()"表示放置函数的参数,要注意的是参数都必须放在括号内。 6.分号:用";"表示1行语言代码的结束。 7.大小写字母:在动作脚本语言中,除了关键字以外是不区分字母的大小写的。 8.注释:用"//"表示注释。注释中的内容不影响程序的运行,目的是更好的理解和备忘自己的程序。它要求单独放在一行。如:// 定义对象属性。 9.关键字:在动作脚本语言中,像break、for、if、this、new、delete、while、whith等,它们本身是语言命令,不能用作变量、自定义函数或其他的标签名称,它们也称为保留关键字。 10.常数:指值始终不变的属性。如backspace、enter、space、tab等,它们是KEY对象的属性,指代键盘的按键。 11.数据类型:包括8大类型,分别是字符串、布尔值、对象、未定义等。 12.字符串:是由字母、数字、空格、标点符号等组成的字符的序列。可以用双引号("")来定义字符串,字符串区分大小写。如:text1="welcome",其中双引号中的welcome是字符串。 13.布尔值:是逻辑变量,它的值是true(真)或false(假)。 14.对象:是属性的集合,可以互相包含和嵌套,每个属性都有自已的名称和值。 如:https://www.sodocs.net/doc/d711722090.html,c,它表示ccc是bbb的属性,而bbb又是aaa的属性。 15.为规范和方便动作脚本语言的编写,最好能够给实例名称加上一个后缀,表示它的对象类型。 如:ball_mc ,其中后缀mc表示影片剪辑类。ball_btn ,其中后缀btn表示按钮类。等等.... 16.下面是常用后缀和其相应的对象类型。 后缀所属的对象类型

相关主题