flash只接受输入框中的多个字符

时间:2013-04-11 21:15:03

标签: actionscript-3 flash-cs6

我试图在文本框中捕获1个字母,但是当我输入多个字母时,flash只会注册,所以如果我键入'G'它不起作用,但如果我键入'GH'则会注册。 到目前为止,我正在捕捉它。 (部分代码)

function goToFrame8(event:MouseEvent):void
{

    addChild(answerInput);
    answerInput.x = 350;
    answerInput.y = 350;


    //next 'frame' button
    addChild(next8);
    next8.x = 650;
    next8.y = 520;
    next8.addEventListener(MouseEvent.CLICK, goToFrame9);


    answerInput.randomText.addEventListener(TextEvent.TEXT_INPUT, inputEventCapture);
}


function inputEventCapture(event:TextEvent):void
{
    text1 = answerInput.randomText.text;
}

function goToFrame9(event:MouseEvent):void
{
    trace(text1);
removeChild(answerInput);
}

1 个答案:

答案 0 :(得分:1)

尝试使用KeyboardEvent.KEY_UP事件代替TextEvent.TEXT_INPUT。按下键然后释放后,KEY_UP事件将触发。您添加事件侦听器的对象将需要焦点,但您的文本字段将具有焦点,因为您必须单击文本字段以键入其中。

function goToFrame8(event:MouseEvent):void
{

    addChild(answerInput);
    answerInput.x = 350;
    answerInput.y = 350;


    //next 'frame' button
    addChild(next8);
    next8.x = 650;
    next8.y = 520;
    next8.addEventListener(MouseEvent.CLICK, goToFrame9);


    answerInput.randomText.addEventListener(KeyboardEvent.KEY_UP, inputEventCapture);
}


function inputEventCapture(event:KeyboardEvent):void
{
    text1 = answerInput.randomText.text;
}

function goToFrame9(event:MouseEvent):void
{
    trace(text1);
    removeChild(answerInput);
}