![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちわです。
タイトル通りなのですが、
JSでは、
function kdown(e) {var msg =""; var flg = 1;
switch(window.event.srcElement.tagName){
case "INPUT" :if(event.srcElement.type != "text" && event.srcElement.type != "password"
&& event.keyCode!=9 && event.keyCode!=16 && event.keyCode!=32){return false;}else{flg=0;}break;
case "TEXTAREA" :flg = 0;break;
case "SELECT" :flg = 0;break;
case "A" :flg = 2;break;
}
switch(event.keyCode){
case 8 :msg = "BS";break;
case 78 :if(event.ctrlKey){msg = "Ctrl+N";}break;
case 82 :if(event.ctrlKey){msg = "Ctrl+R";}break;
case 116 :msg = "F5";break;
case 122 :msg = "F11";break;
}
if(event.altKey){msg = "Alt";}
if (flg == 0 ){switch(event.keyCode){case 8 :msg = "";break;case 13 :msg = "";break;}}
else if (flg == 2 && event.keyCode==13)msg = "";
if(msg != ""){event.keyCode = 0;return false;}else{return true;}
}
document.onkeydown = kdown;
こんな感じに制御するのを、
アクションスクリプトで制御出来ますか?
HTMLにこのJS埋め込んでも、FLASHの所クリックして、
各キー押すと意味なくなってしまうので・・
F5やF11など使用されたくないのですが・・・
入れ替えなどでも良いのですが。。。
宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?5a7ff87)
No.1
- 回答日時:
>> こんな感じに制御するのを、
>> アクションスクリプトで制御出来ますか?
実際にHTMLに書かれている JavaScript を書き込んで,実験してみました。
たしかに,「F5(リロード)」も「F11(ウィンドウの最大化)」も阻止できますね。
>> HTMLにこのJS埋め込んでも、FLASHの所クリックして、
>> 各キー押すと意味なくなってしまうので・・
これも,実際に検証できました。
上で作った HTML に 何でもない Flash を貼り付けて,
Flash をクリックして Flash に フォーカス を移した場合,上の制御は無効になります。
しかし,
どのような仕組みで,F11 などを無効にしているのでしょうか。
その原理がわかりません。
変数 msg に適当な値を入れるようにスクリプトを組んでおくと,
そのスクリプトが優先されるので,自動的に F11 が無効になるのでしょうか?
もし,そういう原理だと Flash には通用しないと思います。
ステージ上に msg という変数名のダイナミックテキストを作成し,
ステージ上に適当な ムービークリップ を別に作って,
そのムービークリップに次のようなスクリプトを書くと,変数名 msg のダイナミックテキストには
"F11" が表示されるのですが, F11キーは無効にはなりません。
------------------------------------
onClipEvent (enterFrame) {
// 押したキーが "F1" のとき
if (Key.getCode() == 122) {
_root.msg = "F11";
}
}
------------------------------------
また,次のように書いた場合は,
他のキーでは大丈夫ですが, F5 や F11 には全く通用しません。
つまり "F11" すら表示されません。
------------------------------------
onClipEvent (keyDown) {
// 押したキーが "F1" のとき
if (Key.getCode() == 122) {
// _root.msg = "F11"
}
}
------------------------------------
まず,優先されるのは,
ブラウザのキー操作だと思います。
onClipEvent (enterFrame) のときは,
Flash からも 後からキーを拾えるので,表示だけは可能なようです。
Flash で キー は拾えますが,
それと,キー操作を無効にするのとは別なようです。
JavaScript は詳しくないもので,よくわからないのですが,
何か特殊な仕掛けをつくられているのでしょうか,
それとも,
キーを押したときに JavaScript で無意味な動作をするようにしておけば,
勝手に ブラウザ直 より JavaScript の方が優先されるので,
ブラウザに対してのキー操作が無効になるのでしょうか。
Flash は Flash 内に関してのみ色々できますが,
Flash 外のことに関しては,ブラウザやJavaScriptを優先するようにできているので,
ActionScript ではできないような気がします。
Flash には Windowクラスも,(HTMLをdocmentとした場合の)Docmentクラスもありません。
おかげで,Flash自体の大きさを変えたり,Flashの背景色を変えることすら,ActionScript では不可能です。
逆に,Flash自体の大きさを変えたり,Flashの背景色を変えることは JavaScript ではできます。
Flash は内弁慶なのです。
だから,なんとなく,要望されていることは不可能なような気もします。
自信はありませんが一応,回答の一種を書かせていただきました。
参考URL:http://hakuhin.hp.infoseek.co.jp/main/as/key.html
この回答への補足
こんばんわです。
大切な時間割いて頂きありがとうございます。
JSで書いてるのは、sassakunさんが言うような原理でだいたい合ってます。
私はまだFLASHについて、まだまだ勉強不足なので、
難しい事は言ったり出来ませんが・・・
質問してから、色々自分なりに調べた所、
あるサイトで、HTMLにFLASH埋め込んでるにも関わらず、
FLASHの所クリックしてF11やF5など押した場合は無効化されてるようなサイト発見したのですが、
原理的に?
一致しないキー?は無効化。
みたいな判定してるのではないかと思ったのですが・・・
私の無いに等しい知識では、特定までは出来なかったので・・・
例のサイト下記になります
http://homepage3.nifty.com/j_town/flashtype/1-1. …
大変申し訳ないですが、また助言頂けたら助かります。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Win32APIにて、ウィンドウ全体...
-
LoadImageを使ったアイコンファ...
-
なぜCreateHatchBushの設定が途...
-
Win32のファイルダイアログのサ...
-
プログラミングでエラーが出ま...
-
質問なのですが・・・
-
C言語win32api、エディットボッ...
-
1と表示させたいが12と表示される
-
なぜhButton1ボタンからのWM_CO...
-
WM_KEYDOWNでPrtScを捕まえる方...
-
エラー Run-Time Check Failur...
-
COMPORTマルチスレッドで例外発生
-
コンソールアプリケーションの...
-
この列挙体でsysjanの関数はあ...
-
C++で質問です。
-
Win32APIでウィンドウを中央に...
-
c言語のリダイレクトによる円...
-
Enterキーを押されたら次の処理...
-
「指定されたキャストは有効で...
-
エクセルのクイックアクセスツ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Win32APIでウィンドウを中央に...
-
エラー Run-Time Check Failur...
-
コンソールアプリケーションの...
-
MessageBoxについて
-
画像を表示したいのですが……
-
【Windowsアプリ】ファイルのド...
-
PeekMessageについて
-
キャレットの現在位置の表示 (W...
-
C言語win32api、エディットボッ...
-
ボタンの色(WINAPI)
-
Win32APIにて、ウィンドウ全体...
-
音量調節
-
エディットコントロール入力時...
-
ダイアログプログラムでEnterキ...
-
不明なエラー
-
C++のcase文の書き方
-
オーバーレイみたいな処理がしたい
-
ゲームとかの解像度変更&全画...
-
WM_CREATE について
-
LoadImageとSetCursorについて
おすすめ情報