flash AS2,AS3中按钮如何控制父级帧。

2025-03-03 06:18:31
推荐回答(5个)
回答1:

楼上两位说得已经很明白了,我来个归纳总结吧。
1.as2和as3在事件监听上的不同
对于同样的按钮btn_01来说,监听点击事件的区别在于:
as2监听release事件,即鼠标弹起事件使用on关键字。
那么我们可以在btn_01的父级对象(soon)上选一下空白的地方,然后f9,输入
btn_01.onRelease=function (){
/*函数体*/
}

也可以直接选中btn_01然后按f9,输入
on (release) {
/*函数体*/
}

而对于as3来说,我们需要监听的是click事件,即按下和抬起鼠标两个动作的组合。使用的是EventListener(事件监听器)
我们要做的就是在btn_01的父级对象(soon)上选一下空白的地方,然后f9,输入
btn_01.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(event:MouseEvent):void{
/*函数体*/
}

或者是进入btn_01的内部,按f9输入
this.addEventListener(MouseEvent.CLICK,clickHandler);
function clickHandler(event:MouseEvent):void{
/*函数体*/
}

2.关于相对路径和绝对路径
先解释一下相关的概念,就拿题目上说得例子来说吧。我们把同样的代码写在主场景上,还有写在main里,或者是soon里肯定是有区别的。比如stop()。
但是有的时候我希望操作的并不是这个mc,那么怎么办呢?比如我在soon里想操作main。那么我们可以在soon里写
parent.stop();//相对路径写法
也可以写
root.main.stop();//绝对路径写法

他们的区别在于绝对路径是用root开始的(as2是用_root),一步一步找到你需要修改的mc,比如btn_01的路径就是root.main.soon.btn_01,任何位置写的代码都可以指向同样位置
而相对路径是从this开始的(通常this是可以省略的),它跟代码的位置息息相关,parent(as2中是_parent)就是说的当前mc的父级mc,在soon里的代码就指向main,在btn_01中就指向soon。

好了,把两点组合起来就可以做你想做的了

呵呵,不知不觉写成小教程了,希望我的文章你能喜欢

回答2:

我是用AS 2.0
在按钮上写:
on (release) {
_root.gotoAndStop(5);
}

回答3:

在btn_01里面 写 this.parent.parent.gotoAndStop(5);
或者 this.root.gotoAndStop(5);

回答4:

在main中写 :
main.soon.btn_01.addEventListener(MouseEvent.CLICK,fun);
function fun(e:MouseEvent):void{
this.gotoAndStop(5);
}

回答5:

点击按钮之后发布一个自定义事件,在main里侦听这个事件。