我发一下这个程序我的基本理解..呖.其实也不算是我的理解.是别人给帮助我的理解...各位大侠看看哪不对或是准确的给点意见..谢谢..
........................................................
/*
全局函数声明
*/
function show_all() { // 全部显示图案
for (var i = 1; i <= mc_num; i++) {
var mc = _root["m" + i];
mc.show_it();
}
}
function hide_all() { // 全部显示黑框
for (var i = 1; i <= mc_num; i++) {
var mc = _root["m" + i];
mc.hide_it();
}
}
function disable_all() { // 全部设置不可点击
for (var i = 1; i <= mc_num; i++) {
var mc = _root["m" + i];
mc.enableClick = false;
}
}
function enable_all() { // 全部设为允许点击
for (var i = 1; i <= mc_num; i++) {
var mc = _root["m" + i];
mc.enableClick = true;
}
}
/*
给出开始的元件
*/
function shuffle_all() {
for (var i = 1; i < 100; i++) { //执行以下操作100次
var tempA = Math.floor(Math.random() * 10000) % mc_num + 1;
var tempB = Math.floor(Math.random() * 10000) % mc_num + 1; //任取 1~mc_num 中的两个整数
if (tempA != tempB) { //不等,执行以下操作
var mcA = _root["m" + tempA];
var mcB = _root["m" + tempB]; //定义 mcA、mcB
var tempX = mcA._x;
var tempY = mcA._y;
mcA._x = mcB._x;
mcA._y = mcB._y;
mcB._x = tempX;
mcB._y = tempY; //交换两个元件的位置
}
}
}
for (var i = 1; i <= mc_num; i++) {
var mc = _root["m" + i];
mc.enableClick = false; // 将 m1、m2....... 元件设置为不可点击
mc.show_it = function() {
this.gotoAndStop(2);
}; //如果设置了show_it 属性就停留在元件的第2帧
mc.hide_it = function() {
this.gotoAndStop(1);
}; //如果设置了show_it 属性就停留在元件的第1帧
mc.onPress = function() { //点击此元件时,运行:
if (this.enableClick) { //若可以点击鼠标,
this.show_it(); //执行show_it函数(意义如上……)
if (last_mc != undefined && last_mc != this && last_mc.g == this.g) {
//判断 last_mc 是被定义了并且不为当前点击的图标且这两个元件的g属性(就是点对了)相同?若是,
last_mc.show_it(); //对 last_mc 元件执行 show_it 函数,
this.show_it(); //对 m&str(i) 元件执行 show_ti 函数,
last_mc.enableClick = false;
this.enableClick = false; //使这两个元件不可点击
last_mc = undefined; //强制设置 last_mc 为未定义
game_progress--; // game_progress 自减
if (game_progress == 0) { //若 game_progress =0,
trace("Game over!"); //输出 game over
replay_btn._visible = true; // replay 按钮可见
}
} else { //若否,
if (last_mc != undefined && last_mc != this && last_mc.g != this.g && game_level > 1) {
//若 last_mc 已被定义,且last_mc不是当前点击元件,且 last_mc 的 g 属性不是当前点击元件的g属性(就是第二个点击的是错的),并且game_level变量大于1
disable_all(); //所有图标不可点击
this.show_it(); //显示当前图标
var x = 0; //设置变量x
onEnterFrame = function () { //设置 onEnterFrame 属性
if (x++ > 10) { //x自加,且若x+1>10,执行以下操作
hide_all(); //隐藏所有图形
enable_all(); //所有元件允许点击
game_progress = mc_num / 2; //设置 game_progress
last_mc = undefined; //设置 last_mc 未定义
delete this.onEnterFrame; //删除此属性
}
};
return;
}
last_mc.hide_it(); //隐藏 last_mc
last_mc = this; //将当前赋为 last_mc
}
}
};
}
replay_btn.onPress = function() { //按下重玩按钮:
hide_all(); //隐藏所有
this._visible = false; //当前按钮不可见
start_btn._visible = true; //开始按钮可见
};
start_btn.onPress = function() { //按下开始按钮
shuffle_all(); //重新放置
show_all(); //显示所有
interObj = setInterval(game_start, 10000); //大概延时 10s
this._visible = false; //当前按钮不显示
};
function game_start() {
clearInterval(interObj); //这个不懂
hide_all(); //隐藏所有图案
enable_all(); //允许所有按钮点击
game_progress = mc_num / 2; //设置 game_progress