Flash中 关于层次的代码的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 12:00:09
首先请逐一解读下这段代码:
for (i=1; i<7; i++) {
name = "m"+i;
_root[name].onEnterFrame = function() {
this.onPress = function() {
depth = _root.getNextHighestDepth();
this.swapDepths(_root.depth);
};
};
}

该代码达到的效果是在鼠标点击相应元件(m1、m2、m3、m4、m5、m6, 这六个元件位置几乎是一样的)时,其层次达到最高,显示在最前面。
这个代码是写在第二桢,在第二针中我做了个返回第一桢的按钮。
演示过程及出现问题如下:
从第一桢中点击按钮,转到第二桢。
在鼠标点击相应元件时,其显示在了最前面。
之后便点击另一按钮,返回第一桢。

再次从第一桢里点击按钮,再次转到第二桢,
在鼠标点击相应元件时,其显示在了最前面。
再次点击按钮回到第一桢后,
(问题出现)
在第二次转到第二桢时,凡是被点击过的元件(m1至m6),
都无法消失!
及第二桢的内容出现在了第一桢里面!
我尝试在转到第一桢时将那些元件的_visible属性改为false
但问题仍然存在。
补充:
问题不一定出现在第二次转回第一桢,也有可能是在多次实现一、二之间的转到后出现。但第一次转回第一桢时为出现过。

for (i=1; i<7; i++) {
name = "m"+i;
_root[name].onRelease = function() {
depth = _root.getNextHighestDepth();
this.swapDepths(_root.depth);
};
}

看到这个
onEnterFrame = function() {
onPress = function() {
}
}
就知道你没有正确理解onEnterFrame事件

你把要求好好说一下(看上面没明白你要做什么)
保证不用你这么麻烦,一个按钮搞定

用一帧就解决问题,干吗用两帧?没必要啊!