0

入力テキストを 8 倍することを含む Flash Actionscript 2 でアプリを作成しようとしています。6 つのテキスト ボックスがあります。半分は入力、半分は動的です。ユーザーが数字を 1 つに入力すると、対応するものの出力は元の量の 8 倍に変化するはずです。(ただし、中央のテキスト ボックスとそれに対応するテキスト ボックスは、互いに等しいままです。)

ユーザーが常にボタンを押す必要がないように、フレームの外側に「コントロール パネル」ムービークリップを配置しました。基本的には 2 つのフレームがあり、1 つには必要なタスクが含まれているため、基本的には 24 fps で 1 秒あたり 12 回実行されます。

これで、等しい中央​​のテキスト ボックスが正常に機能します。最初の中間のものを 6 に変更できます。2 番目は 6 になります。他の番号でも同じです。しかし、他の 2 セットのテキスト ボックス (8 倍になるもの) は、常に NaN として表示されます。

アプリの起動時に、すべての入力テキスト ボックスの値を 0 にします。不思議なことに、動的も 0 でした。入力テキスト ボックスを 2 から開始してみましたが、確かに動的なものは 16 でした。しかし、入力に触れた瞬間に NaN になりました。明らかに、これは問題が入力からの文字列にあることを意味します。

整数に変換する前に、入力の 1 つから文字列をトレースしてみました。3 を入力してトレースすると、予想どおり「3」ではなく、次のようになりました。

<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="18" COLOR="#000000" LETTERSPACING="0" KERNING="0">3</FONT></P></TEXTFORMAT>

それが明らかに問題です。修正方法がわからないので、出力は「3」または数字が何であれ。

変数は次のとおりです。

• NTO_x = input that will be multiplied by 8 
• NTO_y = input that will not be changed 
• NTO_z = input that will be multiplied by 8 
• OFN_x = output of NTO_x 
• OFN_y = output of NTO_y 
• OFN_z = output of NTO_z

コードは次のとおりです。

シーンのフレーム:

//Sets the textboxes to number-only
NTO_x.restrict = "0-9";
NTO_x = "0"
NTO_y.restrict = "0-9";
NTO_y = "0";
NTO_z.restrict = "0-9";
NTO_z = "0";`

「コントロール パネル」ムービークリップの 2 番目のフレーム:

//Multiplies x and z by 8
_root.OFN_x = Number(_root.NTO_x) * 8;
_root.OFN_y = _root.NTO_y;
_root.OFN_z = Number(_root.NTO_z) * 8;
4

1 に答える 1

0

InputTextbox (InputTextbox の変数を持つ入力ボックスです)

TimesEight = _root.InputTextbox * 8;

変数でダイナミック テキスト ボックスに「TimesEight」という名前を付けます。

例を添付できますが、このようなことを理解できない場合は、さらに調査を行います....

于 2013-06-04T04:09:08.930 に答える