プロが教える店舗&オフィスのセキュリティ対策術

先日、カタカナ入力制限でお世話になりました。
これは、うまくいったのですが複数の入力テキストに同じ入力制限をしたい場合、インスタンス名を同じにしてもはじめのひとつしか入力制限通らないので、全てのインスタンス名を変えることにしました。
全部で81個あります。そこで以下のように変数を使って81個のインスタンスに対し同じ入力制限をしようと以下のように試みましたが、これが通りません。
たぶん、基本的なところで間違いをおかしているのか?
または、変数を使わないで1個ずつ記述するべきなのか悩んでいます。よろしく、お願いします。
num = 1;
while (Number(num)<82) {
set("ans", "an"+num+"_txt");
"ans".maxChars = 1;
"ans".restrict = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミヌメモヤユヨラリルレロワンガギグゲゴザシズゼゾダヂヅデドバビブベボパピプペポ";
num = Number(num)+1;
}

A 回答 (2件)

文字列からインスタンス等を参照する時は、eval 関数か配列演算子 [ ] を使います。


例えば、_root 階層(ステージ)にあるテキストフィールド ans1_txt ~ ans81_txt 全てに同じ字数制限と入力可能文字を設定するなら、メインのタイムラインのフレームに

(↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります)


 for( i = 1 ; i <= 81 ; i++ )
 {
  _root[ "ans" + i + "_txt" ].maxChars = 1;
  _root[ "ans" + i + "_txt" ].restrict = "ア-ン^ァィゥェォッャュョ";
 }


で、いかがでしょう。


restrict では、一部の文字を制御記号として利用できます。 - が範囲、^ が、この記号から先に指定されている文字を除外するという意味です。
つまり上記のスクリプトの restrict は、”ア~ンまでの文字を入力可能にする。ただし、^ から先の文字(ァィゥェォッャュョ)は除く”との意味になります。
全角文字や濁点・半濁点を含む文字も範囲指定で制限できるのか不明だったのですが、ざっと試してみたところ、これでも問題なく制限できているようです。

ちなみに上記の指定では、ワ行のヰ・ヱ・ヲは入力可能になります。
これらを入力不可にするには、

 _root[ "ans" + i + "_txt" ].restrict = "ア-ン^ァィゥェォッャュョヰヱヲ";

このように、除外文字に追加してください。
    • good
    • 0
この回答へのお礼

早々のお答え、ありがとうございました。
ばっちり、うまくいきました。
助かりました。
まだ、他にも悩みたくさんなので、改めて別で質問させていただきます。

お礼日時:2005/09/07 19:28

さすが#1のDPEさん。


足し算でダメなときは引き算で行けばよかったのですね。勉強になりました。
そう言えば,中学校の頃に数学の "集合" というのでそう習いました(/-\*) 。

ところで,ひらがなカタカナの文字の範囲指定ですが,

漢字コード表
http://www.rtpro.yamaha.co.jp/RT/docs/misc/kanji …
(漢字ひらがなカタカナ以外は http://e-words.jp/p/r-ascii.html

にあるような順で考えれば良いと思います(?)。

※以下(?)は全く自信なし,「たぶん」の意味です。

 ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク
 グ ケ ゲ コ ゴ サ ザ シ ジ ス ズ セ ゼ ソ ゾ タ
 ダ チ ヂ ッ ツ ヅ テ デ ト ド ナ ニ ヌ ネ ノ ハ
 バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ マ ミ
 ム メ モ ャ ヤ ュ ユ ョ ヨ ラ リ ル レ ロ ヮ ワ
 ヰ ヱ ヲ ン ヴ ヵ ヶ

以前,単なる羅列方法を回答したとき,『「ヴ」 を忘れていた!』と思ったのですが,気付いたのが遅かったです。すみません。

_root[ "ans" + i + "_txt" ].restrict = "ア-ン^ァィゥェォッャュョヰヱヲ";

とした場合も,上記表で行くと,「ヴ」 は 「ン」 の後ですので,「ヴ」は除外されます(?)。
ここのところの「ヴ」が必要かどうかを今一度確認してみてください。
環境を変えてもこの順でOKだと思います(?)。

あと 「ヮ」 なんていう字もあるようです。
どこで使うのでしょう…? 顔文字かな…(#⌒ヮ⌒#)ゞ?

自信なしのことばかりなので,#2として出てくる必要もなかったように思いますが,前回の言い忘れもかねて回答の補足です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!