![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 77
|
Добрый день.
Создал кастомный контрол и для него скин, не могу понять как перерисовать компонент, когда присвоено свойство? <s:SkinnableComponent xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="70" height="70" buttonMode="true"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ private var _coins:int = 1; public function set coins(value:int):void { _coins = value; } public function get coins():int{return _coins; } ]]> </fx:Script> </s:SkinnableComponent> <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <!-- host component --> <fx:Metadata> [HostComponent("view.components.UserAvatar")] </fx:Metadata> <s:Label id="coins" color="0xFF0000" text="{hostComponent.coins}" fontSize="14" fontWeight="bold" x="3" y="{hostComponent.height - coins.height}"/> </s:Skin> подсказали что вот так надо делать: <s:SkinnableComponent ... <fx:Script> <![CDATA[ private var _coins:int = 1; public function set coins(value:int):void { _coins = value;skin.invalidateDisplayList(); } public function get coins():int{return _coins; } ]]> </fx:Script> </s:SkinnableComponent> Последний раз редактировалось il phoenix; 21.03.2012 в 16:33. |
|
|||||
|
1. Не никакого смысла писать сам компонент в mxml.
2. Свойство используемое в байндинге должно быть с метатегом Bindable. 3. Части важные для логики работы компонента должны быть объявлены в самом компоненте с метатегом SkinPart. Это даст вам доступ к части скина в компоненте. В общем вам сюда. P.S. Перерисовка вызывается методом invalidateDisplayList(). Добавлено через 1 минуту P.P.S. Обращайте внимание на все сообщения дебаггера, включая предупреждения, это поможет вам понять суть проблемы.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 77
|
alatar, спасибо за советы
|
|
|||||
|
Цитата:
потому что перерисовка компонента может быть часто, например, разрешение экрана изменилось, так зачем же лишний раз из-за этого назначать значение p.s. а, вообще, вам же просто байндэйбл [Bindable] нужно сделать у хост компонента переменную и назначить ее в скине кому нужно в качестве источника информации(в Вашем случае, видимо, для Label) p.p.s. hostComponent, по идее, вообще не должен знать о том есть у него skin или нет Последний раз редактировалось djyamato; 22.03.2012 в 13:34. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:31. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|