|
效果:
点击这里下载源文件
在做游戏的时候,特别是rpg游戏,常常有很多任务,以下是我的游戏任务解决方案,提供出来大家分享:
第一步:首先写一个 任务的类 task.as
class task { //定义事件的名称,进度,描述 var SjName, SjJd, SjMs; function task(N, J, M) { SjName = N; SjJd = J; SjMs = M; } //显示单个任务信息 function SjInfo(a) { if (a == 1) { return SjMs; } return SjName; } //完成任务 function SjFinish() { if (SjJd==0) { SjJd = 1; } else { trace(SjName+"的任务,已经完成或者未触发"); } } //触发任务 function SjOpen() { if(SjJd==-1) { SjJd = 0;} else{ trace(SjName+"的任务,已经触发或者完成"); } } } 第二步:在task.as目录下面新建Flash 测试.fla,在第一帧里面声明 游戏的所有任务
//定义事件 (名称,进度,描述) var Sj1:task = new task("帮助王大爷", -1, "到附近的铁牛山帮助王大爷看看他的外孙"); var Sj2:task = new task("帮助千秋学找媳妇", -1, "到重庆去找帮千秋学媳妇"); var Sj3:task = new task("帮助李大爷", -1, "送信给隔壁村子的张阿姨"); var Sj4:task = new task("帮助赵员外", 1, "到附近的丹霞岭帮助赵员外采集草药"); var Sj5:task = new task("帮助李铁匠", 0, "李铁匠的女儿被山贼给掳走了,在黑风洞里面区找线索"); var Alltask = new Array(Sj1, Sj2, Sj3, Sj4, Sj5); //显示事件列表 function ShowShijian() { _root.Info = " <font color=\"#000000\">系 统 消 息</font> <br>========================<br>"; for (var i:Number = 0; i<_root.Alltask.length; i++) { if (_root.Alltask[i].SjJd == 0) { _root.Info += "<br>"+(i+1)+"、"+_root.Alltask[i].SjMs+"<font color=\"#FFF000\">[进行中]</font><br>----------------"; } if (_root.Alltask[i].SjJd == 1) { _root.Info += "<br>"+(i+1)+"、"+_root.Alltask[i].SjMs+"<font color=\"#FF0000\">[已完成]</font><br>----------------"; } if (_root.Alltask[i].SjJd == -1) { _root.Info += "<br>"+(i+1)+"、"+_root.Alltask[i].SjMs+"<font color=\"#999999\">[未触发]</font><br>----------------"; } } } 第三步:在第一帧上面放入以下元件 1、画一个动态文本,属性设置如下:多行显示,允许html,变量为info 2、拖入1个Flash的button组件 ,属性如下:参数label为:得到任务列表,加上以下AS
on(click) { _root.ShowShijian(); } 3、拖入1个Flash的button组件 ,属性如下:参数label为:激活事件1,加上以下AS
on(click) { _root.Sj1.SjOpen(); _root.ShowShijian(); } 4、拖入1个Flash的button组件 ,属性如下:参数label为:激完成任务1,加上以下AS
on(click) { _root.Sj1.SjFinish(); _root.ShowShijian(); } 到这里就完成了。 (出处:网页教学网)
|