拖动与碰撞的应用,Flash学习(精选9篇)由网友“xys33”投稿提供,下面是小编给大家带来关于拖动与碰撞的应用,Flash学习,一起来看看吧,希望对您有所帮助。
篇1:拖动与碰撞的应用,Flash学习
点击这里下载源文件
picx_array = new Array; //图片元件的X坐标
picy_array = new Array(); //图片元件的Y坐标
xx_array = new Array(30, 135, 30, 135, 30, 135); //图片被放入答案框的位置 X坐标
yy_array = new Array(110, 110, 170, 170, 230, 230); // 图片被放入答案框的位置 Y坐标
ansxx_array=new Array(30,265,370,265,135,30); //显示答案时的图片位置x坐标
ansyy_array=new Array(110,110,110,170,110,170);
m1_array = new Array(0, 0, 0, 0, 0, 0); //第一个答案框放入图片位置标志
m2_array = new Array(0, 0, 0, 0, 0, 0); //第二个答案框放入图片位置标志
answer_array = new Array(0, 0, 0, 0, 0, 0); //答案记录数组
key_array = new Array(1, 2, 2, 2, 1, 1); //正确答案,1表示图片在第一个答案框
pic_num = 6; //图片总数
answer._visible = false; //结果显示板隐藏
answer.swapDepths(30); //交换到深度30
for (var i = 1; i
picx_array[i-1] = eval(“pic”+i)._x; //将图片的初始位置存入数组
picy_array[i-1] = eval(“pic”+i)._y;
eval(“pic”+i).swapDepths(i); //并置入深度
eval(“pic”+i).pd1 = 0; //位置变量
eval(“pic”+i).pd2 = 0;
}
for (var i = 1; i
eval(“pic”+i).onPress = function() {//图片接收鼠标按下信息
this.startDrag(); //将图片拖动
this.swapDepths(20); //深度置为20
this._alpha = 65; //透明度为65
m1_array[this.pd1-1] = 0;
m2_array[this.pd2-1] = 0;
};
eval(“pic”+i).onRelease = function() {
this.stopDrag(); //停止拖动
tmp = Number(this._name.slice(3, 4)); //提取图片元件中的数字
this.swapDepths(tmp); //交换为原来的深度
this._alpha = 100; //透明度为100
if (this.hitTest(m1_mc)) { //如果与答案框一接触
end = 0;
for (var m = 1; m<7; m++) {
if (end == 0) {
if (m1_array[m-1] == 0) {
this._x = xx_array[m-1];
this._y = yy_array[m-1];
m1_array[m-1] = 1;
answer_array[tmp-1] = 1;
trace(answer_array);
end = 1;
this.pd1 = m;
this.pd2 = 0;
pd3 = 0;
continue;
}
this._x = picx_array[tmp-1];
this._y = picy_array[tmp-1];
answer[tmp-1] = 0;
this.pd1 = 0;
this.pd2 = 0;
pd3 = 0;
}
}
} else if (this.hitTest(m2_mc)) {
end = 0;
for (var m = 1; m<7; m++) {
if (end == 0) {
if (m2_array[m-1] == 0) {
this._x = xx_array[m-1]+240;
this._y = yy_array[m-1];
m2_array[m-1] = 1;
answer_array[tmp-1] = 2;
trace(answer_array);
end = 1;
this.pd1 = 0;
this.pd2 = m;
pd3 = 0;
continue;
}
this._x = picx_array[tmp-1];
this._y = picy_array[tmp-1];
answer[tmp-1] = 0;
this.pd1 = 0;
this.pd2 = 0;
pd3 = 0;
}
}
} else {
this._x = picx_array[tmp-1];
this._y = picy_array[tmp-1];
this.pd1 = 0;
this.pd2 = 0;
pd3 = 0;
}
};
}
answer_show.onRelease = function() {
answer._visible = true;
key = 0;
for (var i = 0; i<6; i++) {
if (answer_array[i] == key_array[i]) {
key++;
}
}
answer.right_num = key;
};
answer.head.onPress = function() {
answer.startDrag();
};
answer.head.onRelease = function() {
answer.stopDrag();
};
answer.close_win.onRelease = function() {
answer._visible = false;
};
answer.answer.onRelease=function(){
for(var i=1;i<7;i++){
eval(“pic”+i)._x=ansxx_array[i-1];
eval(“pic”+i)._y=ansyy_array[i-1];
eval(“pic”+i).onPress=function(){ };
eval(“pic”+i).onRelease=function(){ };
}
}
篇2:初识Flash与工具箱的应用
Flash是一款矢量动画制作软件,应用领域相当广泛。
【初识Flash与工具箱的应用】
一、Flash软件简介
Flash与Macromedia公司的另外两个产品――Dreamweaver和Fireworks并称为“网页设计三剑客”,足见它在网络中的重要地位。目前,几乎所有网站上都可以看到Flash动画的身影。
广告业:手机广告、化妆品广告、房地产广告、汽车广告。
动态网页制作:企业网站、学校网站、个人网站。
MTV制作:为网上流行歌曲制作动画场景。
游戏开发:益智类游戏、战略类游戏。
导航条:Flash的按钮功能非常强大,是制作菜单的首选。
小游戏:利用Flash开发“迷你”小游戏,在国外一些大公司比较流行,他们把网络广告和网络游戏结合起来,让观众参与其中大大增强了广告效果
产品展示: Flash有强大的交互功能。一些大公司,如Dell、三星等,都喜欢利用它来展示产品。可以通过方向键选择产品,再控制观看产品的功能、外观等,互动的展示比传统的展示方式更胜一筹。
二、软件安装、启动与退出Flash软件
1、安装:压缩文件解压缩后安装,序列号从网络上搜索。
2、启动:开始菜单选择程序再选择“Flash 8.0”,或者双击桌面上的快捷方式图标。
3、退出:
选择【文件】→【关闭】命令。
按【Ctrl+W】键。
单击舞台右上方的“关闭”按钮。
三、Flash的工作环境
1、与其它软件相同的部分
标题栏、菜单栏、工具栏
2、与其它软件不同的地方
①时间轴:控制文件中的所有元素,包括图层、帧等。
左侧:图层控制区
右侧:帧控制区
②舞台:用来显示动画、图像和其他内容,是用户可见的区域。
③属性面板:显示舞台或时间轴上当前选定项的相关属性。
④工具箱:重点介绍
四、示范制作(小老鼠)
1、设置文档属性
2、绘制小老鼠
脸:①选矩形工具,按ctrl+F3 ,设置笔触为3、颜色为黑色。②双击矩形工具,设置矩形圆角半径为10。③绘制一矩形。④填充渐变颜色。选择颜料桶工具,打开颜色属性面板,在混色器中将“类型”设置为线性,增加一颜色色标,将左右色标设为白色,中间为黄色,用颜料桶进行填充。⑤填充效果变形。选择填充变形工具,点击填充区域,修改填充区域的位置、方向和厚度。
矩形工具的特性:
1、选择全部或部分图像后放开鼠标,可以移动图像。
2、选择矩形边框后不放开鼠标,移动鼠标可拉出弧度。
3、选择矩形边框后不放开鼠标,按住ctrl键移动鼠标可拉出尖角。
4、双击边框,按Delete可删除边框。(设置笔触颜色为透明)
5、相同颜色的矩形可相互组合。
6、不同颜色的矩形不能组合。
耳朵:选择椭圆工具,绘制椭圆,填充。记忆前次的填充方式。
眼睛:选择椭圆工具,按住Shift画圆,按住Alt+Shift以中心点为圆心画圆。
鼻子:
胡须:线条工具,笔触为2,拖动出弧度。
文字:文本工具,设置文本属性。
五、学生练习
六、小结
Flash动画中的对象都要使用工具箱进行绘制,同学们要多练习、多实践、多总结。
篇3:Flash AS学习:for循环与退出循环
循环
演示效果:
点击这里下载源文件
使用for 是优化AS的重要手段,如果我们要对20个MC实现响应鼠标点击事件,如果不用for而直接写那么需要几十乃至几百行,而用for只需要用几行就可以了。看我们实现这样的效果: 对舞台上的20个MC点击,在MC中的动态文本中显示出该MC的实例名.
步骤:1、 制作一个MC,MC中包含一个动态文本,实例名为txt。
2、按住ctrl,拖动复制出20个MC出来。
3、为每个MC输入实例名mc0、mc1、mc2...mc19,然后选中桢,打开动作面板,输入以下语句。
mc0.onPress = function {
this.txt.text = this._name;
};
mc1.onPress = function() {
this.txt.text = this._name;
};
.....
mc19.onPress = function() {
this.txt.text = this._name;
};
以上语句共60行,实现了点击MC,在MC中的动态文本txt中显示该MC的实例名,如果有100个MC,那么照这样就需要300行,挺吓人的。现在用for几行搞定。
for(var i=0;i<20;i++){
this[“mc”+i].onPress=function(){
this.txt.text=this._name
}
}
我们分析一下这个for是怎样解决问题的:for(var i=0;i<20;i++)共会读取20次,第一次i=0;检查i是否小于20,检查到符合条件,执行i++,于是i=1了,然后执行{}中的语句;第二次i=1;检查i是否小于20,检查到符合条件,执行i++,于是i=2了,然后执行{}中的语句;第三次i=2;检查i是否小于20,检查到符合条件,执行i++,于是i=3了,然后执行{}中的语句;......第二十一次i=20;检查i是否小于20,检查到不符合条件,执行i++,于是i=21了,此时循环结束,退出循环。
第一次执行的程序即是
this[“mc”+0].onPress=function(){//同this.mc0.onPress=function()
this.txt.text=this._name
}
第二次执行的程序即是
this[“mc”+1].onPress=function(){//同this.mc1.onPress=function()
this.txt.text=this._name
}
第三次执行的程序即是
this[“mc”+2].onPress=function(){//同this.mc2.onPress=function()
this.txt.text=this._name
}
......
由此,我们可以看到,for对于简化语句有非常重要的作用,适用for适用于MC的实例名是连续的情况,即mc0、mc1、mc2...,如果MC的实例名不是连续的,那么可以利用数组来解决这个问题,首先将MC的实例名作为数组中的元素,然后进行调用,如下:
var myarr=[“mc0”,“mc1”,“”mc2“,”mc3“....]
for(var i=0;i<20;i++){
this[myarr[i]].onPress=function(){
this.txt.text=this._name
}
}
以上介绍了for的使用,现在介绍一下如何中途退出for循环,如果我们只对10个MC进行读取,那么
for (var i = 0; i<20; i++) {
if (i>=10) {
break;
}
this[”mc“+i].onPress = function() {
this.txt.text = this._name;
};
}
如果我们只不读取第10个,那么
for (var i = 0; i<20; i++) {
if (i == 10) {
continue;
}
this[”mc"+i].onPress = function() {
this.txt.text = this._name;
};
}
篇4:Action应用:Flash AS与XML数据交互
在AS3里,对XML的控制变得非常方便了,有用过AS2的读者都知道,如果我们用AS2去访问一个节点,做法是xmlObj.firstChild.childNodes[2]如果复杂的XML结构就更麻烦了,所以在AS2时需要把一系统的节点用一个值来先做“替身”即xmlList= xmlObj.firstChild.childNodes来降底程序的复杂程序,
Action应用:Flash AS与XML数据交互
,
AS3里使用E4X(ECMAScript. for XML)来规范定义组用于处理XML数据的类和功能。E4X类的方法、属性和运算符实现以下便利:
·简单:在可能的情况下,使用E4X可以更容易地编写和理解用于处理XML数据的代码。
·一致:E4X背后的方法和推理在内部是一致的,并与ActionScript的其它部分保持一致。
·熟悉:使用众所周知的运算符来处理XML数据,如点(.)运算符。
E4X类有包括XML、XMLList、
篇5:Flash遮罩动画的制作与应用
摘 要:Flash软件是一个应用广泛的二维动画制作软件,本文从二维动画的技术表现入手,阐述了Flash动画的重要技术之一——遮罩层动画的技术实现及其在各种动画作品中的应用,对遮罩动画的设计与应用具有一定的指导意义。
关键词:Flash;二维动画;遮罩
0 前言
目前,Flash是由Adobe公司发行的一款专门用于制作二维动画的软件,是当前最优秀、应用最广泛的矢量动画设计软件,主要应用于网页广告、交互式游戏、二维动画、教育等领域,由于其文件体积小、易于传播的特点,得到了广泛的应用。
虽然,由于html5技术的冲击,其市场地位备受争议,但其所能实现的细腻的动画细节仍然吸引了广大用户。
而Flash的作品中绝大大多数都应用了遮罩动画技术,本文就此对flash动画中的遮罩技术的制作与应用进行探讨。
1 遮罩动画技术简介
Flash动画的主要技术包括:动画补间、形状补间、引导层、时间轴特效、遮罩层等,其中遮罩动画是一种应用很广泛的动画类型,很多效果丰富的动画都是通过遮罩来完成,如闪光、水波、万花筒、百叶窗、放大镜、望远镜……等等,常见于广告、游戏、动画电影电视特效等领域。
遮罩动画技术的效果实现一般来讲需要三层,自下至上分别为:背景层、被遮罩层、遮罩层。
背景层指没有遮罩效果时的展示;被遮罩层是指被遮罩的东西,也是透过遮罩形状能看见的东西;遮罩层指展示所要表现出来的形状,即可见的形状。
在遮罩动画的制作过程中,只要清楚这三层的作用,就能快速的实现所要的动画特效。
2 遮罩动画的技术实现
遮罩层动画的实现至少需要遮罩层和被遮罩层两层,单独使用遮罩层来制作动画,效果单一乏味,可与Flash的其他动画技术充分结合,以发挥遮罩动画的强大功能效果。
(1)遮罩层与动画补间动画的结合。
动画补间动画一般用于制作位置移动、缩放、旋转、色彩变化等动画效果。
在遮罩动画的制作过程中,可以分别在遮罩层或被遮罩层应用动画补间动画,以实现各种动画效果。
让遮罩层的形状元件移动,可以做探照灯效果;让遮罩层的形状元件缩小或放大,可以制作出卷轴、放大镜、动画片中的镜头转换特效、图像转换等效果。
(2)遮罩层与形状动画补间的结合。
形状动画补间动画一般用于制作不规则形状变化的.动画效果,其特点是形状变化是随机生成的、不可控的。
形状动画补间动画与遮罩技术结合,作为遮罩层,让遮罩层的形状做不规则形状变化,可以让图像的展现以随意的方式渐渐显现,轻松实现优美的动画特效。
(3)遮罩层与时间轴特效的结合。
时间轴特效中的分散式直接复制和复制到网格可以按需要复制出所需数目的影片剪辑元件实例,并按照制作者的设置进行位置排列。
在利用遮罩技术制作的图像转换的动画效果中,可以制作出单个变化的小形状,如一个会滚动放大的方块、一个会移动放大或缩小的圆形等,然后利用分散式直接复制在纵向(或横向)复制出一行(或一列),且设置好偏移起始帧,做出逐步出现的动画效果。
再次利用分散式直接复制在横向(或纵向)复制出多列(或多行),以布满画面为最低标准,从而实现层次丰富的图像转换动画效果。
(4)遮罩层与ActionScript的结合。
ActionScript是Flash制作交互式动画的根本技术。
ActionScript中的setMask方法可以根据开发者的需要灵活设置遮罩层,无时间空间限制。
利用setMask()来实现遮罩层设置,可以制作出放大镜、可移动探照灯、模糊遮罩等效果,使得动画更显人性化。
篇6:Flash遮罩动画的制作与应用
【摘 要】Flash动画中图层包括普通层、引导层、遮罩层等。
每种图层都有其特点和优势,而遮罩层作为特殊图层能够产生许多特殊效果。
这里从Flash基本知识点,遮罩的原理、使用技巧及实例入手,介绍遮罩动画的应用,带大家一起感受遮罩动画的魅力。
【关键词】flash 遮罩动画 遮罩层 被遮罩层
篇7:Flash遮罩动画的制作与应用
遮罩动画设计与应用的首要原则是动画流畅性。
无论创作者要要表现多么复杂的动画效果,最终在动画作品中都要给参与者留下一个印象,动画的播放国产是流畅的,镜头、图像的转换是自然的,整体上没有突兀感。
其次要考虑受众的人群特征,遵循趣味性原则。
Flash 动画的受众大部分都是经常上网的人群,根据中国互联网络中心 年 7月发布的第 32 次《中国互联网络发展状况统计报告》,上网人群中超过一半的人的年龄是分布在18至30岁之间。
统计数字表明,网络受众主要是年轻的和受过良好教育的人群,这个群体年轻、个性张扬、崇尚自由、自主性强、重视内心的感受和个人体验、乐于接受新事物,是伴随卡通动漫成长的一代,因此动画的设计要充分体现娱乐性原则。
遮罩动画的设计与应用还要保持动画作品的艺术性。
Flash 动画是艺术和技术紧密结合的产物,强有力的技术手段是遮罩动画实现的保证,但是创作者的意图必须通过艺术化的图形设计才能得到充分的表达。
4 小结
综上所述,遮罩层动画是一个操作简单、变幻无穷的动画技术,熟练掌握该技术的应用,并结合动画制作者的艺术素养,灵活利用于各种flash动画作品中,可以实现丰富的动画特效,使动画作品具有强烈的吸引力和视觉冲击。
参考文献:
[1] 潘彪.巧用flash遮罩动画制作各种精美动画[J].电脑知识与技术,(36).
[2] 蔡鹏,钱钰,等.Flash 动画在网页制作中的应用及相关探讨[J].电子技术与软件工程,2013(19).
[3] 王继军.《二维动画设计》课程教学方法改革探索与实践[J].教育教学论坛,2013(41).
[4] 丛波.浅谈Flash动画设计中遮罩动画实例的设计[J].科技创新与应用,2013(25).
[5] 白英德,杜颖玮.《Flash遮罩动画》教学设计[J].中国信息技术教育,2010(05).
[6] 袁媛,庞霏,王旭.浅谈Flash动画设计[J].才智,(14).
篇8:车载MP3中Flash文件系统的设计与应用
摘要:基于Flash存储器的特点,详细介绍适合地车载MP3的Flash文件系统(包括Flash存储管理系统和FAT文件系统)的具体设计。利用Flash文件系统实现对Flash存储器的较好的操作管理功能。
关键词:车载MP3 Flash存储管理系统 FAT 文件系统
引言
目前车载播放器基本上采用的是CD播放器、MD播放器以及磁带播放器等。由于这类播放器内部具有一些机械式传动部件,再加上装在汽车这个特定的环境中,经常会由于机械传动或者光头、磁头受震动发生跳音或绞带现象,从而影响音质。
Flash存储器由于具有存储容量大、掉电数据不丢失、何种小以及可多次擦写等许多优点,正逐步取代其它半导体存储器件而广泛应用于移动电话、PDA以及数码相机等移动电子产品中。其作为存储数据和应用程序的存储体,可以将大量数据方便、快捷地移动和交换。
基于上述两点设计了一个车载MP3系统。该系统采用Flash作为外存储器,并且由全固态器件组成,播放时不会出现跳音或绞带现象,音质也很好。由于Flash存储器在应用过程中可能会出现坏损单元,影响车载MP3播放器的性能,因此本文针对Flash存储器自身的物理特性,设计了一个文件系统,对Flash存储器中的数据内容进行基于文件名或者文件号的存储管理以及应用透明的坏损管理。该系统优化了存储速度和存储空间,提高了车载MP3播放系统的可靠性。
1 Flash存储器特点
Flash内部分为多个存储单元块(block),每个存储单元块又由多个页(page)组成。存储单元块是可擦除的最小单位,页是写入数据的最小单位。
Flash存储器读取数据与一般的存储器类似,可以实现随机读取,读出的速度也很快。而Flash存储器的写操作则和一般的存储器有所不同,Flash的写操作必须先按存储块擦除(写入0xff到要擦除的存储单元块中),再按页顺序写入。由于Flash存储器擦除耗时较长,所以Flash存储器写入的时间主要在于Flash存储器内部的擦除操作等。
Flash存储器第一块一定是有效块,而其它块可能会在使用前就是坏块或者在使用过程中变成坏块(invalid block)。Flash存储器对内部坏块的判定是,根据其每一个单元存储块中的第3区中的第6 Cloumn内容是否为0xff来定。虽然Flash存储器内容会有坏块,但是由于每一块的内部结构都是相互独立的,所以只要对其状态加以识别,坏块并不影响系统对有效块的操作。
(本网网收集整理)
篇9:车载MP3中Flash文件系统的设计与应用
本文在Flash存储的基础上设计了一个Flash存储管理系统来对Flash进行物理管理。而在Flash存储管理系统基础上又建立了一个FAT文件系统来对文件操作进行管理,由Flash存储管理系统和FAT文件系统共同组成了Flash文件系统。该文件系统完全支持文件名管理、自动坏损管理等通用文件系统所具有的功能;同时,针对车载MP3播放器系统特殊的应用环境,设计改进了该文件系统的可靠性,即使在恶劣的条件下也不会影响音质。Flash文件系统的具体结构如图1所示。
2.1 Flash存储管理系统
Flash存储器的操作是以块为单位的,而FAT文件系统则是建立在以扇区(sector)为单位的磁盘操作基础上(通常为512字节/扇区)。因此,本文设计了一个特殊的Flash存储管理系统,来解决以块为单位的Flash物理特性和以扇区为单位的文件系统接口之间的矛盾,以使得Flash的物理地址和FAT操作的逻辑地址之间能够对应。同时,由于Flash的其它特点,Flash存储管理系统还实现了各块之间的擦写次数均衡和坏块管理等工作。
(1)物理地址到逻辑地址的映射
为了在Flash物理地址和FAT操作的'逻辑地址之间建立一个好的映射关系,对Flash的存储空间在逻辑上进行了重新定义。结合Flash特点,将每个存储单元块内部分成若干物理扇区,每个物理扇区由512字节+16字节=528字节组成。其中Main Area的512字节为有效数据空间,而Spare Area的16字节用于存放其它信息。
由上述定义便可以确定Flash物理扇区和绝对地址之间的对应关系:
绝对地址=Flash基地址+物理扇区号×528
在建立了物理地址和逻辑地址之间的映射关系之后,但可以很好地将车载系统对音频文件的操作转换成系统直接Flash的编程或者擦除操作。例如,在该系统中要进行ReadFile()操作,便可以根据其对应关系,通过执行Flash存储管理系统中的sectorread()操作来实现。
(2)可靠性设计
由于该车载系统采用汽车供电,因此当汽车处于不太平衡的环境中,可能会由于颠簸千万播放系统的异常断电,所以提高车载MP3播放系统的可靠性非常重要。本文通过将Spare Area的16字节定义为逻辑扇区号、扇区当前状态、坏块信息等来提高播放系统的可靠性。其中Spare Area的具体定义如下:
逻辑扇区号 扇区当前状态 坏块信息 保留字节 第1~3字节 第4~5字节 第6字节 第7~16字节由以上定义可以看到,Spare Area的第4~5字节用于存储扇区当前状态。这样在Flash写操作过程中,如果突然断电,便可以根据此状态进行掉电数据恢复。该系统中设定扇区当前状态有3种:扇区为空(0xfff)、扇区数据无用(0x0000)、扇区数据有效(0x00ff)。这样定义以后,系统便可以在Flash写操作异常终止时能够对当时的状态进行及时的保存,以便下次系统开启后能够判断出上次系统中存在的问题并作出相应的处理。
(3)坏块管理
由于Flash内部会有坏块,因此Flash存储管理系统需要对Flash进行坏块管理。本文对坏块的管理分以下两种情况:
①初始坏块处理。Flash存储器在使用前可能会有坏块,而且这些坏块是随机分布的。所以,Flash文件管理系统在系统执行读写操作之前先建立一个坏块表,然后对Flash存储器进行初始化扫描以发现坏块,并将坏块标记为不可用,加入到坏块表中。
②操作过程中坏块处理。在擦除或者编程过程中发生错误时,Flash文件管理系统将该块中其它页的数据重新拷贝到一个新的空块中,然后再将该块标记为坏块,加入到坏块表中。在这个处理过程中,由于对Flash的擦除或者编程操作都会使得Flash存储单元块的内容改变,所以Flash文件管理系统一旦发现Flash存储器的存储单元块成为坏块后便不再对该块进行擦除或编程操作,以免将坏块标志位数据清除掉,而是将该块标记为坏块,并将其加入坏块表中。
Flash文件管理系统在进行上述坏块管理后,坏块单元对用户应用是完全透明的。这大大方便了用户的使用,也达到了车载MP3播放系统的目的。
(4)均衡擦写次数
由于Flash有一定的使用寿命,一般可擦除的次数为10~100万次,所以随着使用次数的增加,会有一些单元逐渐变得不稳定或失败。因此,要尽量避免频繁地对同一块地址操作,以免造成局部单元提前损坏;同时,由于擦除操作耗时较多,也应减少擦除操作,应该尽量达到擦写次数均衡。为此,本文设计了Flash更新算法和磨损程度检测算法。
Flash更新算法是将Flash中要更新的数据直接写入一个空块中,降低由于Flash先擦除后写入的特性带来的对块的频繁擦除;同时,也提高了Flash的使用效率,加快了操作速度。磨损程度检测算法是在对Flash进行写入前必须先对Flash进行坏块扫描,以确保不会将数据写入坏块从而此起数据的丢失。这样设计也是为了提高车载MP3播放系统的可靠性。
2.2 FAT设计
在Flash文件管理系统的基础上,还建立了FAT文件系统来对文件操作进行管理。将FAT文件系统具体分为以下四部分:
(1)FAT的引导区
该引导区存放代码所需的信息及最重要的文件系统信息。这些信息包括了Flash存储器的类型、容量以及划分成多少个簇;每个簇包含多少扇区、FAT表数目、保留扇区数、根目录的首簇号及根目录入口数、版本信息等等。引导扇区是在格式化Flash时生成的。
(2)FAT的文件分配表
文件分配表存放文件所占用的存储空间族链以及Flash存储器的占用和空闲空间的情况,非常重要。为了防止文件分配表损坏而引起文件的丢失,该系统中保存了两个相同的文件分配表FAT1和FAT2,以改善其安全性。在文件系统的操作中,程序对FAT表结构的两个备份进行顺次修改,以此确保Flash存储器上总是存有一整套完好的文件分配表。
系统对FAT表的访问原理如下:访问文件时先从要目录中找到该文件的目录项,从中读出首簇号。然后,目录中找到该文件的目录项,从中读出首簇号。然后在FAT中找到从该首簇号开始的簇链,簇链上的簇号即为文件在逻辑扇区中占用的扇区号链,这样便可以进行数据读写了。
(3)FAT的根目录区
FAT的根目录区是固定大小的紧跟在FAT表后的区域。本文将从FAT区之后紧跟的32个扇区作为根目录区,可以保存512个目录项。每个目录项记录了该文件的文件名、文件属性、文件大小、文件创建的日期和时间以及文件在数据区中所占的首簇号,即该文件在FAT表中的入口等数据。
(4)FAT的数据区
数据区存在文件的数据内容。文件系统对数据区的存储空间是按簇进行划分和管理的。该系统中,定义1Cluster=32sector,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余空间就不再使用。
由图1可以看出,该FAT文件系统提供文件的格式化,文件的打开、删除、关闭,文件的读写、查找等基本的功能。通过Flash文件系统对文件的操作进行管理后,该车载播放系统便可以实现选曲、添加删除歌曲、下载歌曲、音量调节等一系列功能了。
3 应用
通过这样的设计,Flash的存储性能有了较大的改善,而且系统的可靠性也很好。即使在Flash写操作异常终止频发的最恶劣工作条件下,也不会丢失数据,更不会损坏非常重要的文件分配表结构而造成系统的崩溃;因此,本文所设计的Flash文件系统能很好地适合于车载MP3播放系统的应用。
★ 小学生课件怎么做
【拖动与碰撞的应用,Flash学习(精选9篇)】相关文章:
SVG网页设计软件实现分析论文2022-06-03
学做课件2022-05-19
信息技术考试试题2022-04-29
用Fireworks制作神奇的图章工具2022-05-02
五年级信息技术教案2023-08-22
ppt教学课件制作技巧有哪些2024-03-18
八年级信息技术教案2024-01-27
WPS演示教程:连续动画,一触即发2022-04-30
我们的校园教学设计2022-05-04
信息技术试题2023-07-07