Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   mx Button label + binding = не отображается текст (http://www.flasher.ru/forum/showthread.php?t=201159)

djyamato 12.06.2013 17:05

mx Button label + binding = не отображается текст
 
Здравствуйте
Голову сломал
Или совсем невнимательный стал или одно из двух
Есть компонент Accordion, я его наполняю ArrayCollection-ом
Код AS3:

<mx:Accordion id="accordion" width="400" 
                                  height="100%"
                                  openDuration="300"
                                  headerRenderer="swiz.views.components.itemRenderers.AccordionHeader">
 
                <mx:Repeater id="rep" dataProvider="{appModel.classes}">
                        <mx:VBox width="100%" height="100%"
                                        verticalAlign="middle"
                                        horizontalAlign="center"
                                        label="{(rep.currentItem as ClassVO).label}"  >
                                <mx:HBox width="100%">
                                        <s:Label width="200" height="300" text="{(rep.currentItem as ClassVO).description}"/>
                                        <s:Image width="200" height="200"
                                                        source="{AppModel.DOMAIN+(rep.currentItem as ClassVO).image_url}"
                                                        scaleMode="letterbox"
                                                        smooth="true"/>
                                </mx:HBox>
                        </mx:VBox>
                </mx:Repeater>
        </mx:Accordion>

Класс-переносчик данных (ValueObject или DataTransferObject)
Код AS3:

package swiz.models
{
        public class ClassVO
        {
                protected var _id:int;
                protected var _label:String;
                protected var _description:String;
                protected var _code:String;
                protected var _image_url:String;
                protected var _cost:String;
 
                public function ClassVO()
                {
                }
 
                [Bindable]
                public function get description():String
                {
                        return _description;
                }
                public function set description(value:String):void
                {
                        _description = value;
                }
 
                [Bindable]
                public function get image_url():String
                {
                        return _image_url;
                }
                public function set image_url(value:String):void
                {
                        _image_url = value;
                }
 
                [Bindable]
                public function get cost():String
                {
                        return _cost;
                }
                public function set cost(value:String):void
                {
                        _cost = value;
                }
 
                [Bindable]
                public function get code():String
                {
                        return _code;
                }
                public function set code(value:String):void
                {
                        _code = value;
                }
 
                [Bindable]
                public function get label():String
                {
                        return _label;
                }
                public function set label(value:String):void
                {
                        _label = value;
                }
 
                public function get id():int
                {
                        return _id;
                }
                public function set id(value:int):void
                {
                        _id = value;
                }
        }
}

Коллекция предварительно собирается из выборки из базы, в которой все символы закодированы
Код AS3:

for(i=0;i<total;i++)
                                {
                                        var lbl:String = StringUtilities.decode((data as Array)[i].label);
 
                                        var newClass:ClassVO=new ClassVO();
                                        newClass.id=parseInt((data as Array)[i].id);
 
                                        newClass.label = lbl;
 
                                        newClass.description=StringUtilities.decode((data as Array)[i].description);
 
                                        newClass.code=(data as Array)[i].code;
                                        newClass.cost=(data as Array)[i].cost;
                                        newClass.image_url=(data as Array)[i].image;
 
                                        trace("lbl="+lbl);
 
                                        appModel.classes.addItem(newClass);
                                }

Раскодировщик вот какой
Код AS3:

public static function decode( encoded:String ):String 
                {
                        var retData:String="";
                        var characters:Array = encoded.split( "&#" );
                        var i:int
                        var total:int=characters.length;
 
                        for(i=0;i<total;i++)
                        {
                                retData+=String.fromCharCode(parseInt(characters[i]));
                        }
 
                        return retData;
                }

Если не раскодировать то в хедерах аккордеона видны надписи закодированные
Если раскодировать, то ругается на то что нет возможности забайндить к объекту так как он не IEventDispatcher И НИЧЕГО В КНОПКЕ НЕ ПИШЕТ
Где я ошибся ?
Чем отличается байндинг для mx от spark ?


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

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