仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 657|回复: 8
打印 上一主题 下一主题

[学习教程] 来看看:Flash as进门(6):文本与字符串游戏实例-Flash actionscript

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 20:53:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
AdobeFlashProfessionalCS5.5软件可以提供行业领先、用于制作具有表现力的交互式内容的授权环境。
本例持续解说AS的基本常识,前几节课我们进修了AS中的文本与符的实际常识,明天来实践操纵一下,制造一个打字游戏,对Flash的AS编程有乐趣的伴侣能够到论坛与作者交换。
上一篇文章:Flashas进门(6):文本与字符串⒒
先看效果:




如今入手下手制造:
新建一flash文档。
1.新建一个影片剪辑元件,定名为“爆炸”。这必要一个爆炸的效果,你能够找一个爆炸图片,也能够画一个,我这个是用PS做的。进进元件编纂窗口,将爆炸图片拖进,打散,居中放好。在第5帧拔出关头帧。回到第一帧将图片缩到5象素。然后创建外形补间。翻开库面板,在爆炸元件上,点右键,点击“毗连”,为该元件输出标识符“bz”.
导进一个爆炸声的音乐文件,在库中音乐文件上点右键-属性。取失落“利用导进品德”上的钩。紧缩选择mp3.在库中右击该音乐元件,点毗连,为该元件输出标识符“pzs”.
回到爆炸元件编纂窗口,新建一层,在第3帧拔出关头帧(这里是要导进爆炸声,在第几帧拔出依据声响的是非来定,假如声响长那末就在第1帧就导进。)点右键,翻开帧举措面板,输出:

varbd:Sound=newSound();
bd.attachSound("pds");
bd.start();
第一句声响了一个声响对;第二句将库中的爆炸声响导进。第三句声响入手下手播放。
在第5帧拔出关头帧,在帧举措面板中输出:
this.removeMovieClip(this);
将爆炸元件移除。
图:我用PS做的爆炸效果:(png)

2.再建一个影片剪辑元件,取名为“年夜炮”.一样你能够找一张年夜炮的图片,也能够自已画一个,我这个是自已画的。注重将图形放到中央点(十字)稍上方,即十字点在年夜炮的后半部位。

图:我画的年夜炮,不太好哈。注重十字的地位,年夜炮将以这一点作为扭转的基点。




3.新建7个按钮,标签分离为:“设置”,“重玩”,“字母”,“中文”,“慢速”,“中速”,“疾速”。

4.能够选一个背景画片,一样能够找一个光景图(应有天空和空中),也能够画一个,我画了一个,又找了一张光景照片,了局仍是以为光景照片悦目些。固然你也能够不要背景图片。

5.演员筹办齐了,如今入手下手安排舞台。

回到主场景。第一层“背景”在第2帧拔出关头帧,将“设置”,“重玩”按钮从库中拖进,放到左上部。翻开属性面板,分离将两个按钮定名为:“sz_btn”,”cw_btn”.在右边稍下边一点进一静态文本,内容为“射中率”,在它的下边放一静态文本,在属性面板中定名为“mzl_txt”;在它的上面放一静态文本,内容为“得分”,在它的上面,放一静态文本,在属性面板中定名为“df_txt”.在右半部画一矩形,然后在这个矩形上放一个静态文本,内容为“以后设置”。然后放两个静态文本,内容分离为:“字母”,“中速”。翻开属性面板,将两个静态文天职别定名为:“yysz_txt”,”sdsz_txt”.将“字母”“中文”,“慢速”,“中速”,“疾速”按钮拖进,放到矩形的右半部。在属性面板平分别定名为:“zm_btn”,”zw_btn”,”ms_btn”,”zs_btn”,”ks_btn”.以下图:




在第3帧拔出帧。
新建一层:在第2帧拔出关头帧,将光景图片拖进,调剂巨细,挡住右侧的矩型鄣分:将“年夜炮”元件从库中拖进,放到右侧光景图的下方两头。在属性面板中定名为:”dp_mc”.





6.好了,安排好了。如今来写代码。新建一层,定名为“action”,翻开帧举措面板。

