Someone please help me out... Thanks
Regards, Jaga --- In [email protected], "Jaganathan.K" <[EMAIL PROTECTED]> wrote: > > Hi All, > > I need to create a slider control which should be controlled > externally. I have the folowing code where i hardcoded all the > values like the panel widths, slide range and combo box values. > Please play around with the component and let me know how to > componentize the same. > > I need the following to be controlled externally: > > The number of griditems used depends upon the external value given. > The panel's width needs to be determined by the combo box selection. > The combo box values will be controlled externally. > > Please help me out in componentizing the below component. Any help > would be greatly appreciated. > > Below is the code for the SliderControl Component. > > ------------------------------------------------------------- > SliderControl.mxml > ------------------------------------------------------------- > > > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="absolute" height="134" width="374"> > <mx:Panel x="10" y="10" width="354" height="112" > layout="absolute" borderStyle="none"> > <mx:Grid x="10" y="30" width="303"> > <mx:GridRow width="100%" height="100%" > paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0"> > <mx:GridItem id="GridItem1" > width="100%" height="100%" borderStyle="inset" > borderColor="#808080"> > </mx:GridItem> > <mx:GridItem id="GridItem2" > width="100%" height="100%" borderStyle="inset" borderColor="#808080"> > </mx:GridItem> > <mx:GridItem id="GridItem3" > width="100%" height="100%" borderStyle="inset" borderColor="#808080"> > </mx:GridItem> > <mx:GridItem id="GridItem4" > width="100%" height="100%" borderStyle="inset" borderColor="#808080"> > </mx:GridItem> > <mx:GridItem id="GridItem5" > width="100%" height="100%" borderStyle="inset" borderColor="#808080"> > </mx:GridItem> > <mx:GridItem id="GridItem6" > width="100%" height="100%" borderStyle="inset" borderColor="#808080"> > </mx:GridItem> > </mx:GridRow> > </mx:Grid> > <mx:Label x="10" y="35" text="0" height="18"/> > <mx:Label x="50" y="35" text="50" height="18"/> > <mx:Label x="97" y="35" text="100" height="18"/> > <mx:Label x="148.5" y="35" text="150" height="18"/> > <mx:Label x="201.5" y="35" text="200" height="18"/> > <mx:Label x="253.5" y="35" text="250" height="18"/> > <mx:Label x="300.5" y="35" text="300" height="18"/> > <mx:ComboBox x="243" y="0" width="70" > dataProvider="{DropDownValues}" close="selectedItem=ComboBox > (event.target).selectedItem;setPanel();"></mx:ComboBox> > <mx:Label x="163" y="2" text="Slider Width"/> > <mx:Panel id="pnlSlider" mouseDown="MovePanel > (event)" width="48" height="10" layout="absolute" > backgroundColor="#8080ff" x="10" y="27" borderStyle="none" > alpha="0.5"> > </mx:Panel> > <mx:Label x="10" y="2" text="Slider position" > width="85"/> > <mx:Label x="103" y="2" id="lblSliderPos" text="0"/> > </mx:Panel> > <mx:Script> > <![CDATA[ > import mx.controls.Alert; > > [Bindable] > public var DropDownValues: Array = [ {label:"50", > data:1}, {label:"100", data:2}, {label:"150", data:3} ]; > > [Bindable] > public var selectedItem:Object; > public var xDiff:Number; > public var iPnlLen:Number=1; > > private function setPanel():void > { > iPnlLen = selectedItem.data; > pnlSlider.width = 48 * selectedItem.data + (3* > (selectedItem.data-1)); > } > > private function stopDragging(event:MouseEvent):void > { > > this.systemManager.removeEventListener > (MouseEvent.MOUSE_MOVE, movePanelObj); > > this.systemManager.removeEventListener(MouseEvent.MOUSE_UP, > stopDragging); > > if(pnlSlider.x < GridItem2.x) > { > pnlSlider.x = 10; > lblSliderPos.text = "0"; > } > else if(pnlSlider.x >= GridItem2.x > && pnlSlider.x < GridItem3.x) > { > pnlSlider.x = GridItem2.x + > 6; > lblSliderPos.text = "50"; > } > else if(pnlSlider.x >= GridItem3.x > && pnlSlider.x < GridItem4.x) > { > pnlSlider.x = GridItem3.x + > 8; > lblSliderPos.text = "100"; > } > else if(pnlSlider.x >= GridItem4.x > && pnlSlider.x < GridItem5.x) > { > pnlSlider.x = GridItem4.x + > 8; > lblSliderPos.text = "150"; > } > else if(pnlSlider.x >= GridItem5.x > && pnlSlider.x < GridItem6.x) > { > pnlSlider.x = GridItem5.x + > 9; > lblSliderPos.text = "200"; > } > else if(pnlSlider.x >= GridItem5.x) > { > pnlSlider.x = GridItem6.x + > 9; > lblSliderPos.text = "250"; > } > } > > private function movePanelObj(event:MouseEvent):void > { > if((event.stageX - xDiff >=10) && (event.stageX - > xDiff <= GridItem6.x + 7 - 48 * (iPnlLen -1))) > { > pnlSlider.x = event.stageX - xDiff; > } > } > > private function MovePanel(event:MouseEvent):void > { > this.systemManager.addEventListener > (MouseEvent.MOUSE_MOVE, movePanelObj); > this.systemManager.addEventListener > (MouseEvent.MOUSE_UP, stopDragging); > xDiff = event.stageX - pnlSlider.x; > } > ]]> > </mx:Script> > > </mx:Application> > > > -----------------------------End of the Code----------------------- > > > Thanks > > Regards, > Jaga >

