PDA

Просмотр полной версии : spark Scroller где в потомке переопределить тип dataGroup в SkinnableDataContainer


djyamato
18.03.2012, 16:19
Здравствуйте
где в потомке скроллера переопределить тип dataGroup так чтобы это был не DataGroup а SkinnableDataContainer
Мне это нужно чтобы над DataGroup положить полоску градиента в скроллере (скроллер это SkinPart DropDownList-а в моем случае)

Astraport
18.03.2012, 16:42
Проще нарисовать скин для трэка скроллера в виде BitmapImage.

djyamato
18.03.2012, 16:58
ну а что мне это даст ?
мне нужно чтобы вьюпорт у скроллера был скинированый

-------------------------------

сделал скином для SkinnableDataContainer

<?xml version="1.0" encoding="utf-8"?>

<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Metadata>
<![CDATA[
[HostComponent("spark.components.SkinnableDataContainer")]
]]>
</fx:Metadata>

<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>

<s:DataGroup id="dataGroup" left="0" right="0" top="0" bottom="0" minWidth="0" minHeight="0">
<s:layout>
<s:VerticalLayout horizontalAlign="contentJustify" />
</s:layout>
</s:DataGroup>

<s:Group width="100%" height="50" bottom="0">
<s:Rect width="100%" height="100%">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0xffffff" alpha="0"/>
<s:GradientEntry color="0xffffff" alpha="1"/>
</s:LinearGradient>
</s:fill>
</s:Rect>
</s:Group>

<s:VScrollBar width="100%" height="100%" viewport="{dataGroup}" />
</s:Skin>


скин для DropDownList (частично)

<s:PopUpAnchor id="popUp"
displayPopUp.normal="false"
displayPopUp.open="true"
includeIn="open"
left="40"
right="0"
top="-31"
bottom="0"
itemDestructionPolicy="auto"
popUpPosition="right"
popUpWidthMatchesAnchorWidth="false">

<s:Group id="dropDown">
<s:filters>
<s:GlowFilter blurX="15" blurY="15" color="0x666666"/>
</s:filters>
<s:Rect id="background"
width="250"
height="250"
radiusX="7"
radiusY="7">
<s:fill>
<s:SolidColor id="bgFill" color="0xffffff" />
</s:fill>
</s:Rect>
<s:HGroup width="100%"
height="100%"
horizontalAlign="center"
verticalAlign="middle">

<s:SkinnableDataContainer width="200"
height="200"
id="dataGroup1"
itemRenderer="{hostComponent.itemRenderer}"
dataProvider="{hostComponent.dataProvider}">
<s:layout>
<s:VerticalLayout gap="0"
horizontalAlign="contentJustify"
requestedMinRowCount="1"
requestedMaxRowCount="6"/>
</s:layout>
</s:SkinnableDataContainer>
</s:HGroup>
</s:Group>
</s:PopUpAnchor>


и в стилях

s|SkinnableDataContainer{
skinClass:ClassReference("com.skins.DataContainerSkin");
}