Tom,

That's an excellent thought. I'm pretty new to spark skinning. I'll investigate 
this... hopefully it will be a relatively simple adjustment.

--- In flexcoders@yahoogroups.com, "tkraikit" <tkraikit@...> wrote:
>
> 
> 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