{"id":13744838,"url":"https://github.com/badu/SparkComponents","last_synced_at":"2025-05-09T04:30:55.017Z","repository":{"id":2666153,"uuid":"3657502","full_name":"badu/SparkComponents","owner":"badu","description":"Missing Spark Components on Flex SDK 4.6.0","archived":true,"fork":false,"pushed_at":"2013-02-11T05:51:41.000Z","size":247,"stargazers_count":29,"open_issues_count":0,"forks_count":12,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-15T16:41:46.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.badu.ro","language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/badu.png","metadata":{"files":{"readme":"ReadMe.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-08T06:43:07.000Z","updated_at":"2024-10-08T10:18:50.000Z","dependencies_parsed_at":"2022-08-29T11:00:46.290Z","dependency_job_id":null,"html_url":"https://github.com/badu/SparkComponents","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badu%2FSparkComponents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badu%2FSparkComponents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badu%2FSparkComponents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badu%2FSparkComponents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badu","download_url":"https://codeload.github.com/badu/SparkComponents/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253191765,"owners_count":21868803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:01:17.013Z","updated_at":"2025-05-09T04:30:54.747Z","avatar_url":"https://github.com/badu.png","language":"ActionScript","readme":"////////////////////////////////////////////////////////////////////////////////\n//\n//  Licensed to the Apache Software Foundation (ASF) under one or more\n//  contributor license agreements.  See the NOTICE file distributed with\n//  this work for additional information regarding copyright ownership.\n//  The ASF licenses this file to You under the Apache License, Version 2.0\n//  (the \"License\"); you may not use this file except in compliance with\n//  the License.  You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n//  Unless required by applicable law or agreed to in writing, software\n//  distributed under the License is distributed on an \"AS IS\" BASIS,\n//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//  See the License for the specific language governing permissions and\n//  limitations under the License.\n//\n////////////////////////////////////////////////////////////////////////////////\nIMPORTANT :\nAll these components were donated to Apache Flex SDK and the latest versions (including bug fixing),\nare now here : \nhttp://svn.apache.org/viewvc/flex/sdk/branches/develop/frameworks/projects/experimental/\nThis repository is deprecated!\n\nSpark Components\n-----------------------------\n1. Alert (org.apache.flex.spark.components.alert.Alert)\n2. ColorPicker (org.apache.flex.spark.components.colorpicker.ColorPicker)\n3. HDividerGroup (org.apache.flex.spark.components.dividers.HDividerGroup)\n4. VDividerGroup (org.apache.flex.spark.components.dividers.VDividerGroup)\n5. Menu and MenuBar (org.apache.flex.spark.components.menu.Menu and org.apache.flex.spark.components.menu.MenuBar)\n6. ProgressBar (org.apache.flex.spark.components.progressBar.ProgressBar)\n-----------------------------\n\nGeneral notes\n-----------------------------\n1) All skinnable components are trying to cover the lack of CSS declarations (which will need altering SDK).\nThey assume the default skins in private static method 'setDefaultStyles'.\n\n2) Locale used (like Alert class) have only the en_US bundle, leaving the developer add bundles as needed.\n\n3) Implementation of this components aimed to achieve the goals using the simpliest possible route.\nHowever, this components were part of an entreprise project for more than an year.\n\n-----------------------------\nAlert Component Info\n-----------------------------\n\nAlert class extends spark.components.Panel, thus making it a Spark component\n\nUsage is the same as for MX, by calling the static method 'show' with the parameters. \n\npublic static function show(\n\t\t\tmessage:String = \"\", \n\t\t\ttitle:String = \"\",\n\t\t\tflags : uint = OK,\n\t\t\tparent:Sprite = null,\n\t\t\tcloseHandler:Function = null,\n\t\t\ticonClass:Class = null,\n\t\t\tdefaultButtonIndex:uint = 0 /* Alert.OK */,\n\t\t\tmodal:Boolean = true,\n\t\t\tmoduleFactory:IFlexModuleFactory = null\n\t\t):Alert\n\t\t\nNote that buttons labels are localized and the locales has to be declared. Only en_US was declared so far.\n\nUsage example (which - of course - is similar to MX usage):\n\nDisplaying Alert :\n\nAlert.show(\"Hello alert\", \"Alert title\", Alert.OK | Alert.CANCEL | Alert.YES | Alert.NO, this, onAlertClosed , imgCls, 2 );\n\t\t\t\nwhere close handler looks like this :\n\t\t\t\nprotected function onAlertClosed(e:CloseEvent):void\n{\n\tswitch (e.detail)\n\t{\n\t\t\tcase Alert.OK:\n\t\t\t\ttrace(\"OK\");\n\t\t\tbreak;\n\t\t\tcase Alert.CANCEL:\n\t\t\t\ttrace(\"CANCEL\");\n\t\t\tbreak;\n\t\t\tcase Alert.NO:\n\t\t\t\ttrace(\"NO\");\n\t\t\tbreak;\n\t\t\tcase Alert.YES:\n\t\t\t\ttrace(\"YES\");\n\t\t\tbreak;\t\t\t\t\t\n\t\t}\n}\n\nDefault skinning is declared in private static method 'setDefaultStyles' and points out the package org.apache.flex.spark.skins.spark.AlertSkin\nIf you need to customize your Alert skin, use the following CSS declaration template :\n\n@namespace alert \"org.apache.flex.spark.components.alert.*\";\nalert|Alert\n{\n\tskinClass : ClassReference('org.apache.flex.spark.skins.spark.AlertSkin');\t\t\t\n}\n\nCustomizing the buttons style :\n@namespace alert \"org.apache.flex.spark.components.alert.*\";\nalert|Alert\n{\n\tbuttonStyleName : \"alertButton\";\n}\nwhere \"alertButton\" declarations looks like :\n.alertButton\n{\n\tskinClass : ClassReference('org.apache.flex.tests.view.skins.CustomAlertButton');\n}\n\nNote that 'messageStyleName' is supported too, but you might find this useless, since the component is skinnable. \nAlso, keep in mind that messageDisplay used in skinning is an instance of RichText, but it's not necessary\nto use the same in your custom skin. The Alert's skinpart for messageDisplay is typed as TextBase;\n\n-----------------------------\nColorPicker component\n-----------------------------\n\nColorPicker is based on spark.components.ComboBox, it's skinnable and dispatches two events : \norg.apache.flex.spark.events.ColorChangeEvent.CHOOSE ( \"choose\" ) and\norg.apache.flex.spark.events.ColorChangeEvent.HOVER ( \"hover\" )\nThe last one can be used in case of 'preview' usage (when you are processing a preview of a color before choosing it).\n\nThe default skin for ColorPicker is org.apache.flex.spark.skins.spark.ColorPickerSkin. You can use your own, by using\na style declaration. Note that the 'open' button has it's own skin org.apache.flex.spark.skins.spark.ColorPickerButtonSkin.\n\nUsage example :\n1) declare the namespace : xmlns:colorpicker=\"org.apache.flex.spark.components.colorpicker.*\"\n2) declare MXML tag : \u003ccolorpicker:ColorPicker choose=\"onColorChosen(event)\" hover=\"onColorHovered(event)\" /\u003e\n3) handle events :\n\tprotected function onColorHovered(event:ColorChangeEvent):void\n\t{\n\t\ttrace(\"Color Hovered : \"+ColorPickerUtil.uint2hex(event.color));\t\t\t\t\n\t}\t\t\t\n\t\t\n\tprotected function onColorChosen(event:ColorChangeEvent):void\n\t{\n\t\ttrace(\"Color Choosed : \" +ColorPickerUtil.uint2hex(event.color));\t\t\t\t\n\t}\t\t\t \n\t\nColorPickerUtil.uint2hex provides the hex representation of the uint color value. \n\n-----------------------------\nDividers components : HDividerGroup and VDividerGroup\n-----------------------------\nBoth components are based on Spark's Group (extended by DividedGroup which both classes extend),\nbut using HorizontalLayout for HDividerGroup and VerticalLayout for VDividerGroup.\n\nFor those who are trying to understand how it works:\n-----------------------------\nDividedGroup has declared metatag [DefaultProperty(\"children\")] which makes all the MXML tags\ninside HDividerGroup/VDividerGroup tag to go into the setter getter of the children property.\nChildren property is an array of mx.core.IVisualElement, which will be processed inside the overriden\nmethod 'createChildren' of DividedGroup class.\nFor each child, we're adding a divider, created with a class specified by each specie of dividers :\nHDivider and VDivider (both extend Divider class). Divider holds instances of two neighbours - 'up and down'\nor 'left and right'. There are handlers for mouse events over the dividers which sets width / height of \nthose neighbours.\nEnd 'how-it-works'\n-----------------------------\n\nSo far, adding and removing children at runtime is not supported, but the code is written into place.\nIf you are curious if it works, just uncomment the overriden methods 'addElement' and 'removeElement' inside\nDividedGroup class.\n\nYou can constrain the minimum sizes (after which resizing stops) using properties named\nminElementWidth for HDividerGroup and minElementHeight for VDividerGroup\n\nIf you want to have fun, set showTooltipOnDividers=\"true\" for any of the divider groups.\n\nUsage example :\n1) declare namespace : xmlns:dividers=\"org.apache.flex.spark.components.dividers.*\"\n2) write MXML :\n\u003cdividers:VDividerGroup width=\"100%\" height=\"100%\"\u003e\n\t\t\u003cdividers:HDividerGroup width=\"100%\" height=\"70%\"\u003e\n\t\t\t\u003cs:Group width=\"20%\" height=\"100%\"\u003e\t\t\t\t\n\t\t\t\t\u003cs:Rect width=\"100%\" height=\"100%\"\u003e\n\t\t\t\t\t\u003cs:fill\u003e\n\t\t\t\t\t\t\u003cs:SolidColor alpha=\"1\" color=\"0x0000FF\" /\u003e\n\t\t\t\t\t\u003c/s:fill\u003e\n\t\t\t\t\t\u003cs:stroke\u003e\n\t\t\t\t\t\t\u003cs:SolidColorStroke color=\"0x000000\" /\u003e\n\t\t\t\t\t\u003c/s:stroke\u003e\n\t\t\t\t\u003c/s:Rect\u003e\n\t\t\t\t\u003cs:Label text=\"Left\" color=\"0xFFFFFF\" top=\"10\" left=\"10\" /\u003e\n\t\t\t\u003c/s:Group\u003e\n\t\t\t\u003cs:Group width=\"80%\" height=\"100%\"\u003e\t\t\t\t\n\t\t\t\t\u003cs:Rect width=\"100%\" height=\"100%\"\u003e\n\t\t\t\t\t\u003cs:fill\u003e\n\t\t\t\t\t\t\u003cs:SolidColor alpha=\"1\" color=\"0x00FF00\" /\u003e\n\t\t\t\t\t\u003c/s:fill\u003e\n\t\t\t\t\t\u003cs:stroke\u003e\n\t\t\t\t\t\t\u003cs:SolidColorStroke color=\"0x000000\" /\u003e\n\t\t\t\t\t\u003c/s:stroke\u003e\n\t\t\t\t\u003c/s:Rect\u003e\n\t\t\t\t\u003cs:Label text=\"Right\" top=\"10\" left=\"10\" /\u003e\n\t\t\t\u003c/s:Group\u003e\n\t\t\u003c/dividers:HDividerGroup\u003e\n\t\t\u003cs:Group width=\"100%\" height=\"30%\"\u003e\t\t\t\n\t\t\t\u003cs:Rect width=\"100%\" height=\"100%\"\u003e\n\t\t\t\t\u003cs:fill\u003e\n\t\t\t\t\t\u003cs:SolidColor alpha=\"1\" color=\"0xFF0000\" /\u003e\n\t\t\t\t\u003c/s:fill\u003e\n\t\t\t\t\u003cs:stroke\u003e\n\t\t\t\t\t\u003cs:SolidColorStroke color=\"0x000000\" /\u003e\n\t\t\t\t\u003c/s:stroke\u003e\n\t\t\t\u003c/s:Rect\u003e\n\t\t\t\u003cs:Label text=\"Down\" color=\"0xFFFFFF\" top=\"10\" left=\"10\" /\u003e\n\t\t\u003c/s:Group\u003e\n\u003c/dividers:VDividerGroup\u003e\n\n-----------------------------\nMenu and MenuBar\n-----------------------------\n\nMenuCoreItemRenderer is the core item renderer that both are using by it's subclasses\nnamed MenuBarItemRenderer (mxml) and MenuItemRenderer (mxml). The subclasses \nare customizable and you can alter them as you wish.\n\nBoth Menu and MenuBar extend List and have skins org.apache.flex.spark.skins.spark.MenuSkin and\norg.apache.flex.spark.skins.spark.MenuBarSkin, where MenuBarItemRenderer and\nMenuItemRenderer are declared as itemRenderers of DataGroup.\nMenu and MenuBar dispatches the following events\n\t\n\t[Event(name=\"selected\", type=\"org.apache.flex.spark.events.MenuEvent\")]\n\twhen a menu item gets selected\n\t[Event(name=\"checked\", type=\"org.apache.flex.spark.events.MenuEvent\")]\n\twhen a menu item gets checked (menu won't close, to allow altering checks)\n\t\nBy altering skinning, you can use custom / different layout for Menu, however MenuCoreItemRenderer\nwill check for VerticalLayout and HorizontalLayout in the owner menu, in order to display\nthe popup to the right or below. If none of this are found, popup will be displayed to\nthe right by default.\n\t\nMenuCoreItemRenderer properties :\nisSeparator (bindable) - if the menu item is a separator (will not trigger selected)\nisCheckable (bindable) - if the menu item is a check like (for options)\nisChecked (bindable) - if the menu item is checked (changes graphics to show the user that it's checked)\nhasIcon (bindable) - changes graphics to use icon\niconSource (bindable) - icon class (usually an [Embed])\ndataProvider (bindable) - XMLListCollection that feeds the renderer / sub-menus\n\nUsage example for MenuBar:\n-----------------------------\n1) namespace declaration xmlns:menu=\"org.apache.flex.spark.components.menu.*\"\t\t\t\n\t\t\t\n2) MXML declaration (with listeners for selected and checked events)\n\n\t\u003cmenu:MenuBar \n\t\tid=\"menuBarMAIN\"\n\t\tselected=\"onMenuChanged(event)\"\n\t\tchecked=\"onMenuChecked(event)\"\n\t\tdataProvider=\"{menuDP}\"\n\t\twidth=\"100%\" height=\"25\"\n\t\tlabelField=\"@label\"\u003e\n\t\t\u003cmenu:layout\u003e\n\t\t\t\u003cs:HorizontalLayout /\u003e\n\t\t\u003c/menu:layout\u003e\n\t\u003c/menu:MenuBar\u003e\n\t\t\t\n\t\t\t\n3) dataProvider setting\n\t\t\t[Bindable]\n\t\t\tpublic var menuDP : XMLListCollection ;\n\t\t\t\n\t\t\tpublic const menudata : XML = \u003cmenuData\u003e\n\t\t\t\t\t\u003cmenu label=\"Menu One\" \t\t\t\t\t\t\t\t\t\t\tdata=\"five\"\u003e\n\t\t\t\t\t\t\u003cmenu label=\"SubMenu One\"\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu One\" \t\t\t\t\t\tdata=\"seven2\"\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu One\" \t\t\tdata=\"eight2\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu Two\" \t\t\tdata=\"nine2\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable One\" \t\t\t\t\t\tdata=\"ten2\" \t\t\tisCheckable=\"true\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable Two\" \t\t\t\t\t\tdata=\"eleven2\" \t\tisCheckable=\"true\" \t\tisChecked=\"true\"/\u003e\n\t\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu Two\"\t\t\t\t\t\tdata=\"twelve\" /\u003e\n\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\u003cmenu separator=\"true\" /\u003e\n\t\t\t\t\t\t\u003cmenu label=\"SubMenu Two\"\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu One\" \t\t\t\t\t\tdata=\"seven\"\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu One\" \t\t\tdata=\"eight\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu Two\" \t\t\tdata=\"nine\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable One\" \t\t\t\t\t\tdata=\"ten\" \t\t\tisCheckable=\"true\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable Two\" \t\t\t\t\t\tdata=\"eleven\" \tisCheckable=\"true\" \t\tisChecked=\"true\"/\u003e\n\t\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu Two\"\t\t\t\t\t\tdata=\"twelve\" /\u003e\n\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\u003c/menu\u003e\t\t\t\n\t\t\t\t\t\u003cmenu label=\"Menu Two\" \t\t\t\t\t\t\t\t\t\t\tdata=\"five\"\u003e\n\t\t\t\t\t\t\u003cmenu label=\"SubMenu One\"\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu One\" \t\t\t\t\t\tdata=\"seven2\"\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu One\" \t\t\tdata=\"eight2\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu Two\" \t\t\tdata=\"nine2\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable One\" \t\t\t\t\t\tdata=\"ten2\" \t\t\tisCheckable=\"true\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable Two\" \t\t\t\t\t\tdata=\"eleven2\" \t\tisCheckable=\"true\" \t\tisChecked=\"true\"/\u003e\n\t\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu Two\"\t\t\t\t\t\tdata=\"twelve\" /\u003e\n\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\u003cmenu separator=\"true\" /\u003e\n\t\t\t\t\t\t\u003cmenu label=\"SubMenu Two\"\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu One\" \t\t\t\t\t\tdata=\"seven\"\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu One\" \t\t\tdata=\"eight\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"SubSubSubMenu Two\" \t\t\tdata=\"nine\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable One\" \t\t\t\t\t\tdata=\"ten\" \t\t\tisCheckable=\"true\" /\u003e\n\t\t\t\t\t\t\t\t\u003cmenu label=\"Checkable Two\" \t\t\t\t\t\tdata=\"eleven\" \tisCheckable=\"true\" \t\tisChecked=\"true\"/\u003e\n\t\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\t\t\u003cmenu label=\"SubSubMenu Two\"\t\t\t\t\t\tdata=\"twelve\" /\u003e\n\t\t\t\t\t\t\u003c/menu\u003e\n\t\t\t\t\t\u003c/menu\u003e\t\t\t\t\n\t\t\t\t\u003c/menuData\u003e;\n\t\t\t\t\n\t\t\t\tmenuDP = new XMLListCollection(menudata.menu);\n\n4) Handlers of events :\n\n\t\t\tprotected function onMenuChanged(event:MenuEvent):void\n\t\t\t{\n\t\t\t\ttrace(\"======================================\");\n\t\t\t\ttrace(\"Selected : \"+event.item.@label);\t\t\t\t\n\t\t\t\ttrace(\"======================================\");\n\t\t\t}\n\t\t\tprotected function onMenuChecked(event:MenuEvent):void\n\t\t\t{\n\t\t\t\ttrace(\"======================================\");\n\t\t\t\ttrace(\"Item : \"+event.item.@label+\" is now \"+event.item.@isChecked);\n\t\t\t\ttrace(\"======================================\");\n\t\t\t}\n\nMenu usage example\n-----------------------------\nWorks in the same way. You can test with a button which when pressed to make the menu visible.\n\n-----------------------------\nProgressBar component info\n-----------------------------\n\nProgressBar component is skinnable and very simple to use. By altering it's properties named totalProgress\nand currentProgress , the progress bar will update the bar size to the percent calculated between\nthose too. In case you don't want to display label percentual, displayPercents (Boolean) property\nhas to be set to false. If this property is set to false, suffix property allows to customize the label\nwhich will display the value of currentProgress, \"/\" character, totalProgress and the suffix.\n\nThe component supports labelFunction, just in case you want to handle what label displays.\n\nThe direction property is used inside the skin. If it's set to 'right' it will make the bar grow from\nleft to right (default), if set to 'left', the bar will grow from right to left.\n\nTo allow more flexibility, the ProgressBar component is not going to have a source property,\nlike the MX component had, allowing developer to do whatever it wants.\n\nBasic usage example :\n-----------------------------\n(For testing all features)\n\n1) Namespace xmlns:progressBar=\"org.apache.flex.spark.components.progressBar.*\"\n\n2) The progress bar's value will be set by a hslider (simpliest test possible)\n\t\t\t\u003cprogressBar:ProgressBar id=\"progress\" \n\t\t\t\t\t\t\t\t\t width=\"300\" height=\"20\" top=\"30\" \n\t\t\t\t\t\t\t\t\t totalProgress=\"100\" \n\t\t\t\t\t\t\t\t\t labelFunction=\"progressFunction\"\n\t\t\t\t\t\t\t\t\t currentProgress=\"{slider.value}\"\n\t\t\t\t\t\t\t\t\t displayPercents=\"false\"\n\t\t\t\t\t\t\t\t\t suffix=\"bytes\"\n\t\t\t\t\t\t\t\t\t direction=\"right\"\n\t\t\t\t\t\t\t\t\t /\u003e\n\t\t\t\u003cs:HSlider id=\"slider\" minimum=\"0\" maximum=\"100\" top=\"60\" showDataTip=\"false\" /\u003e  \n\n3) where labelFunction is :\n\n\t\t\tpublic function progressFunction():void\n\t\t\t{\n\t\t\t\tif (progress.percentDisplay)\n\t\t\t\t{\n\t\t\t\t\tprogress.percentDisplay.text = progress.currentProgress +\" out of \"+ progress.totalProgress;\n\t\t\t\t}\n\t\t\t}\n","funding_links":[],"categories":["API"],"sub_categories":["Other API"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadu%2FSparkComponents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadu%2FSparkComponents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadu%2FSparkComponents/lists"}