AS3 /当我清除文本字段时,如何使我的按钮不可见?

时间:2013-12-01 17:55:00

标签: actionscript-3 flash

我有一个文本字段,只有当我输入时才会有一个按钮转到下一个。 但我也想让它以另一种方式工作,所以当我拿走文本字段中的文本时,按钮再次变得不可见。

我对AS3知之甚少,所以如果有人可以帮助我

感谢。

import flash.text.TextField;

var myFont = new Font1();

var myFormat:TextFormat = new TextFormat();
myFormat.size = 35;
myFormat.align = TextFormatAlign.LEFT;
myFormat.font = myFont.fontName;

var text1:TextField = new TextField();
text1.defaultTextFormat = myFormat;
text1.embedFonts = true;

text1.antiAliasType = AntiAliasType.ADVANCED; 
text1.text = ""
text1.type = TextFieldType.INPUT;
text1.textColor = 0xEC8DAD;
text1.width = 399;
text1.height = 256;
text1.x = 158.95;
text1.y = 307.20;
text1.border = true;
text1.borderColor = 0xDA1C5C;
text1.wordWrap = true;

addChild(text1);

var Button:Next = new Next();
Button.x = 663;
Button.y = 546;
Button.visible = false;
Button.useHandCursor = false;
addChild(Button);

text1.addEventListener(TextEvent.TEXT_INPUT,handler);
function handler(event:TextEvent){
    Button.enabled=true
    Button.visible = true;
    }

2 个答案:

答案 0 :(得分:0)

您可以使用ENTER_FRAME侦听器。

var tf:TextField; //your textfield
var button:Button; //your button

addEventListener(Event.ENTER_FRAME, onEnterFrame); //calls this function EVERY frame

function onEnterFrame(ev:Event):void
{
    if(tf.text == "")
    {
         button.visible = false; //turn your button invsible
    }
    else
    {
         button.visible = true; //turn your button visible
    }
}

优势在于,您的TextField将在您的swf的每一帧都被检查。因此,一旦从文本字段中删除所有文本,该按钮将立即消失,否则如果TextField中至少有一个字符,则会出现按钮。

答案 1 :(得分:0)

您可以使用Event.CHANGE事件。

text1.addEventListener(Event.CHANGE,handler);
function handler(event:Event){
    if (text1.text) {
        Button.enabled = true;
        Button.visible = true;
    } else {
        Button.enabled = false;
        Button.visible = false;
    }
}