if (penok0 == 1 && penok == 1) { for (var i:int = 1; i <= 9; i++) { if (this["xod" + i] == 1) { this["sq" + i] = 1; penok = 0; MovieClip(this.getChildByName("xxx" + i)).gotoAndPlay(2); cxod = 0; break; } } } if (penok0 == 1 && penok == 1) { if (cxod == 0) { this["OOO"](); this["sq" + oxod] = 0; penok0 = 0; MovieClip(this.getChildByName("ooo" + oxod)).gotoAndPlay(2); cxod = 1; } } pen.visible = penok; penO.visible = penok0;是什么意思
时间: 2024-04-20 14:27:10 浏览: 71
这也是一段 ActionScript 3.0 的代码,与游戏相关,大致的意思如下:
- 如果 penok0 和 penok 都等于 1,那么循环 9 次,找到第一个 xod 等于 1 的属性,将对应的 sq 属性设为 1,将 penok 设为 0,播放名字为 "xxx" + i 的 MovieClip 的第二帧,将 cxod 设为 0,然后跳出循环。
- 如果 penok0 和 penok 都等于 1,且 cxod 等于 0,那么调用函数 OOO,将对应的 sq 属性设为 0,将 penok0 设为 0,播放名字为 "ooo" + oxod 的 MovieClip 的第二帧,将 cxod 设为 1。
- 根据 penok 和 penok0 的值,控制名为 pen 和 penO 的显示或隐藏状态。
具体代码的作用需要根据上下文来确定,但可以看出这段代码与游戏的逻辑有关。
相关问题
for (var i:int = 1; i <= 9; i++) { this["xod" + i] = 0; this["sq" + i] = 99; } var penok:int = 1; var penok0:int = 1; var cxod:int = 1; var oxod:int = 0; var win:int = 99;是什么意思
这是一段 ActionScript 3.0 的代码,用于初始化一些变量。具体意思如下:
- 定义一个整型变量 i,初始值为 1,每次循环加 1,循环条件为 i 小于等于 9。
- 创建 9 个属性,属性名分别为 xod1、xod2、xod3、xod4、xod5、xod6、xod7、xod8、xod9,初始值都为 0。
- 创建 9 个属性,属性名分别为 sq1、sq2、sq3、sq4、sq5、sq6、sq7、sq8、sq9,初始值都为 99。
- 定义一个整型变量 penok,初始值为 1。
- 定义一个整型变量 penok0,初始值为 1。
- 定义一个整型变量 cxod,初始值为 1。
- 定义一个整型变量 oxod,初始值为 0。
- 定义一个整型变量 win,初始值为 99。
总的来说,这段代码的作用是初始化一些游戏中需要用到的变量,具体用途需要根据上下文来确定。
if (penok0 == 1 && penok == 1) { for (i = 1; i <= 9; i = i + 1) { if (eval("xod" add i) == 1) { set("sq" add i, 1); penok = 0; tellTarget("/xxx/xxx" add i) { gotoAndPlay(2); } cxod = 0; i = 9; } } } if (penok0 == 1 && penok == 1) { if (cxod == 0) { call("OOO"); set("sq" add oxod, 0); penok0 = 0; tellTarget("/ooo/ooo" add oxod) { gotoAndPlay(2); } cxod = 1; } } setProperty("/pen", _visible, penok); setProperty("/penO", _visible, penok0);使用 ActionScript 3.0优化
这段代码可以用 ActionScript 3.0 重写,并进行一些优化。具体重写如下:
```
if (penok0 == 1 && penok == 1) {
for (var i:int = 1; i <= 9; i++) {
if (this["xod" + i] == 1) {
this["sq" + i] = 1;
penok = 0;
MovieClip(this.getChildByName("xxx" + i)).gotoAndPlay(2);
cxod = 0;
break; // 优化:找到一个位置后直接退出循环
}
}
}
if (penok0 == 1 && penok == 1) {
if (cxod == 0) {
this["OOO"]();
this["sq" + oxod] = 0;
penok0 = 0;
MovieClip(this.getChildByName("ooo" + oxod)).gotoAndPlay(2);
cxod = 1;
}
}
this["pen"].visible = penok;
this["penO"].visible = penok0;
```
重写后的代码做了一些改进:
- 使用 for 循环时,循环变量 i 声明为 int 类型,可以提高代码效率。
- 获取和设置变量值时,使用了动态属性语法,可以减少代码量。
- 使用 getChildByName 方法代替 tellTarget 方法,以便更好地适应现代 Flash 开发。
- 在第一个 if 语句中找到一个位置后直接退出循环,可以提高代码效率。
阅读全文