Here's another hackish approach, but from a different angle.
Good enough for me though.

I copied the appropriate Scroll class (ScrollThumbSkin) from the
framework into my local source tree and then referenced it (and the
other scroll classes I was modifying) using CSS, like this:

ScrollBar {     
     trackSkin: ClassReference("com.westwind.skins.ScrollTrackSkin");
     thumbUpSkin: ClassReference("com.westwind.skins.ScrollThumbSkin");
     thumbOverSkin:  
ClassReference("com.westwind.skins.ScrollThumbSkin");
     thumbDownSkin:  
ClassReference("com.westwind.skins.ScrollThumbSkin");
     thumbDisabledSkin:  
ClassReference("com.westwind.skins.ScrollThumbSkin");
     upArrowUpSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     upArrowOverSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     upArrowDownSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     upArrowDisabledSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     downArrowUpSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     downArrowOverSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     downArrowDownSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     downArrowDisabledSkin:  
ClassReference("com.westwind.skins.ScrollArrowSkin");
     thumbOffset: -1;
     }

That's all normal, here's the hack. Inside ScrollThumbSkin,
I set the alpha of the native thumb to 0 and then created a
new round rect at the size I wanted. Since the real thumb
still exists my new thumb doesn't get all the way to the
end of the track (because the larger native one under it
does but I found that from a user experience standpoint
it isn't a horrible tradeoff... the presence of the scroll
bar tells me there's content outside my view and the
thumb and arrows both still work so cares if the thumbs
never reaches the end of the track?

This difference in behavior is most notable on pages with only
minimal content outside the page, the case where you'd
usually get a gigantic thumb that moved only a few pixels,
IMO, an equally odd behavior  and one that requires your visual
design to tolerate a gigantic scroll bar. Not so good for subtler
visual looks.

On long pages you *barely* notice the altered behavior, it at all
Oddly, horizontal scroll bars seem to work fine with this trick,
ie the behaviors above I've only seen in vertical scroll bars.
If someone could explain why that is to me, I'd be grateful.

You can see these scroll bars at:

http://www.djethan.com/westwind/

Note that it's a work in progress so you might bump into an
occasional error, etc. Just dismiss and you should be fine.

cheers, ethan



> On Fri, Apr 25, 2008 at 2:34 PM, Bob Wohl <[EMAIL PROTECTED]> wrote:
> > I'm trying to adapt a skin to a scroll bar with out scaling the  
> scrollThumb
> > image.
>
> The "proper" way to do it would be to extend scroll bar, override
> setScrollProperties and copy or extend all the components that extend
> it or use it (or are expecting it) under different packages and etc.
> etc. ... potentially horrible.
>
> >[...] All the searching I've done points me to editing the SDK  
> which seems
> > a bit hack-ish. Also, most of the info I found was on FB2 and not 3.
>
> Yeah, it's a hack, but if you want to try it out, I have an example
> here (that might save you from rolling your own from scratch):
> http://rojored.com/hacks/scroll-thumb-fixed-size/ScrollTest.swf
>
> The source example and the monkey patch is here:
> http://rojored.com/hacks/scroll-thumb-fixed-size/
>
> If you're not familiar with monkey patching, you should check this  
> out first:
> http://blogs.digitalprimates.net/codeSlinger/index.cfm/2007/4/3/Flex-Component-Development
>
> This is a smelly hack.... you should use it only in case of  
> emergency ;-)
>
> -- 
> gabriel montagné láscaris comneno
> http://rojored.com
> t/506.8392.2040
>
> 


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

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! 
Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

Reply via email to