Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   roundedItems для List (http://www.flasher.ru/forum/showthread.php?t=140160)

Lexa_ 21.05.2010 20:48

roundedItems для List
 
Может кому сэкономит время, потому как пришлось потратить день на поиск решения. В листе по умолчанию подсветка mouseOver и selected - прямоугольные, и паблик методов для влияния на их форму нет. Нужно унаследоваться и переопределить пару функций.
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:List xmlns:mx="http://www.adobe.com/2006/mxml">
        <mx:Script>
                <![CDATA[
                import mx.controls.listClasses.IListItemRenderer;
 
                        override protected function drawHighlightIndicator(
                                                                indicator:Sprite, x:Number, y:Number,
                                                                width:Number, height:Number, color:uint,
                                                                itemRenderer:IListItemRenderer):void
                          {
                                var g:Graphics = Sprite(indicator).graphics;
                                g.clear();
                                g.beginFill(color);
                                g.drawRoundRect(0, 0, width, height, CORNER_RADIUS, CORNER_RADIUS);
                                g.endFill();
                                indicator.x = x;
                                indicator.y = y;
                        }
 
                        override protected function drawSelectionIndicator(
                                indicator:Sprite, x:Number, y:Number,
                                width:Number, height:Number, color:uint,
                                itemRenderer:IListItemRenderer):void
                    {
                        var g:Graphics = Sprite(indicator).graphics;
                        g.clear();
                        g.beginFill(color);
                        //g.drawRect(0, 0, width, height);
                        g.drawRoundRect(0, 0, width, height, CORNER_RADIUS, CORNER_RADIUS);
                        g.endFill();
                        indicator.x = x;
                        indicator.y = y;
                    }
 
                protected const CORNER_RADIUS:int        = 8;
                ]]>
        </mx:Script>
</mx:List>



Часовой пояс GMT +4, время: 10:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.