メイン コーダーズルーム【スクリプト系】 replaceSelに引数を指定しなかったらどうなるんでしょう? | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tussy24 | Åê¹ÆNo.27884 投稿日時: 2006-8-15 1:08 |
新米 居住地: 神奈川県 投稿: 10
使用環境:
Home SP2 / Professional |
replaceSelに引数を指定しなかったらどうなるんでしょう? お世話になります。
動かないという話ではないのですが、どうも腑に落ちないので 識者の皆様にご教示いただければと思い、投稿させていただきました。 FlashMXで、サンプル集を見ながら、「電卓」を作っています。 テキスト入力フィールド(インスタンス名:Field)に Selection.setFocusでフォーカスしてから、 キーボードからの数値入力を取得して、Fieldに表示させます。 そして、四則演算のいずれかの記号のキーが押されたら、 Field内の数値を計算用エリアに退避させます。 退避させた後、サンプル集のScriptには次のように書かれています。 Selection.setSelection(0, 11); _root.Field.replaceSel(); 四則演算の記号が押された時に実行するfunctionの中身は、 上記の2行で終わっています。 したがって、この時点で次の数値の入力を待っている形になります。 自分なりにいろいろ調べてみて、 Selection.setSelectionで、表示されている数値をドラッグして選択した状態にしているので、 次に数値を入力する時は、それまでの数値に上書きする形で入力されるため、 新たに数値を入力しているように見えるのだ、ということは分かりました。 (初めは、replaceSel()の代わりにField.text = ""などとやってみたら、 次の数値を入力する前に前の数値が消えてしまうため、 電卓らしい雰囲気にならずに随分悩みました。 Fieldが電卓らしく(?)黒いベースの上に白い文字で表示するようになっているため、 選択されているかどうかがまるで分からなかったのです) そこで、腑に落ちないのがreplaceSel()の一文です。 引数を指定すれば、中の文字が引数のそれに差し替わり、 Field.textも引数のそれになるのは分かりますが、 引数を指定していないこの一文は、どういう働きをしているのでしょうか。 また、何のためにあるのでしょうか・・・? ちなみに、試しにこの文をコメントアウトして実行しても、 動作に違いは見られませんでしたが、 もしかしたら、何か役割があるのかもしれません。 一般的に、引数を指定しない場合どういう結果になる、という 概念的なものだけでも結構でございます。 奇妙な質問で本当に恐縮ですが、 何卒よろしくご教示のほどをお願い申し上げます。 |
野中文雄 | Åê¹ÆNo.27890 投稿日時: 2006-8-15 14:20 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: replaceSelに引数を指定しなかったらどうなるんでしょう? 私の環境で以下のスクリプトを、単純に作成したテキスト入力_root.Fieldインスタンスに適用してみても、何の変化もありませんでした。
引用: tussy24さんは書きました: 上述の結果と併せて考えれば、このステートメントは無意味だと思われます。特定のバージョンや状況に対応した不具合回避の処理ということもありえないとはいえませんが、可能性はかなり低いでしょう。 引用: ちなみに、試しにこの文をコメントアウトして実行しても、 |
tussy24 | Åê¹ÆNo.27898 投稿日時: 2006-8-15 17:01 |
新米 居住地: 神奈川県 投稿: 10
使用環境:
Home SP2 / Professional |
ありがとうございました 野中文雄様、早々のご返信ありがとうございます。
やはりそうでしたか。 修業中の身からすれば、まぎらわしいScriptは入れないでほしいなあと思うのですが、 もしかすると、最初は何らかの形でreplaceSelを使っていたのを、 Selection.setSelectionを利用する形に変更した結果、 そのまま忘れられてしまったのかもしれませんね。 引数がなくてもエラーにならないところが なんとなく不思議ですが、ただ単に無視されるということなのでしょうね。 ともあれ、ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |