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
}

并且干净地我观察到 endfill 和 clear 被调用,当鼠标缓慢推出时它们能够清除图形,但当鼠标快速推出时无法清除。

需要做什么才能使其正常工作?

4

1 回答 1

0

您可以为 TileList 创建自定义 ItemRenderer,并在 itemRenderer 中触发翻转时应用图像效果(通过向渲染器添加翻转侦听器)。这可能会奏效 - 并且可能也是一种更简洁的方式。

于 2013-03-05T17:20:41.023 回答