メイン コーダーズルーム【スクリプト系】 Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sayuri | Åê¹ÆNo.11075 投稿日時: 2004-9-25 1:43 |
新米 居住地: 投稿: 5
使用環境:
WinXP FlashMX2004 |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 引用:
oKeyListener.onKeyDown = function() { これを削除するのにdelete(oKeyListener.onKeyDown)やdelete(this.onKeyDown)を試しただけです。thisにこだわりはありません。 そのほかの考えうるターゲットパスでやりましたがダメでした。 とりあえずこの方法が間違っているのはわかりますが、試してみました。 MCをクラス化というのは、MCをリンケージし、識別子と同じ名前のクラスを外だししているという意味です。
ともあれこのクラスでkeylistenerを定義し、setKeyEventを呼ぶたびにkeylistenerを削除、登録を行ってできました。 ありがとうございました。 |
野中文雄 | Åê¹ÆNo.11073 投稿日時: 2004-9-24 23:07 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 私の書いたスクリプトには、this.onKeyDownの定義は含まれていません。それを書き加えたということでしょうか?しかし、そうだとしても、this.onKeyDownの削除は、登録したリスナーを削除することにはなりません。
引用: sayuriさんは書きました: 「MCをクラス化」といわれる意味が、わかりません。リスナーオブジェクトを作成せず、MovieClipにthis.onKeyDownを定義し、そのインスタンスをKeyクラスのリスナーに登録したということですか?
引用: setKeyEventはMCをクラス化し、そのMCのfunction(このなかでリスナー登録)です。 |
sayuri | Åê¹ÆNo.11071 投稿日時: 2004-9-24 22:25 |
新米 居住地: 投稿: 5
使用環境:
WinXP FlashMX2004 |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 野中さんありがとうございます。
引用: ? フォーカスの順序は、TextField.tabIndexプロパティの値と関連づけて変更していますけど... んー、SetFocusなどを使わずにという期待だったのですが、とりあえずこれは気にしないでください。 「以下省略」のところに教えていただいたコードを記述してあります。そこにonKeyDownは記述してあります。同じfunction内にonKeyDownがあるのでthisで指定できると思っています。 setKeyEventはMCをクラス化し、そのMCのfunction(このなかでリスナー登録)です。 コンボボックスの値が変わるたびにこのfunctionを呼び出しています。 |
野中文雄 | Åê¹ÆNo.11070 投稿日時: 2004-9-24 21:04 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 引用:
野中文雄は書きました: ? フォーカスの順序は、TextField.tabIndexプロパティの値と関連づけて変更していますけど... 引用: sayuriさんは書きました: ご質問の状況やスクリプトの処理の流れが、わかりません。 Key.removeListener()メソッドで、登録したリスナーを削除していますか? 引用: sayuriさんは書きました: 「onKeyDown」というのは、どこに設定したコールバック関数を指しているのでしょうか? 引用: このスクリプトを呼ぶたびにonKeyDownを削除してみようとしたのですが、できませんでした・・・ つぎの登録をする前に、古いリスナーを削除すればよいはずです。 引用: どなたか2重登録を回避する方法を教えてください。 以下のスクリプトは、どこに記述されたものですか?「this.onKeyDown」のthisは、どこを参照しているのでしょうか?
|
sayuri | Åê¹ÆNo.11067 投稿日時: 2004-9-24 20:05 |
新米 居住地: 投稿: 5
使用環境:
WinXP FlashMX2004 |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] たびたびすみません。
先ほど教えていただいた方法でENTERでのフォーカス移動は実現できたのですが、1つまた問題が出てしまったのでよろしくお願いします。 たとえば、コンボボックスで選んだ値によってタブの順番や、タブで動けるオブジェクトを変化させようとしています。 コンボボックスで1のとき、 test1_txt→test2_txt コンボボックスで2のとき test1_txt→test3_txt→test4_txt のような感じです。 そこで、下記の方法でコンボボックスの値がchangeするたびに配列内の値を変化させたのですが、addLisnerが2回きいているのか、1回ENTERをDownすると2回反応してしまいます。。 このスクリプトを呼ぶたびにonKeyDownを削除してみようとしたのですが、できませんでした・・・ どなたか2重登録を回避する方法を教えてください。
|
sayuri | Åê¹ÆNo.11065 投稿日時: 2004-9-24 17:20 |
新米 居住地: 投稿: 5
使用環境:
WinXP FlashMX2004 |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 野中さん早速の返信ありがとうございます。
やはりこのようなやり方しかないようですね。 「効率的」というのはtabIndexと関連付けられたりできればなと、淡い期待をもっていたもので。。 とりあえずこの方法で強引にやってみたいと思います。 |
野中文雄 | Åê¹ÆNo.11058 投稿日時: 2004-9-24 16:32 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ENTERキーでフォーカス移動[from: 迷える子羊の部屋] 「ENTERキーでフォーカス移動」(迷える子羊の部屋)より移行しました。
「効率的」というのが、フォーカスするTextFieldの追加が楽なようにという意味でしたら、配列に格納して処理をすればよいでしょう。
引用: sayuriさんは書きました: |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |