你说的 bt,应该是场景上5个元件的实例名 bt1 bt2 bt3 bt4 b5
功能依代码看,类似菜单代码
以行号为标准
1. 声明 布尔值 变量 slider_flag,默认为false
2. 声明 布尔值 变量 bt_text_flag,默认为false
3.
4. 时间轴停止在当前帧
5. 侦听onEnterFrame事件,事件处理方法 onenterframe
6. 事件处理方法 onenterframe
7. 如果当前鼠标与当前影片剪辑MC有接触碰撞
8. 如果当前影片MC,当前帧在第1帧
9. 当前帧跳第2帧
10.
11. 如果变量 slider_flag 值为true 而且 变量 bt_text_flag 值为true
12. 声明 布尔值 变量 hit_flag,默认为false
13. for循环 1 至 5,循环变量为i
14. 如果场景上的 影片剪辑 btN(N为1-5任一值) 碰撞当前鼠标坐标
15. bg_slider纵向Y轴坐标向鼠标所指影片剪辑靠近
16. 同时 hit_flag置值为true,此值会在下面用到,用来标示此轮循环检测结果
17. 一旦检测到有碰撞,则break跳出for循环
18.
19.
20. 如果在上一轮for循环检测中有检测到碰撞
21.
22. 此行功能与15行功能一样,疑似代码重复,可尝试去除15行,功能应该不变
23.
24.
25. 如果当前影片剪辑没碰撞
26. 则回跳第一帧
27. 变量 slider_flag 置false
28. 变量 bt_text_flag 置false
我分段解释吧.
声明两个BOOLEAN变量
停止在当前帧
在当前建立侦听
侦听的执行函数(帧频函数)
函数内部:进行判断(如果当前帧是1){那么到2}
继续判断:如果(两个都为真){设置变量,然后FOR循环{判断this[bt+i]应该是某个元件名}看他是触碰点(父级鼠标的指示点位置),为真则它的Y值进行赋值。BREAK是跳出循环
判断{然后也是一个赋值,和上面的类似}
再接下来的ELSE是相对于最上面的IF{停在第一帧,变量为FALSE}
我解释到这里,全文件太多了,然后,一点忠告,AS3不是这样写的。他面向对象方面做得很好了,最好不要把代码写在帧上,写独立的AS文件。