您可以通過挖掘ItemRenderer來源找到解決方案。搜索「推出」發現這一點:
private function addHandlers():void
{
addEventListener(MouseEvent.ROLL_OVER, itemRenderer_rollOverHandler);
addEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
}
綜觀「itemRenderer_rollOutHandler」的方法,它包含:
protected function itemRenderer_rollOutHandler(event:MouseEvent):void
{
hovered = false;
}
檢查出的「徘徊」的成員,你可以看到它有一個setter函數:
protected function set hovered(value:Boolean):void
{
if (value != _hovered)
{
_hovered = value;
setCurrentState(getCurrentRendererState(), playTransitions);
if (autoDrawBackground)
{
redrawRequested = true;
super.$invalidateDisplayList();
}
}
}
這部分設置當前狀態。好處是它是一種受保護的方法,意味着我們可以覆蓋它。所以,如果你從來沒有在您的ItemRenderer使用懸停狀態,它足以把它添加到腳本塊:
override protected function set hovered(value:Boolean):void
{
// do nothing
}
懸停狀態和背景繪製不會發生,結果,所以部署事件監聽器將有沒有影響,你的狀態不會受到影響。
這是一個列表中的itemrenderer。經過仔細觀察後,它似乎會在重新啓動時重置。有沒有辦法讓我可以重置內置的推出效果而不做任何事情。 – duder 2010-06-18 17:13:03
我不確定「重置」是什麼意思。您可能想要查看樣式selectionColor和rollOverColor。 http://docs.huihoo.com/flex/4/spark/components/List.html#styleSummary – JeffryHouser 2010-06-18 21:07:31