Flexを遮蔽し、マウスの右ボタンメニューをカスタマイズします.

3464 ワード

最近手持ちのプロジェクトはFlexマウスの右ボタンメニューを遮断して新しいflexマウスの右ボタンメニューをカスタマイズする必要があります.ContectMenu hideButiltInItemsを通じて、やはり私の要る効果に達しないで、あれはいまいましいいくつかのオプションはやはり存在して、ネット上で探して長くて、Google Codeの上にRight ClickManagerのプロジェクトがあることを発見しました.JavaScriptとActioriptの結合により、右ボタンを遮断し、actionscript登録方法を呼び出して、Flexで生成されたhtmlファイルを修正して、「wmode」、「opaque」、または直接index.templatect.を修正します.
    AC_FL_RunContent(  

            "src", "${swf}",  

            "id", "${application}",  

            "name", "${application}",  

            "width", "${width}",  

            "height", "${height}",  

            "align", "middle",  

            "menu", "false",  

            "wmode", "opaque",

         "quality", "high",  

            "bgcolor", "${bgcolor}",  

            "allowScriptAccess", "always",  

            "allowNetworking", "all",

         "type", "application/x-shockwave-flash",  

            "pluginspage", "http://www.adobe.com/go/getflashplayer"  

    );
自分の必要に応じて少し修正しましたが、画面によっては右ボタンのメニューが違います.Right ClickManager.asファイルで定義されているJavaScriptの中で、以下のように修正されました.
onIEMouse: function() {

	if (event.button ==2||event.button==0) {

	if(window.event.srcElement.id == RightClick.FlashObjectID &&RightClick.Cache == RightClick.FlashObjectID) {

		RightClick.call(); 

	}

	document.getElementById(RightClick.FlashObjectID).parentNode.setCapture();

	if(window.event.srcElement.id)

	    RightClick.Cache = window.event.srcElement.id;

	}

}
このようにして、FF 3、IE 6、漫遊、chrome 2でスムーズに通過できます.(PS:私のマシンではこれらのブラウザについては、他には予測されていません.)RightClikHandles.asは右ボタンメニューを統一的に管理するための一例クラスです.Right ClickMenuData.asは右クリックメニューの内容を格納するクラスです.RightClickRegister.asは実はFlexSprite.asを修正しました.使用説明:プログラムの入り口newでRight ClickRegisterは右ボタンを遮断しました.カスタム右ボタンが必要な画面に右ボタンHandleを登録します.
RightClickHandles.setHandleFunction(this, RightClickMenuData.Main_MIS,handle);

function handle(item:Object):void{

 trace(item.action);

}
Main_が現れますMISで指定されたメニューの内容は、メニューをクリックして、ハンドル方法を変更します.そして相手をクリックします.
また、もしあなたのプロジェクトがクライアントの中国語入力に対して高い要求があるなら、右ボタンに対してあまり期待しないでください.「wmode」や「opaque」が入っているので、属性に対しては、入力法に大きな影響を与えます.右ボタンを押した時のイベントフローの捕獲問題を解決したいですが、中国語が入力できないことに気づきました.後でソースコードをアップロードします.ソースはアップロードされました.ダウンロードアドレス1 ダウンロードアドレス2.
次の副作用を説明します.この方法を使ってFlexの中で右ボタンを遮蔽して、直接の結果は中国語の入力方法が正常ではないです.
転載は、FlexHome原文からのリンクを明記してください.http://flex.desizen.com/flex-custom-context-menu/
 
 
Google CodeにはRight ClickManagerのプロジェクトがあります.  右ボタン項目のソースコード