首选筹办好笔墨,将呈现的笔墨有字母和中文两种,我们建两个字符串来寄存笔墨。字母对照复杂只要26个,以是第一句:

varzm:String=“abcdefghijklmnopqrstuvwxyz”;

第二句放中文,我找了一篇散文,将它存在字符串中,在散后最初加上0~9,如许也能够让用实习一下数字键。


varzw:String="这几天内心颇不和平。…….”;


zw+="0123456789";
声明几变量,前面有效:
varzs=0;//下跌笔墨的总数
vardf=0;//击中笔墨的数目
varlg=1;//言语,用于前面由用户选择实习字母仍是实习中文。
varsd=500;//速率,用于设置笔墨呈现的速率。
varwbformat:TextFormat=newTextFormat();//创立一个文本格局,用于设置下跌的文本
wbformat.bold=true;
wbformat.size=22;
在第二帧拔出关头帧:这一帧将完成笔墨下跌,击中和得分计数生等功效。
stop();
//起首创立一个输出文本用来承受用户输出笔墨:
this.createTextField("sr_txt",31,350,350,30,20);
sr_txt.type="input";
sr_txt.border=true;
sr_txt.text="入手下手";

//创立文本地位坐标要依据实践的地位来断定,使文本呈现在年夜炮的下方。
上面用一个函数来完成呈现字母的功效:

vari=0;
functioncwb(wbl){//注重这里声明的函数带了一个参数wbl,这个参数用于文本是字母仍是中文。
if(i<10){//这一句就让屏幕上呈现的笔墨只要10个。
varwbx=150+random(370);//发生一个150到520的随机数,用于设置笔墨的x属性。
createTextField("wb_txt"+i,i,200,20,30,30);
wb=eval("wb_txt"+i);
varzmwz=random(wbl.length);//发生一个从0~文本字符串(第1帧创立那两个)的长度之间的随机数,用于从字符串中随机抽取字符。
wb.text=wbl.charAt(zmwz);//设置文本的内容为字符串中的随机字符
wb._x=wbx;
wb.setTextFormat(wbformat);//将第1帧创立的文本格局使用于该文本。
zs++;//文本呈现后,笔墨总数加1
}else{

i=0;
}
i++;
}
//上面经由过程onEnterFrame事务,让呈现的文本不休往下跌:
onEnterFrame=function(){
for(k=0;k<10;k++){
wb=eval("wb_txt"+k);
wb._y+=2;
}

};
//接上去就是启动游戏了,我们将启动按钮设在输出文本的onSetFocus事务上,也就是说,当我们一点击“入手下手”(输出文本取得核心),游戏启动。
varszm;//这变量用来挪用下面的呈现字的函数。
sr_txt.onSetFocus=function(){

varjsid=setTimeout(js,60000);//起首设置一个工夫限定,就是说60000毫秒(1分钟)挪用函数js,这个函数将中断游戏并统计得分。

if(lg==1){//假如变量lg即是1

szm=setInterval(cwb,sd,zm);//那末每隔变量sd那末长的工夫,挪用一次出笔墨的函数cwb,而且利用字母(zm)字符串)
}else{//不然

szm=setInterval(cwb,sd,zw);//那末每隔变量sd那末长的工夫,挪用一次出笔墨的函数cwb,而且利用中文(zw)字符串).以是我们只虽改动变量lg的值,就能够选择出字母仍是出中文了。
}

sr_txt.text="";//将输出文本框清空,筹办输出。
}
functionjs(){//这是声了然一个用于停止游戏的函数。

clearInterval(szm);//扫除setInterval的挪用,笔墨不再呈现。

mzl_txt.text=int((df/zs)*100)+"%";//盘算射中率,并显现。
}
//上面经由过程输出文本的onChanged事务,完成炮轰笔墨的效果。
sr_txt.onChanged=function(){//当输出文本内容产生变更时,即我们每输出一个笔墨时

for(varj=0;j<10;j++){

cxdwb=eval("wb_txt"+j);

if(sr_txt.text==cxdwb.text){//假如输出的笔墨和呈现的笔墨之逐一样。

attachMovie("bz","bz_mc",21);//那末从库中加载爆炸元件,这里的深度我用了21,是为了不与呈现的笔墨文本抵触,固然11也就好了,由于笔墨文本只要10个。



bz_mc._x=cxdwb._x;

bz_mc._y=cxdwb._y+10;//两句设置爆炸元的地位和笔墨文本的地位一样,使其在笔墨处爆炸。

dx=cxdwb._x-dp_mc._x;

dy=cxdwb._y-dp_mc._y;

dz=Math.atan2(dy,dx)*180/Math.PI;

dp_mc._rotation=dz+90;//下面是经由过程三角函数使年夜炮的偏向转为笔墨文本的偏向。

cxdwb.removeTextField();//爆炸后将笔墨文本删除,即炸失落了。

df++;//击中后得分加1

df_txt.text=df;//显现得分

}

}

sr_txt.text="";//清空输出文本,筹办下一次输出。

}
//游戏的功效就完成了,如今应供应一个重玩按钮,让用户能够从头入手下手游戏。
cw_btn.onRelease=function(){//当重玩按钮被点击时

if(lg==1){

szm=setInterval(cwb,sd,zm);
}else{

szm=setInterval(cwb,sd,zw);
}

sr_txt.text="";

setTimeout(js,60000);

df=0;

zs=0;

mzl_txt.text="";
}
//上面是设置按钮,进进设置页面。
sz_btn.onRelease=function(){

gotoAndStop(3);
}
在第3帧拔出关头帧,将在这一帧设置笔墨言语,速率等。
进进设置页面后,起首中断游戏:
clearInterval(szm);
zs=0;
df=0;
//上面是几个设置按钮上的代码:
zm_btn.onRelease=function(){

lg=1;//让娈量lg即是1,如许笔墨将会是字母

yysz_txt.text="字母";
}
zw_btn.onRelease=function(){

lg=2;//让娈量lg不即是1,如许笔墨将会是中文

yysz_txt.text="中文";
}
ms_btn.onRelease=function(){

sd=1000;//设置sd为1000毫秒,即每1000毫秒出一个笔墨,下同

sdsz_txt.text="慢速";
}
zs_btn.onRelease=function(){

sd=500;

sdsz_txt.text="中速";
}
ks_btn.onRelease=function(){

sd=200;

sdsz_txt.text="疾速";
}
qd_btn.onRelease=function(){//这是断定按钮上的代码,点击断定按钮后,加入设置窗口,前往游戏窗口,持续游戏。

gotoAndStop(2);
}
好,竣工,祝你乐成!


