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);在flash中是什么意思
时间: 2024-02-15 07:27:02 浏览: 58
这段代码主要是用于实现井字棋游戏中的落子逻辑。具体解释如下:
- `if (penok0 == 1 && penok == 1)`:这是一个条件判断语句,如果满足条件,就会执行大括号中的代码。条件是 `penok0` 和 `penok` 的值都等于 1。
- `for (i = 1; i <= 9; i = i + 1)`:这是一个循环语句,它会执行 9 次。每次循环中,变量 `i` 的值从 1 到 9 递增。
- `{ if (eval("xod" add i) == 1) { set("sq" add i, 1); penok = 0; tellTarget("/xxx/xxx" add i) { gotoAndPlay(2); } cxod = 0; i = 9; } }`:这是循环体,它会在每次循环中执行。它使用 `eval` 函数动态地获取名字为 `"xod1"`、`"xod2"`、...、`"xod9"` 的变量的值,如果值等于 1,就将名字为 `"sq1"`、`"sq2"`、...、`"sq9"` 的变量的值设为 1,将 `penok` 的值设为 0,然后跳转到影片剪辑 `/xxx/xxx1`、`/xxx/xxx2`、...、`/xxx/xxx9` 并从第 2 帧开始播放。最后将 `cxod` 的值设为 0,将 `i` 的值设为 9,以结束循环。
- `if (penok0 == 1 && penok == 1)`:这是另一个条件判断语句,如果满足条件,就会执行大括号中的代码。条件是 `penok0` 和 `penok` 的值都等于 1。
- `{ if (cxod == 0) { call("OOO"); set("sq" add oxod, 0); penok0 = 0; tellTarget("/ooo/ooo" add oxod) { gotoAndPlay(2); } cxod = 1; } }`:这是另一个循环体,它也会在每次循环中执行。如果 `cxod` 的值等于 0,就会调用名字为 `OOO` 的函数,将名字为 `"sq1"`、`"sq2"`、...、`"sq9"` 中其中一个的值设为 0,将 `penok0` 的值设为 0,然后跳转到影片剪辑 `/ooo/ooo1`、`/ooo/ooo2`、...、`/ooo/ooo9` 中其中一个并从第 2 帧开始播放。最后将 `cxod` 的值设为 1。
- `setProperty("/pen", _visible, penok); setProperty("/penO", _visible, penok0);`:这是两个函数调用,它们分别将名字为 `/pen` 和 `/penO` 的影片剪辑的 `_visible` 属性设为 `penok` 和 `penok0` 的值。这样做可以根据游戏状态来显示或隐藏某些元素。
需要注意的是,这段代码使用了一些 ActionScript 2.0 特有的语法,例如 `eval` 函数、`tellTarget` 函数和 `_visible` 属性。在 ActionScript 3.0 中,这些语法都已被废弃或移除,需要使用不同的语法来实现相同的功能。
阅读全文