1

タイル リストを作成しました。タイル リストの各タイルは、ロールオーバー時にグラフィックが描画されるキャンバスです。マウスがその特定のキャンバスからロールアウトされると、描画されたグラフィックを削除する必要があります。だから私はgraphics.clearをやっていますが、グラフィックを削除することはできません。

コード

protected function canvas1_updateCompleteHandler(event:FlexEvent):void
            {           
                var allowHighLight:Boolean = QzGridImpl(this.owner).m_bEnableHighLight;
                if(!allowHighLight)
                    return;
                var highLighted:Boolean = TileList(this.owner).isItemHighlighted(this.data);
                if(highLighted)
                {
                    high = true;
                    DrawBackgroundImage(QzGridImpl(this.owner).m_strBackgroundImage as String);


                }
//when highlighted becomes false the below part is called
                else
                {

                    if(high)
                    {



                        this.graphics.endFill();//and cleanly im observing that endfill and clear is getting called and they are able to clear graphics when mouse is rolled out slowly but not able to clear when mouse is rolled out fast.

                        trace("endfill");
                        this.graphics.clear();
                        trace("clear");



                    }
                }


private function DrawBackgroundImage(n_strBackImg:String):void
{

//code for drawing the background image
}

そして、エンドフィルとクリアが呼び出され、マウスがゆっくりとロールアウトされるとグラフィックをクリアできますが、マウスが速くロールアウトされるとクリアできないことをきれいに観察しています。

それを機能させるために何をする必要がありますか?

4

1 に答える 1

0

TileList のカスタム ItemRenderer を作成し、itemRenderer でロールオーバーがトリガーされたときにイメージ効果を適用できます (レンダラーに rollOver リスナーを追加することにより)。それはうまくいくかもしれません-そしておそらくそれを行うためのよりきちんとした方法でもあります。

于 2013-03-05T17:20:41.023 に答える