タイトルの通りです。
まずマウスでmc1をクリックと「クリックしている」と表示されるのですが、そのままクリックした状態でなにかのキーを押すと「クリックを離した」とでてしまうのです。
_root.mc1.onPress = function(){
trace("クリックをしている")
}
_root.mc1.onRelease = function(){
trace("クリックを離した")
}
クリックを押下し続けている間は「押し続けているのだ」という情報を得る方法はないのでしょうか?
No.1ベストアンサー
- 回答日時:
その現象はムービープレビューの時だけ起こるのではないでしょうか?
ムービープレビューで、「キーボードショートカットを無効」(プレビュー時の「制御」メニュー内にあります)にチェックを入れてプレビューしてみてください。
スタンドアロンプレイヤーやブラウザでは trace アクションが無効になるので、視覚的に分かりやすい例で実験してみるとしましょう。
ムービークリップシンボルを1つ、用意します。
シンボルのタイムラインのフレーム1に青い丸、フレーム2に赤い丸を描き、それぞれのフレームに stop(); を入れてください。
できたシンボルのインスタンスをステージに配置し、インスタンス名を付けます。ここでは仮に” mc1 ”とします。
下記のスクリプトをメインのタイムラインのフレームに書き、プレビューしてみてください。
mc1 をクリックすると、(ムービークリップの)フレーム2に描かれている赤い丸が表示され、そのマウスボタンを離すとフレーム1の絵である青い丸に戻り、←と→キーで左右に動く・・・という、単純な動作のスクリプトです。
(↓各行頭に全角のスペースが入っています。コピーする際はご注意ください)
/*クリックで絵を切り替え、離した時に元に戻す*/
mc1.onPress = function()
{
this.gotoAndStop( 2 );
};
mc1.onRelease = function()
{
this.gotoAndStop( 1 );
};
/*方向キーで移動*/
mc1.onEnterFrame = function()
{
var spd = 5;
//← →キーで左右に移動
if( Key.isDown( Key.LEFT ) )
{
this._x -= spd;
}
if( Key.isDown( Key.RIGHT ) )
{
this._x += spd;
}
};
「キーボードショートカットを無効」にチェックを入れた時は、mc1 をクリックしながら←または→キーを押しても青(=フレーム1の絵)には戻らず、位置だけが変化します。
しかし、「キーボードショートカットを無効」のチェックが外れている時は、mc1 をクリックしている間に何かキーを押すと勝手に青に戻ってしまいます。
パブリッシュしてスタンドアロンプレイヤーかブラウザで見ると、ショートカットを無効にした時と同じ動作になります。
つまり、キーボード操作により release イベントが勝手に発生するのは、単にプレビュー時にキーボードショートカットが有効になっていることが原因と思われます。
上記の例はフレームを切り替える動作でしたが。
例えば、フラグを用意して、press イベント発生時に true 、release イベント発生時に false に書き換えるようにします。
あとはこのフラグの値を if 文で判別すれば、「マウスのボタンが押されている」という状態を検出できます。
---------------------------------------------------------------
press 等のボタンイベントを利用するムービークリップは、「選択できる、いわゆるボタン同様のオブジェクト」ということで、キーボードでも選択できるようになるなど様々な意味で特別な存在になります。
Flash で作るメニュー画面やリストなどでは、キーボードでもボタンを操作できた方が便利です。
しかし、ゲームのように操作方法を制限したい場合は、ムービークリップがボタンオブジェクトになっていると思わぬところで意図しないイベントが発生してしまい、妙な不具合の原因になることがあります。
単純にマウスボタンが押されているかどうかを判断したいだけなら、press と release よりも mouseDown と mouseUp イベントの方がオススメです。
mouseDown と mouseUp はボタンイベントではないので、これらを利用するムービークリップはボタンオブジェクト扱いにはなりません。
mouseDown と mouseUp はムービークリップのイベントですが、press とは違い、そのムービークリップの上でマウスのボタンが押されていなくても発生します。
Flash Player 6 以降であれば、_root.onMouseDown = function・・・という書き方で _root の mouseDown / Up イベントを借りることができますから、マウス操作を検出するためだけのムービークリップを隠しておく必要もなくなります。
他にも、マウス関連の処理を専門に担当する Mouse クラス( Flash MX ではオブジェクト)もあります。
ムービークリップと同様に onMouseDown や onMouseUp というイベントハンドラがあり、機能や使い方はよく似てます。
機会がありましたら研究してみてください。
・ Flash ドキュメンテーション: Mouse クラス
http://livedocs.adobe.com/flash/8_jp/main/000024 …
おお!そうだったんですか!
てっきりプログラムのエラーかと思っていたのですが、そういう仕様の問題だとは少しも考えていませんでした。
この回答をもらわなければ危うくあと何時間もこの問題に悩まされるところでした。
本当に感謝いたします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) AutoHotKeyで、キーボードにマウスの右クリックを割り当てられる? 1 2023/03/30 00:23
- フリーソフト AutoHotKey 「Tabを押し続ける → 右クリックを押し続ける」は出来る?? 2 2023/05/05 14:36
- Windows 95・98 Windows11にバージョン アップしました。 2 2023/07/21 18:36
- マウス・キーボード マウスの左クリックを長押しした際に、”長押しだと判定”されるまでの時間を設定したいです。 3 2023/01/09 11:40
- iOS Gragebandでのみ左クリックが有効にならない 1 2022/08/19 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- その他(Microsoft Office) EXCEL2007 右クリックに「値を貼り付け」がない プライベートのパソコンを購入し(window 3 2022/04/13 23:10
- Windows 10 Win10の起動画面でフリーズすることがあります。どのような原因が考えられますか? 3 2023/04/26 20:21
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- ノートパソコン PCのshift+右クリックについて 2 2022/08/22 08:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
new演算子について教えていただ...
-
uwscでExcelに自動記入
-
potplayerについて質問です
-
Form内のselectを連動させるに...
-
pptxをPDFで保存すると、90%サ...
-
レジリエンス 変換キーが作動し...
-
スマホでサイトの画像を長押し→...
-
アメブロで音声ファイルを貼る方法
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Flashをブロックしないで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
×ボタンを無効化したいのですが...
-
arduino プログラムについて
-
マウスオーバーで色が薄くなる...
-
FLASH ボタンフォーカスインし...
-
ボタンインスタンス内のムービ...
-
swapDepths について
-
buttonModeでボタン化したもの...
-
ボタンをクリック後、画像を表...
-
FlashCS4でボタンにフィルター...
-
移動位置が狂ってしまう
-
ボタンへのアクション設定に関...
-
attachMovie後のプロパティ参照
-
スライドプレゼンテーション機...
-
getURLの使い方
-
ボタンが正常に動作しない。
-
VB 基本的なプログラム √ ...
-
Flash ActionScriptで画像の読...
-
Flashによる「メニュー」作成
-
ボタンの重ね順について
-
Flash ActionScript3でHPを作成...
おすすめ情報