关闭

用AS3.0制作五子棋(二)

标签: as五子棋音乐复盘
360人阅读 评论(0) 收藏 举报
分类:

五子棋的基本内容上一篇已经讲了,这一篇讲一下给五子棋添加背景音乐还有利用ShareObject给棋子复盘的功能。

添加背景音乐的代码如下:

import flash.net.URLRequest; 
music.visible=false;<span style="white-space:pre">	</span>//这是我设置的背景音乐开关的按钮,音乐还没加载进来先隐藏
var mp3Url:String = "白羊座的忧伤.mp3";
var mp3SoundChannel:SoundChannel;
var playBoolean:Boolean=true;<span style="white-space:pre">	</span>//记录现在背景音乐的状态
var mp3len:Number = 0;<pre name="code" class="plain">//此变量记录音乐播放的当前时间点
music.visible=false;
//music_2.visible=false;
var mp3Url:String = "白羊座的忧伤.mp3";
var mp3SoundChannel:SoundChannel;
var playBoolean:Boolean=true;


//此变量记录音乐播放的当前时间点
var mp3len:Number = 0;
var mp3req:URLRequest = new URLRequest(mp3Url);
var sound:Sound=new Sound();
sound.load(mp3req);
mp3SoundChannel = sound.play(mp3len);
sound.addEventListener(Event.COMPLETE,onMp3);
function onMp3(evt:Event):void
{
//只有当音乐完全加载了,我们才来调用鼠标事件,让按钮可以控制音乐
//显示按钮
music.visible=true;
music.addEventListener(MouseEvent.CLICK,OnClick);
txt2.text="on";
//music_2.addEventListener(MouseEvent.CLICK,OnClick_2);
}
function OnClick(evt:MouseEvent):void
{
playBoolean = ! playBoolean;
if (playBoolean)
{
mp3SoundChannel = sound.play(mp3len);
txt2.text="on";
soundTrans.volume = 1;//1最大0静音
SoundMixer.soundTransform = soundTrans;
//music.laba.gotoAndStop(1);
}
else
{
mp3len=mp3SoundChannel.position
mp3SoundChannel.stop();
soundTrans.volume = 0;//1最大0静音
SoundMixer.soundTransform = soundTrans;
txt2.text="off";
//music.laba.gotoAndStop(2);
}
}

复盘功能有两个模块一个是保存,一个是读取。

//保存功能;
function btn_saveclick(e:MouseEvent)
{
chess_stay.data.chessStep = q;//保存棋子的步数   
for (i=0; i<15; i++)
{
chess_stay.data.chess_x[i] = x2[i];//保存每一步下棋的坐标 
chess_stay.data.chess_y[i] = y2[i];//保存每一步下棋的坐标 
for (j=0; j<15; j++)
{
chess_stay.data.bb[i][j] = aa[i][j];//保存棋子的状态 
}
}
chess_stay.flush();
chess_stay.close();
txt3.text = "";
txt1.text = "保存成功!";
}

//读取功能;
function btn_readclick(e:MouseEvent)
{ q = chess_stay.data.chessStep;
for (i=0; i<15; i++)
{
x2[i] = chess_stay.data.chess_x[i];
y2[i] = chess_stay.data.chess_y[i];
for (j=0; j<15; j++)
{
aa[i][j] = chess_stay.data.bb[i][j];//保存棋子的状态 
}
}
//chess_stay.close();
//chess_stay=null;


for (var i=0; i<15; i++)
{
for (var j=0; j<15; j++)
{
if (aa[i][j] == 1)
{
mc = new Black();
mc.x = (i * (465/14)-10);
mc.y = (j * (465/14)-11);
bx.x = (i * (463.8 / 14)-18);
bx.y = (j * (463.8 / 14)-18);
qi.addChild(bx);
qi.addChild(mc);
end = 1;
}
else if (aa[i][j] == 2)
{
mb = new White();
mb.x = (i * (465/14)-12);
mb.y = (j * (465/14)-11);
bx.x = (i * (463.8 / 14)-18);
bx.y = (j * (463.8 / 14)-18);
qi.addChild(bx);
qi.addChild(mb);
end = 1;
}
}



}

在数据传送过程中对象名后面的.data一定要加。在读取完数据后遍历一边数组把棋子都放上棋盘就OK了


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5847次
    • 积分:176
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类