Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   states в ItemRenderer (http://www.flasher.ru/forum/showthread.php?t=154096)

AntonSurkont 12.04.2011 18:17

states в ItemRenderer
 
Здравствуйте уважаемые программисты.
Есть такой код (это ItemRenderer Листа):
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx"
        autoDrawBackground="false" click="itemrenderer1_clickHandler(event)">
        <s:states>
                <s:State name="not_active"/>
                <s:State name="active"/>
        </s:states>
 
        <fx:Script>
                <![CDATA[
                        [Bindable]
                        public var nameVar:String;
 
                        protected function itemrenderer1_clickHandler(event:MouseEvent):void
                        {
                                this.currentState = "active";
                        }
 
                ]]>
        </fx:Script>
 
        <s:Panel skinClass="longCalendar.skins.MonthBoxSkin"
                                width="100%" height="100%"
                                minHeight="30" minWidth="30"
 
                                backgroundColor.not_active="#FFFFFF" backgroundColor.active="#FFFFFF"
                                color.not_active="#000000" color.active="#000000"
                                chromeColor.not_active="#FF0000" chromeColor.active="#3BC64B"
                                cornerRadius.not_active="8" cornerRadius.active="8"
 
                                alpha.not_active="0.3" alpha.active="1">
                <s:Label text="{data} {nameVar}" left="10" top="8" fontSize="15"/>
        </s:Panel>
 
</s:ItemRenderer>

когда я кликаю по одному из элементов Листа, то панелька в этом элементе становится active, но когда я увожу курсор с этого элемента, то панелька вновь становится not_active.
Объясните плиз кто-нибудь что происходит.

chebum 12.04.2011 21:51

нужно ещё getCurrentRendererState перекрыть. например, так:
Код AS3:

private var clicked:Boolean;
 
protected function itemrenderer1_clickHandler(event:MouseEvent):void
{
        this.currentState = "active";
        this.clicked = true;
}
 
override protected function getCurrentRendererState():String
{
        if (this.clicked)
                return "active";
        return super.getCurrentRendererState();
}


alatar 13.04.2011 11:05

Откройте файл %Путь к Flash Builder'у%\sdks\4.1.0\frameworks\projects\spark\src\spark\components\supportClasses\ItemRenderer.as
Найдите в нем защищенный метод getCurrentRendererState().
Сделайте выводы.
Расписывать лень.

AntonSurkont 13.04.2011 12:08

Спасибо alatar


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

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