私は自分のFlashムービーにロードするSWFファイルを持っていて、それらのSWFファイルには、ムービーのダイアログやボタン。私はロードされたSWFのマウスイベントハンドラを一時的に無効にしたい、またはそれらが私のフラッシュムービーに影響を与えないようにブロックしたいと思います。私のフラッシュムービーはAS 2です。Flash:外部から読み込まれたSWFに対してすべてのマウスイベントを一時的に無効にしたりブロックしたりするには
答えて
ActionScript 2のこの種の問題に対する一般的な解決方法は、しばしば「ブロッカー」クリップと呼ばれるものです。完全に透明な塗りつぶしで構成されるムービークリップを作成するだけです。次に、いつでもどこでもこのムービークリップを配置し、必要に応じてサイズを変更できます。最後に、あなたはこのクリップにダミーのマウスイベントを割り当て、ハンドカーソルのそれの使用をオフにする - このように:
blocker.onRelease = function() {};
blocker.useHandCursor = false;
は限り、このクリップは、あなたのロードされたコンテンツの上にあるように、任意のマウスイベントを吸収します。
ボタンやオブジェクトがフレームに来るような実際に必要なときにイベントハンドラを作成します。
イベントリスナーのマウスクリックがすでに作成されている場合は、actionscriptの任意の時点でリスナーを削除できます。
myButton.removeEventListener(MouseEvent.CLICK、 handleMouseClick);
そして機能または関連するロジックは、後で戻って上のマウスイベントハンドラを有効にしている
myButton.addEventListener(MouseEvent.CLICK、 handleMouseClick)。
「handleMouseClick」
別の解決策をクリックし、マウスで何かを行い、実際の機能とコードであることは、あなたのメインのタイムライン上のActionScriptでいくつかのグローバルブールフラグを設定して、マウスを扱う関数の内部です最初に何かをする前にブール値をチェックすることができます。マウスイベントは作成され、イベントハンドラに渡されますが、ブール値フラグの状態に応じて選択的に無視されます。
私は、基礎となるムービーのActionScriptを制御できません。それは自分のことをして、私はそれをやることをやめたいのです。 – Jon
また、そのコードはAS3固有であり、AS2では機能しません。 –
他の回答として、クリックイベントが子SWFに到達するのを止める方法は、ブロッカーオブジェクトをその前に配置することです。鍵は、ブロッカーがボタンであることです。シェイプを持つシンプルなクリップでも、AS2の子SWFにクリックされるようになります。
AS2またはAS3のいずれかの親がAS2の子SWFをロードしている場合でも、ブロッカーボタンが必要です。
また、変数を使用して、clickEvent関数が呼び出されるたびに状態が「0」に変更されているかどうかを確認することもできます。
var lockScreen:int = 0;
lockScreen = 1
は、クリックイベントを無視して何かをした後にゼロに戻す場合に設定します。 少なくともそれは私のために働く:)
- 1. 外部から読み込まれたswfを連続して再生する
- 2. Flash、ActionScript:外部SWFからアセットを読み込み
- 3. すべてのFlash swfファイルにJavascriptとのインタフェースのための組み込みメソッドがありますか?
- 4. 読み込み時にスレッドがブロックされました
- 5. 外部swfを読み込んでカスタムクラスに割り当てます
- 6. 外部から読み込まれたswfからローダーの子を取得
- 7. Flex 4でSWFLoaderコンポーネントを使用して動的に読み込まれたSWFを一時停止/再生/停止する方法はありますか?
- 8. Qt - すべてのイベントまたはウィンドウの機能を一時的に無効にしますか?
- 9. FlexはSWFをSpriteとして読み込みます。代わりにMoviClipとしてロードするにはどうしたらいいですか?
- 10. FLASHアプリが埋め込まれたajaxを使用して外部HTMLファイルを読み込みます。
- 11. 読み込まれたswfから親ムービークリップの変数にアクセスするには
- 12. モルフィアは@参照されたエンティティの読み込みを無効にします
- 13. ページの読み込み時にポップアップを表示し、それを一定の時間間隔で表示したり非表示にしたりします。
- 14. すべてのUIフォームを読み取り専用/無効にしますか?
- 15. 動的に割り当てられたブロックの一部を解放しますか?
- 16. スクロール時のツールバーの折りたたみを無効にする
- 17. サービスを有効にしたり、無効にしたり、プログラムを起動したりするには
- 18. ブックマークレットから読み込まれた外部スクリプトファイルを "トリガー"するには
- 19. 読み込まれたswfファイル内のボタンにアクセスしますか?
- 20. Flex 4で読み込まれたswfのルートにアクセスしますか?
- 21. ページの読み込み時にフォームを無効にし、ボタンをクリックして有効にする
- 22. 無効な属性または属性パラメータに対してスローする例外はありますか?
- 23. 親が読み取り時にブロックされている間に子プロセスが終了しました
- 24. as3外部読み込みswfファイルでCHILDにアクセスする
- 25. バイナリファイルから構造体に動的に割り当てられた配列を読み込みます。
- 26. Selenium APIを使用して読み込まれたページからAjaxリクエストを無効にする方法
- 27. 変形/折りたたみフォームフィールドを読み取り専用/無効にする方法はありますか?
- 28. ExtJS 4グリッドの読み込みマスクの外観を一時的に無効にする
- 29. 一時的にActiveXを無効にしています
- 30. チェックボックスのチェックを外す(無効または読み取り専用なし)
私はこのアイデアが好きで、私は読み込み中のswfの上にあるムービークリップを追加しましたが、マウスの関連イベントが終わっても、クリップはまだ私のonreleaseイベントを捕捉していると思うことができます。 – Jon
さて、私はこのテクニックがうまくいくと思っています。私はいつも使っています!ムービークリップが表示されていることを確認する必要があります(blocker._visible = true)。塗りつぶしに実際の色を追加して、ロードされたSWFの上にあることを確認することができます。これは、AS2で深度が間違ってしまうのが簡単だからです。 –
ええ私もそれを使用しました。ブロッカークリップに大きな青色の長方形が含まれるようにしました。これは、ロードされていることと、正しい幅と高さであることを非常に確信しています。興味があれば、私に最大の頭痛を与えている資産はPrint2Flashからです。 – Jon