AS3 /如果单击按钮将其重置为false

时间:2013-12-06 17:29:09

标签: actionscript-3 flash

当我来到文本字段时,会出现按钮 如果我从文本中得到按钮消失的文本。现在我希望当我点击按钮移动按钮再次消失并转到下一页。(movieClip)。

我在框架中执行所有操作,并使用addChild和removeChild在不同页面之间进行操作。对接始终保持不变。 (只使它可见/不可见)

所以我再次这样做。这是可能的,我怎么能做到最好?

现在它仍在第二页上可见。

2 个答案:

答案 0 :(得分:0)

按钮对象的范围不能在handler函数中访问。您必须查看是否可以通过传递给handler函数的事件对象访问它,或者创建一个自定义事件类,该事件类将包含可以在handler函数中访问的按钮对象当您为文本字段分派更改事件时。

答案 1 :(得分:0)

如果您不想深入创建自定义类,可以使用此代码 首先定义一些函数

import fl.controls.Button;
var pairs={}; 
var funcs={};
function ButtonConstructor(btnName:String,initX:Number,initY:Number,
                           connectedTF:TextField,clickFunction:Function){
    this[btnName] = new Button();
    this[btnName].x=initX;
    this[btnName].name=btnName;
    this[btnName].y=initY;
    this[btnName].visible =false;
    this[btnName].addEventListener('click',typicalClick);
    addChild(this[btnName]);
    pairs[connectedTF.name]=this[btnName];
    funcs[btnName]=clickFunction;
    connectedTF.addEventListener(Event.CHANGE,tfChange);
}
function tfChange(e:Event){
    pairs[e.target.name].enabled = true;
    pairs[e.target.name].visible = true;
    e.target.removeEventListener(Event.CHANGE,tfChange);
}
function typicalClick(e:MouseEvent){
    e.target.enabled = false;
    e.target.visible = false;
    funcs[e.target.name]();
}

然后你使用它们

function customFunction(){
    gotoAndStop(2);
}
ButtonConstructor('newBtn',100,100,firstTF,customFunction);