在 Actionscript 中仅接受数字的 2 个文本字段之间切换启用/禁用

Posted

技术标签:

【中文标题】在 Actionscript 中仅接受数字的 2 个文本字段之间切换启用/禁用【英文标题】:Toggle enable/disable between 2 textfields which accept only numbers in Actionscript 【发布时间】:2015-05-21 04:50:13 【问题描述】:

我有 2 个文本字段,Tx1 和 Tx2 只接受数字。

我的要求

第一次 Tx1 和 Tx2 都应该启用="true"。 在 Tx1 中插入第一个数字时,Tx2 应启用="false"。 如果我删除号码,Tx1 & Tx2 应该是 enable="true" 然后如果我在 Tx2 中插入号码,Tx1 应该是 enable="false"。

可能的解决方案

我想我需要从键盘捕获数字键,然后使用 focusIn(event) 和 FocusOut(event)(也许)。我不知道如何只捕获数字键

【问题讨论】:

修正了一些语法和格式 Thnx @DerGolem 非常感谢... 【参考方案1】:

使用change 事件。

<s:TextInput id="tx1" restrict="0-9" change="tx1Changed()"/>
<s:TextInput id="tx2" restrict="0-9" change="tx2Changed()" y="50"/>

并检查两个 TextInput 中输入了多少位。

private function tx1Changed():void

    if (tx1.text.length > 0)
        tx2.enabled = false;
    else
        tx2.enabled = true;


private function tx2Changed():void

    if (tx2.text.length > 0)
        tx1.enabled = false;
    else
        tx1.enabled = true;

【讨论】:

Thnx @subdan 这要容易得多..!【参考方案2】:

FocusEvent 和 KeyBoardEvent 适合您的情况。

Tx1.restrict = "0-9";

限制输入字符

事件示例:

import flash.events.FocusEvent;
import flash.text.TextField;
import flash.events.KeyboardEvent;

Tx1.addEventListener(FocusEvent.FOCUS_OUT, Tx1FocusOutListener);
Tx1.addEventListener(KeyboardEvent.KEY_UP, Tx1KeyUpListener);
function Tx1KeyUpListener(e:KeyboardEvent):void 
    if (TextField(e.currentTarget).text == "1") Tx2.selectable = Tx2.visible = false;
    else Tx2.selectable = Tx2.visible = true;

function Tx1FocusOutListener(e:FocusEvent):void 
    if (TextField(e.currentTarget).text == "1") Tx2.selectable = Tx2.visible = false;
    else Tx2.selectable = Tx2.visible = true;

【讨论】:

你能再澄清一下吗...我的意思是删除 Tx1 值 Tx2 时的焦点事件和应该是 enable="true" 我在主评论中添加示例。

以上是关于在 Actionscript 中仅接受数字的 2 个文本字段之间切换启用/禁用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 文本框中仅接受整数 [重复]

是否可以在 Firebase 中仅接受来自我的应用程序的函数调用?

Win32 中仅接受文本框(编辑控件)中的字符和空格

ActionScript 2.0中 - 在通过Flashvars导致失去零传递数字数据

在 SQL 中仅选择特定字符之后的数字字符

从字符串中仅返回数字 0-9