FlashによってDiv層が遮られます.

2354 ワード

回転:http://www.cnblogs.com/smile361/archive/2012/10/31/2747614.html
 
FussionChartsを適用する過程で、ページのDiv層がflashによって遮られることがあるかもしれません.筆者はアプリケーションの過程でこのような状況が発生しました.当時はFusion Chartsのflashによって日付コントロールが遮られました.この問題の解決方法は簡単です.
 
普通のflashを透明に保つ設定はflashのプロパティtransparentをwmodeに設定していると知っていますが、Fusion Chartsでは統計用のflashを直接設定することはできません.でも、嬉しいことに、Fusion Chartsはそのjsファイルの中に設置場所を提供しています.FusonCharts.jsをオープンして、30行ぐらいのところでPars.Parsを見られます.(「allowScript Access」、「always」)などの設定例文がありますが、ここはflash属性を設定するところです.
this.addParam('wmode', 'transparent');
それだけでいいです.そのほかに、「transparent」を設定する方法があります.
setTransparent: function(isTransparent)
同じように、私達はset Transparentを呼び出してflashの透明な目的を達成することもできます.
 
divのレイヤーはdivのstyleのz-indxによって決まります.i-indxはレイヤーの垂直スクリーンの座標で、0が最小で、大きいほど位置が上になります.
FussionChartsのグラフはdivに配置されていますので、もしページに他のdivがあれば、Fusion Chartsのレイヤーによってブロックされます.しかし、z-indxを設定するのは機能しません.他のdivはまだブロックされています.インターネットで調べたら、元のようなことが分かりました.
flashの図はデフォルトでは常に最上段に位置しています.以下の文書を参照してください.
NOTE:他のブラウザをサポートします.//embedノードにwmode値を追加します.windowモードのデフォルトの場合の表示モードは、このモードでflash playerが自分のウィンドウのハンドルを持っています.これはflashムービーがWindowsの中にある表示例であり、ブラウザの核心表示ウィンドウの上にあることを意味します.だからflashはブラウザに表示されているようですが、これもflash最速で最も効率的です.レンダリングモードです.彼はブラウザから独立したHTMLレンダリングの表面ですので、デフォルトの表示方式ではflashはいつも彼と重なるすべてのDHTML層を隠します.しかし、多くのアップルブラウザーはDTML層をflashの上に表示させることができますが、フラッシュムービーが放映されると、DHTML層がflashに飛ばされたように異常な現象が現れます.Opaqueモードはウィンドウがないモードです.この場合はflash playerは自分のウィンドウのハンドルがないので、ブラウザにflash playerがブラウザのレンダリング表面に描く時間と位置を教えなければなりません.この場合はflashムービーはブラウザHTMLより表面ではなく、他の要素と同じページにあります.したがって、z-indx値を使うことができます.DHTMLはカバーflashまたはカバーされています.Transparentモードは透明モードです.このモードでflash playerはステージの背景色alpha値を0にして、stage上で実際に見えるオブジェクトだけを描きます.また、z-indxを使ってflash映画の深さ値をコントロールすることもできますが、Opaqueモードとは違います.flash動画の再生効果を低減します.また、9.0.15以前のflash playerバージョンでは、wmode="opaque"または"tranparent"を設定するとフルスクリーンモードが無効になります.様々なモードの実現方法と意味を知ると、今後の開発において、具体的な状況に応じて、wmode属性を設定する値を選択することができます.
 
だからflashのwmodeをopaqueに設定すればいいです.だからページにFusion Chartsのグラフをロードする時、パラメータwmodeを修正して、flashのjsコードにこのchart.addParam(「wmode」、「Opaque」)を追加すればいいです.