先日、カタカナ入力制限でお世話になりました。
これは、うまくいったのですが複数の入力テキストに同じ入力制限をしたい場合、インスタンス名を同じにしてもはじめのひとつしか入力制限通らないので、全てのインスタンス名を変えることにしました。
全部で81個あります。そこで以下のように変数を使って81個のインスタンスに対し同じ入力制限をしようと以下のように試みましたが、これが通りません。
たぶん、基本的なところで間違いをおかしているのか?
または、変数を使わないで1個ずつ記述するべきなのか悩んでいます。よろしく、お願いします。
num = 1;
while (Number(num)<82) {
set("ans", "an"+num+"_txt");
"ans".maxChars = 1;
"ans".restrict = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミヌメモヤユヨラリルレロワンガギグゲゴザシズゼゾダヂヅデドバビブベボパピプペポ";
num = Number(num)+1;
}
No.1ベストアンサー
- 回答日時:
文字列からインスタンス等を参照する時は、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 = "ア-ン^ァィゥェォッャュョヰヱヲ";
このように、除外文字に追加してください。
早々のお答え、ありがとうございました。
ばっちり、うまくいきました。
助かりました。
まだ、他にも悩みたくさんなので、改めて別で質問させていただきます。
No.2
- 回答日時:
さすが#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として出てくる必要もなかったように思いますが,前回の言い忘れもかねて回答の補足です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(SNS・コミュニケーションサービス) 大至急お助け下さい。マストドンの或るインスタンスに登録したいのですが、ユーザー名で半角英数とアンダー 1 2023/08/25 10:33
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- HTML・CSS <input>のstep属性に違反する入力をした時にエラーメッセージを表示させない事は可能か 2 2023/02/16 04:11
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキスト入力での文字の判定
-
ランダムに4桁の数字を表示する...
-
Suzukaで一行ニュースティッカ...
-
テキストボックスにセルの値を...
-
VBAで改行の入ったデータの正規...
-
プログラミング、アーキテクチ...
-
テキストボックスの中身をリセ...
-
【Photoshop】レイヤー効果の境...
-
テキストエリア内の文字列にリ...
-
ipconfig /releaseって何ですか?
-
【VB.NET】別Formのボタンが押...
-
【ExcelVBA】ファイル名をセル...
-
SNMPの標準MIBについて
-
フォームのテキストの入力数字...
-
Access2000 実行時エラー '3061':
-
IP Address 入力フォームについて
-
FLASHのActivescriptでオブジェ...
-
photoshopで書いた四角の枠の中...
-
VB.NETで数十行のプログラムを...
-
YOASOBI
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ランダムに4桁の数字を表示する...
-
flashのおみくじのような(4桁...
-
スクロールバーの自作の仕方
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
YOASOBI
-
VBScriptでMsgBoxのYesNoボック...
-
プログラミング、アーキテクチ...
-
python ボタンを押すと複数の関...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
五芒星は、悪魔崇拝とどういう...
-
else if文の順序を変えることに...
-
変数に256文字以上のテキストを...
-
RPG(AS400)の本、サイトってあ...
-
PYTHONのtkinterについて
-
Pythonのtkinterについて
-
ダブルクリックと2回クリックの...
-
シンボル化解除の方法
おすすめ情報