問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:5 / 状態:解決済み / No:117 / ATOM
1 名前:TB 日付:2013/09/18(水)00:23:57 ID:a+13XmqWyjYT
http://hakuhin.jp/as/menu.html#MENU_02
で示されている「コンテキストメニューが表示されるか調べる」で、
右クリックすると基本的にすぐキャラが動くのですが、
数回に一回はコンテキストメニューが表示されしばらくしてからキャラが動きます。
示されているコードと同様のものを自分のFLASHにコピペしても同様の症状が出ます。
onClipEvent (enterFrame){
  if(Key.isDown(2)) trace(1);

としても反応してくれません。
どうすれば右クリック毎に反応するプログラムを組めますか?
parafla!で組んでいますので、ActionScript1.0でお願いします。
2 日付:2013/09/21(土)00:17:39 ID:uqGvQ4UrzKin
コンテキストメニューを表示すると、Flash Player が完全に停止、もしくは1秒近く停止する事があるようですね。
恐らく仕様という事で、回避は難しいのではないでしょうか。
3 日付:2013/09/21(土)00:19:37 ID:uqGvQ4UrzKin
Web 限定ですが、JavaScript からコンテキストメニューの表示を無効化する事ができます。

-------------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<body>

<div id="container" style="border:1px #000 solid; width:400px; height:300px;">
<embed
id="flash"
src="mouse.swf"
quality="high"
bgcolor="#ffffff"
width="100%"
height="100%"
align="middle"
wmode="opaque"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
/>
</div>

<script type="text/javascript">
<!--
var element_container = document.getElementById("container");
var element_flash = document.getElementById("flash");

// ------------------------------------------------------------
// コンテキストメニューの表示を無効化
// ------------------------------------------------------------
if(window.addEventListener){
element_container.addEventListener("mousedown",function (e){
if(e.button != 2) return;
e.preventDefault();
e.stopPropagation();
},true);
element_container.addEventListener("contextmenu",function (e){
e.preventDefault();
});
}else{
element_flash.onmousedown = function(e){
if (!e)e = window.event;
if(!(e.button & 0x0002)) return;
element_container.setCapture();
}
element_container.onmouseup = function(e){
element_container.releaseCapture();
}
}
//-->
</script>
</body>
</html>
-------------------------------------------------------------------------------------------------------

マウス右ボタン押下の情報は、JavaScript から取得し Flash に渡すことができます。
http://hakuhin.jp/js/mouse.html#MOUSE_06
http://hakuhin.jp/as/javascript.html
4 名前:TB 日付:2013/09/21(土)01:58:24 ID:R7ohVkkk1JaZ
なるほど、仕様ですか・・・でしたら仕方がないですね。
右クリックに独自のコンテキストメニューを作っているので
ご提示いただいたJavaScriptの方法も今回は使えそうにありませんね。
大変参考になりました。
お忙しい中わざわざありがとうございました。
5 名前:状態変更 日付:2013/09/21(土)01:59:04 ID:R7ohVkkk1JaZ
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2013/09/18(水)00:23:57
投稿終了日 :
2013/09/28(土)01:59:15
投稿者 :
TB
レス総数 :
5
スレッド番号 :
117
MondoCollectionSystem ver.0x00020000 by Hakuhin