相互に依存するテキストフィールドが必要です。たとえば、角周波数(ω)と通常の周波数(f)のような2つの入力テキストフィールド、ω=2πfがあります。1つを変更すると、もう1つが変更されます。どうやってやるの?次に、テキストフィールドが空かどうかを確認するにはどうすればよいですか?
if (field.text=="")... // doesn't work
相互に依存するテキストフィールドが必要です。たとえば、角周波数(ω)と通常の周波数(f)のような2つの入力テキストフィールド、ω=2πfがあります。1つを変更すると、もう1つが変更されます。どうやってやるの?次に、テキストフィールドが空かどうかを確認するにはどうすればよいですか?
if (field.text=="")... // doesn't work
これを行うには2つの方法があります。フレームごとに呼び出されるある種の更新関数を使用して、各フィールドの現在の値を以前の値でチェックし、何かが変更されたかどうかを確認して、それに反応することができます。
private var tf1 : TextField = new TextField();
private var tf2 : TextField = new TextField();
private var tf1LastVal : String = "";
private var tf2LastVal : String = "";
public function update() : void
{
if(tf1.text != tf1LastVal)
{
tf2.text = //put your logic here
tf1LastVal = tf1.text;
}
else if(tf2.text != tf2LastVal)
{
tf1.text = //put your logic here
tf2LastVal = tf2.text;
}
}
これを行うもう1つの、そしてより良い方法(私の意見では)は、TextFieldsにイベントリスナーを追加することです。
//add this where you construct your TextFields
tf1.addEventListener(Event.CHANGE, onTf1Change);
tf2.addEventListener(Event.CHANGE, onTf2Change);
//end
private function onTf1Change(e : Event) : void
{
tf2.text = //your logic here;
}
private function onTf2Change(e : Event) : void
{
tf1.text = //your logic here;
}