It looks like you're in a mobile app but trying to base your skin off of the 
desktop HSliderThumb skin. Have you looked at using the mobile theme's skin as 
your starting point instead?

-- Tom


--- In flexcoders@yahoogroups.com, "stldvd" <stldvd@...> wrote:
>
> ::bump::
> 
> Anyone?
> 
> --- In flexcoders@yahoogroups.com, "stldvd" <stldvd@> wrote:
> >
> > Hi All,
> > 
> > I'm trying to skin the thumb of an hSlider component. Problems: 
> > 1) the thumb is resized to be pixelated and grainy. 
> > 2) Its position is incorrect. Instead of the new button being cleanly 
> > bisected by the track, it is just below the track, tangential to it. And 
> > (presumably because its registration point is at upper left) when I slide 
> > it all the way to the right, it goes  off the end of the track until its 
> > left edge is at the track's right edge. This also messes up calculations 
> > for the hSlider.value property. Here's code for the entire test project:
> > //HSliderTest.mxml:
> > <?xml version="1.0" encoding="utf-8"?>
> > <s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"; 
> >                                                     
> > xmlns:s="library://ns.adobe.com/flex/spark" 
> > firstView="views.HSliderTestHomeView" applicationDPI="160">
> >     <fx:Declarations>
> >             <!-- Place non-visual elements (e.g., services, value objects) 
> > here -->
> >     </fx:Declarations>
> > </s:ViewNavigatorApplication>
> > 
> > //SliderSkin.mxml. Only modified the <s:Button tag at the end:
> > <?xml version="1.0" encoding="utf-8"?>
> > <s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"; 
> > xmlns:s="library://ns.adobe.com/flex/spark"
> >     xmlns:fb="http://ns.adobe.com/flashbuilder/2009"; minHeight="11" 
> > alpha.disabled="0.5">
> > 
> >     <fx:Metadata>
> >     <![CDATA[ 
> >         /** 
> >          * @copy spark.skins.spark.ApplicationSkin#hostComponent
> >          */
> >         [HostComponent("spark.components.HSlider")]
> > 
> >     ]]>
> >     </fx:Metadata> 
> >     
> >     <fx:Script fb:purpose="styling">
> >         /* Define the skin elements that should not be colorized. 
> >            For slider, the skin itself is colorized but the individual 
> > parts are not. */
> >             
> >         static private const exclusions:Array = ["track", "thumb"];
> > 
> >         /**
> >          * @private
> >          */  
> >         override public function get colorizeExclusions():Array {return 
> > exclusions;}
> >         
> >         /**
> >          * @private
> >          */
> >         override protected function initializationComplete():void
> >         {
> >             useChromeColor = true;
> >             super.initializationComplete();
> >         }
> >     </fx:Script>
> >     
> >     <fx:Script>
> >         /**
> >          *  @private
> >          */  
> >         override protected function measure() : void
> >         {
> >             // Temporarily move the thumb to the left of the Slider so 
> > measurement
> >             // doesn't factor in its x position. This allows resizing the
> >             // HSlider to less than 100px in width. 
> >             var thumbPos:Number = thumb.getLayoutBoundsX();
> >             thumb.setLayoutBoundsPosition(0, thumb.getLayoutBoundsY());
> >             super.measure();
> >             thumb.setLayoutBoundsPosition(thumbPos, 
> > thumb.getLayoutBoundsY());
> >         }
> >     </fx:Script>
> >     
> >     <s:states>
> >         <s:State name="normal" />
> >         <s:State name="disabled" />
> >     </s:states>
> >     
> >     <fx:Declarations>
> >         <!--- The tooltip used in the mx.controls.Slider control. 
> >                To customize the DataTip's appearance, create a custom 
> > HSliderSkin class.-->
> >         <fx:Component id="dataTip">     
> >            <s:DataRenderer minHeight="24" minWidth="40" y="-34">  
> >               <s:Rect top="0" left="0" right="0" bottom="0">
> >                     <s:fill>
> >                         <s:SolidColor color="0x000000" alpha=".9"/>
> >                     </s:fill>
> >                     <s:filters>
> >                         <s:DropShadowFilter angle="90" color="0x999999" 
> > distance="3"/>
> >                     </s:filters>
> >                 </s:Rect>
> >                 <s:Label id="labelDisplay" text="{data}"
> >                          horizontalCenter="0" verticalCenter="1"
> >                          left="5" right="5" top="5" bottom="5"
> >                          textAlign="center" verticalAlign="middle"
> >                          fontWeight="normal" color="white" fontSize="11">
> >                 </s:Label>
> >             </s:DataRenderer>
> >        </fx:Component>
> >     </fx:Declarations>
> >     
> >     <!--- The default skin class is HSliderTrackSkin. 
> >             @copy spark.components.supportClasses.TrackBase#track
> >             @see spark.skins.spark.HSliderTrackSkin -->
> >     <s:Button id="track" left="0" right="0" width="11" height="11"
> >               tabEnabled="false"
> >               skinClass="spark.skins.spark.HSliderTrackSkin" />
> >               
> >     <!--- The default skin class is HSliderThumbSkin.
> >             @copy spark.components.supportClasses.TrackBase#thumb 
> >             @see spark.skins.spark.HSliderThumbSkin -->
> >     <s:Button id="thumb" top="0" bottom="0" height="11" width="11" 
> > tabEnabled="false" skinClass="skins.SliderThumbSkin" />
> > </s:SparkSkin>
> > 
> > //SliderThumbSkin.mxml
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009";
> >                                xmlns:s="library://ns.adobe.com/flex/spark"
> >                                
> > xmlns:fb="http://ns.adobe.com/flashbuilder/2009";
> >                                minWidth="21"
> >                                minHeight="21"
> >                                alpha.disabled="0.5">
> >     
> >     <fx:Metadata>
> >             <![CDATA[ 
> >             /** 
> >             * @copy spark.skins.spark.ApplicationSkin#hostComponent
> >             */
> >             [HostComponent("spark.components.Button")]
> >             ]]>
> >     </fx:Metadata>
> > 
> >     <!-- states -->
> >     <s:states>
> >             <s:State name="up" />
> >             <s:State name="over" />
> >             <s:State name="down" />
> >             <s:State name="disabled" />
> >     </s:states>
> >     <s:Image source.up="assets/PurpleOnlyCircle60x60.png"
> >                      source.over="assets/PurpleOnlyCircle60x60.png"
> >                      source.down="assets/PurpleOnlyCircle60x60.png"
> >                      source.disabled="assets/PurpleOnlyCircle60x60.png"
> >                      width="60"
> >                       height="60"/> 
> > </s:SparkButtonSkin>
> > 
> > Can anyone can see why this doesn't display correctly? 
> > 
> > Thanks!
> >
>


Reply via email to