2017-07-04 1 views
0

私は、クリック時にボタンのアニメーションをトリガーするイベントリスナーを含むボタンクラスを持っています。Actionscript:BlitMaskはマウスイベントリスナーの動作を停止させ、修正する方法は?

このクラスの多くのインスタンスを使用して、ユーザーがスクロールできるリストを作成しました。 BlitMaskを実装しましたが、これは動作しますが、ボタンクラスのマウスイベントリスナーは機能しなくなりました。このコード

_blit = new BlitMask(_mc, _obounds.x, _bounds.y, _bounds.width, _bounds.height, false); 

ボタンクラスは何ですか?

どのようにしてビヘイビア前の動作を取得できますか?下を作成

私のコードは

var tf:TextField = new TextField(text); 
tf.x = 70; 
tf.y = 20; 
_btn.addChild(tf); 
_btn.addEventListener(MouseEvent.CLICK, click); 

クリックが呼び出されることはありませんです。

+0

BlitMaskは、ボンネットの下にどのように動作するかわからないを使用する場合

_blitMask.update(null, true); 

がフル更新を強制するために設定する必要があります。これはGreensockクラスですか?ほとんどの場合、ボタンが '_blit'の上にあることを確認するだけです(または、_blit.mouseEnabled = false'を介してボタンがクリックされるまで_blitのマウス入力を無効にしてから、クリックハンドラで' true'に設定する必要があります) ) – BadFeelingAboutThis

+0

はいそれはグリーンストックです。クリック時にボタンクラス内のボタンを操作する必要があるため、リスナーをblitに追加したくありません。もちろん、blit自体にアタッチされているイベントリスナーも機能します。 – Mar

+0

引用:* BlitMaskは、基本的に、BitmapModeをオフにすることはできますが、いつでも表示する必要があるピクセルのみをブリッティングして、そのビットマップバージョンをキャッシュして、DisplayObjectの高性能マスクとして機能する矩形スプライトです* – Organis

答えて

1

blitmaskは、ムービークリップをクリップのイメージ以上にします。

これを修正するには、bitmapModeをfalseに設定する必要があります。

_blitMask.bitmapMode = false; 

EDIT:このソリューションを実装することは必要なときだけにbitmapModeを回して、原因となることがさらに問題に拡大することがbitmapModeがオフになっている間に変更するクラスの変更を反映しないようにビットマップが発生します。だから、あなたは

_blitMask.bitmapMode = true; 
+2

'BlitMask'を使用することのポイントは、パフォーマンスを向上させることです。ですから、アニメーション中に 'bitMapMode'を有効にし、それを無効にするという(ドキュメンテーションの)https://greensock.com/asdocs/com/greensock/BlitMask.html#bitmapModeのアドバイスに注意してください)。さもなければ、 'bitmapMode'を常に無効にしておけば、本当にそれを使う必要はありませんか? –

関連する問題