简单的AS2问题

时间:2009-06-15 09:36:45

标签: actionscript-2

我有:(1)

this["btn_a"].onRelease = function (){
    this._parent[up_mc]._visible = true;
    this._parent[add_mc].num = random(10)+190;
    trace(this._parent);
}   

我将其更改为(2)

function click1(){
    this._parent[up_mc]._visible = true;
    this._parent[add_mc].num = random(10)+190;
    trace(this._parent);
}
this["btn_a"].onRelease = function (){
    click1();
}  

当我单击(1)中的按钮时,它显示'_level9',但当我单击(2)中的按钮时,它显示'undefined'。我对AS2一无所知,所以请帮助我并详细解释。非常感谢你。

1 个答案:

答案 0 :(得分:3)

...作用域

在第一个中,您正在调用属于该按钮的函数。 在第二个中,你在一个级别(你的情况:level9)声明一个函数,然后在它所在的位置调用它。

我想。

this["btn_a"].onRelease = function (){
    trace(this._parent+" "+this); // traces: _level0 _level0.btn_a
}

function click1(){
    trace(this._parent+" "+this); // traces: undefined _level0
}
this["btn_b"].onRelease = function (){
    click1();
}