Degrafa와 함께 스키닝 Horizontallist 스크롤 바
-
20-09-2019 - |
문제
DeGrafa와 함께 수평선에 스크롤 바를 피부를 피우려고 할 때 몇 가지 문제가 있습니다. 스크롤 바는 전혀 나타나지 않습니다. 스크롤 바가 스키닝없이 나타나야하는지 확인했습니다. 이 작업을 수행하는 Gotchas가 있습니까? 다음은 몇 가지 코드입니다.
내가 피부 스크롤 바를 원하는 HorizOntallist를 정의하는 곳입니다.
<mx:HorizontalList horizontalScrollBarStyleName="thumbnailScrollbar"/>
여기에 내가 스킨의 고급 회의를 정의하는 곳입니다 (화살표의 널리 표시되지 않도록 화살표가 나타나지 않아).
.thumbnailScrollbar
{
up-arrow-skin: ClassReference(null);
down-arrow-skin: ClassReference(null);
trackSkin: ClassReference("ScrollBarTrackSkin");
thumbSkin: ClassReference("ScrollBarThumbSkin");
}
Scrollbartrackskin :
<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="http://www.degrafa.com/2007">
<fills>
<SolidFill id="upFill" color="#FFFFFF" alpha="0.8"/>
</fills>
<geometry>
<RoundedRectangle id="track" x="-8" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{upFill}"/>
</geometry>
</GraphicBorderSkin>
Scrollbarthumbskin :
<?xml version="1.0" encoding="utf-8"?>
<GraphicBorderSkin xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="http://www.degrafa.com/2007">
<fills>
<SolidFill id="background" color="#333333" alpha=".8"/>
</fills>
<geometry>
<RoundedRectangle id="thumb" cornerRadius="16" width="{this.skinWidth}" height="{this.skinHeight}" fill="{background}"/>
</geometry>
</GraphicBorderSkin>
나는 볼 수있는 것보다 더 많은 항목으로 수평선을 채우고 있으며, 스크롤 바가 스키닝을 제거 할 때 나타나기 전에 말했듯이 내가 말했듯이.
해결책
당신의 피부와 스킨폭은 어디에 설정되어 있습니까? 일반적으로 Degrafa 예제는 피부에서 이와 같은 기능을 수행하여 높이/폭을 업데이트합니다.
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
awidth = unscaledWidth;
aheight = unscaledHeight;
}
그 외에도 다음을 수행해야했습니다.
override public function get measuredWidth():Number {return 16; }
override public function get measuredHeight():Number {return 10;}
내 스크롤 바 스킨에서 내가 원했던 높이와 너비를 얻는다. (내부적으로 회전하는 V & H 모두 동일합니다). Flex Scrollbar 스킨에는 약간의 해킹 코드가 있었고 내 막대도 나타나지 않았습니다.
그러나 나는 현재 내 스킨에 degrafa를 사용하고 있지 않으므로 다른 문제가있을 수 있습니다. 내 앞에는 사례가 없습니다.
제휴하지 않습니다 StackOverflow