1

単なる好奇心ではなく、最近、AS3 アプリケーションの 1 つに関するバグレポートを受け取りました。このバグは、Flash Player の品質が LOW (HIGH/MEDIUM - すべて正常) に設定されている場合にのみ再現できます。バグはアプリケーションの動作を変更しますが、コードや動作ではなくレンダリングや外観に影響を与えると言われているのに、低品質でのみ発生するのはなぜなのか、私には謎です。

簡単に言うと、メニュー パネル (MovieClip) にいくつかの項目 (MovieClips) があります。非常に単純で、MouseEvent の後に画面に表示され、ユーザーがカーソルをある要素から別の要素に移動します。カーソルが 2 番目の項目の端に到達すると、メニューが突然消えます。私のコードパネルでは、マウスのクリックまたはマウスアウトで非表示が設定されています。

個人的には、問題は Tweener にあると思います。その古いコードを使用する必要があります。マウスがユーザー アイコンの上にあるときにメニュー パネルが表示され、同時に Tweener の助けを借りて、このアイコンにいくつかの簡単な効果を生成します。

Adobe と Firefox (私のアプリは Web ブラウザー用で、バグは Firefox で報告されています) のバグトラッカーを調査しましたが、これまでのところ何も見つかりませんでした。おそらく、配列を使用した Flash Player 11 の誤動作で、既に修正されています... アイデアが尽きました。

4

1 に答える 1

0

ドキュメントから:

LOW
Specifies low rendering quality: graphics are not anti-aliased, and bitmaps are not smoothed.

低に設定されたレンダリング時にのみ発生する場合は、おそらくタイミングの問題です。つまり、バグは常に存在していましたが、以前にレンダリングを終了しているため、バグをトリガーできます。バグ報告者のコンピュータは遅いですか? 一度に多くのことが起こっていますか?メニューが削除されているか、非表示に設定されているか、または再配置されていますか?

@jeremyne​​albrownが言ったように、クラスを単純なプロジェクトに分離して、ロジックに問題がないことを確認してください。

removeChild()別のメソッドで、メソッドvisibleとプロパティをオーバーライドして、xどちらyが設定されているかを確認し、これらを呼び出すすべての呼び出しの前にトレースを配置して、何がトリガーされているかを確認します。

問題が Tweener にあると思われる場合は、メニュー パネルの状態に関係なく、 のMOUSE_OVERようなものを呼び出すリスナーをメニュー パネルに追加します。removeAllTweens()バグが発生しなくなった場合は、トゥイーン エンジンに関連していることがわかります。

于 2011-11-20T12:17:17.627 に答える