私が作っている周期律テーブルツールの場合、要素(かなり標準)の上にマウスを置くたびにアルファ値を変更するエフェクトを組み込みました。flash as3オブジェクトのアルファ値を変更するときにメモリゲインがあるのはなぜですか?
私の要素の上にマウスを乗せたとき、私は憶えていた記憶に気づいた。 SYSTEM.TOTAL_MEMORYを使用すると、マウスを動かしたときに放棄されない要素上にマウスを置くと、メモリ使用量が約0.005MB増加します。しかし、私が再びマウスを動かすと、2番目のメモリが得られません。機能のビットをコメントアウトすることで
は、私はそれがこれを引き起こしているアルファの変更だと気づいた - ここでのコードは次のとおりです。このメモリゲインが時に起こっている理由
addEventListener(MouseEvent.MOUSE_OVER,highlightthis);
addEventListener(MouseEvent.MOUSE_OUT,dehighlight);
function highlightthis(evt:MouseEvent):void
{
if (evt.target is Element)
evt.target.alpha = 0.5;
}
function dehighlight(evt:MouseEvent):void
{
if (evt.target is Element)
evt.target.alpha = 1;
}
誰もが知っていますアルファ値は変更されますか?そしてそれはなぜ奇妙なことですか?
いくつかの追加情報:my ElementクラスはMovieClipであり、いくつかのTextField、プリミティブ変数、MovieClipが含まれています。 mouseChildrenプロパティがfalse(buttonModeプロパティがtrueに設定されている)に設定されています。
アルファ合成を適用すると、より多くのメモリが必要になるとは思えません。 –
誰かが興味があればちょうど更新...私は私のElementオブジェクト(アルファ値が変化しているもの)で遊んで、いくつかのTextFieldsを取り出してみました。ビデオクリップ;それはメモリゲインを引き起こすそれらのTextFieldであることがわかります - それらのもののアルファ値を変更すると、より多くのメモリが必要になります! – xdl
私はTextFieldのためのAdobeのドキュメントを見て、それには.alphaプロパティがないことが判明しました。私はウェブ上でも検索を行い、明らかにアルファ値を変更するには、blendModeプロパティを使用する必要があります.blockMode.LAYERを参照すると、より多くのメモリが必要です。これは、バックグラウンドでFlashがやっていることでなければなりません。 – xdl