As-Bloom is a light weight user interface framework for developers. Some of its features include:

  • Theme editor.
  • Margin layout system.
  • Brush skining system makes it easier to change any component’s style.
  • Inproved class structure is more clear and easy to learn for newbies.
  • Still small file size, little memory use.

Sample

/**
 * Copyright (c) 2012 - 2100 Sindney
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package  
{
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;

	import bloom.containers.*;
	import bloom.core.Margin;
	import bloom.themes.*;
	import bloom.*;

	/**
	 * HelloWorld
	 * 
	 * @author sindney
	 */
	[SWF(backgroundColor = 0x000000, frameRate = 40, width = 200, height = 620)]
	public class HelloWorld extends Sprite {

		public function HelloWorld() {
			super();
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.showDefaultContextMenu = false;

			// setup theme first, we use colorTheme for example.
			ThemeBase.setTheme(new ColorTheme());

			// flow container object.
			var flowContainer:FlowContainer = new FlowContainer(this);
			flowContainer.direction = FlowContainer.VERTICALLY;
			flowContainer.move(10, 10);
			flowContainer.size(150, 600);

			var label:Label = new Label(flowContainer, "I'm a Label");
			// use component.margin to place object.
			label.margin.reset(5, 5, 0, 5);

			var button:Button = new Button(flowContainer, "I'm a Button", onButtonClick);

			var checkBox:CheckBox = new CheckBox(flowContainer, "I'm a CheckBox", true);
			checkBox.addEventListener(Event.CHANGE, onCheckBoxChanged);

			// with checkboxgroup, you can easily link a group of checkbox object(and he who extends checkbox).
			// set checkBoxGroup.index = -1 means there's no checkbox object currently.
			var checkBoxGroup:CheckBoxGroup = new CheckBoxGroup( -1);

			checkBox = new CheckBox(flowContainer, "CheckBox 0");
			checkBoxGroup.addChild(checkBox);

			checkBox = new CheckBox(flowContainer, "CheckBox 1");
			checkBoxGroup.addChild(checkBox);

			checkBox = new CheckBox(flowContainer, "CheckBox 2");
			checkBoxGroup.addChild(checkBox);

			// set target checkbox
			checkBoxGroup.index = 0;
			checkBoxGroup.addEventListener(Event.CHANGE, onCheckBoxGroupChanged);

			var numericStepper:NumericStepper = new NumericStepper(flowContainer, 50, 100, -100, 10);
			numericStepper.addEventListener(Event.CHANGE, onNumericStepperChanged);

			var slider:Slider = new Slider(flowContainer, Slider.HORIZONTALLY);
			slider = new Slider(flowContainer, Slider.VERTICALLY);

			var textInput:TextInput = new TextInput(flowContainer);
			var textBox:TextBox = new TextBox(flowContainer);

			var toggleButton:ToggleButton = new ToggleButton(flowContainer, "I'm a toggleButton");
			toggleButton.size(140, 20);

			var toggleSwitcher:ToggleSwitcher = new ToggleSwitcher(flowContainer, true);

			var progressBar:ProgressBar = new ProgressBar(flowContainer, 50);
		}

		private function onNumericStepperChanged(e:Event):void {
			trace("NumericStepper changed!");
		}

		private function onCheckBoxGroupChanged(e:Event):void {
			trace("CheckBoxGroup changed!");
		}

		private function onCheckBoxChanged(e:Event):void {
			trace("CheckBox changed!");
		}

		private function onButtonClick(e:MouseEvent):void {
			trace("Button clicked!");
		}

	}

}
UI . URL.