Flash通常也指MacromediaFlashPlayer(现AdobeFlashPlayer)。2012年8月15日,Flash退出Android平台,正式告别移动端。
透明 该用户已被删除
沙发
发表于 2015-1-17 14:55:26 | 只看该作者
都着重在优点方面,请尽量答的详细、深入一些,谢谢!拿了我全部的爱问分了已经
老尸 该用户已被删除
板凳
发表于 2015-1-24 23:18:51 | 只看该作者
逐渐改变了我们生活及生活习惯的一些东西,而正是互联网的大势兴起,Flash动画越来越受到宠爱,现在,Flash动画已成为网络广告的中坚力量。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-2 16:54:37 | 只看该作者
只要用心 只要努力 在加上你无限的创意和想象。FLASH无敌了
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-8 05:00:51 | 只看该作者
Flash是一种以向量图方式制成的网页动画,相比MPEG,AVI等的影片的档案大小就小很多.
若天明 该用户已被删除
6#
发表于 2015-2-24 19:32:20 | 只看该作者
中坚的程序员趋向于嘲笑脚本语言,但是对于那些没有计算机科学学位的人来说,脚本语言可能使他们头疼。
7#
发表于 2015-3-7 14:37:01 | 只看该作者
矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。
飘灵儿 该用户已被删除
8#
发表于 2015-3-15 08:58:46 | 只看该作者
flash 有这么多的优势,那么它的优缺点和设计方面的关系是什么?
变相怪杰 该用户已被删除
9#
发表于 2015-3-22 00:31:38 | 只看该作者
Flash动画制作,是指利用Flash软件对动画进行设计,以产生千变万化的效果。随着互联网的兴起。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表