И так =) Ultimate Orange CheckBox Trigger And Radio Button Framework =)
Составляющие части
класс CheckBoxController

Код:
import com.onorange.lab.ui.ICheckBox;
import mx.utils.Delegate;
class com.onorange.lab.ui.CheckBoxController {
public static var ON:String = "on";
public static var OFF:String = "off";
//
private var target:ICheckBox;
private var isOn:Boolean;
private var currentState:String;
public function CheckBoxController(target:ICheckBox,defaultValue:Boolean) {
isOn = (defaultValue == undefined) ? false : true;
this.target = target;
target.addEventListener("click",Delegate.create(this,changeState));
}
public function set state(val:String):Void {
if(val == ON || val == OFF) {
if(val == ON) {
target.setOn();
}else if(val == OFF) {
target.setOff();
}
currentState = val;
}
}
public function get state():String {
return currentState;
}
private function changeState(evt:Object):Void {
state = (currentState == ON)? OFF:ON;
}
}
Занимается управлением тригера.
Два абстрактных класса
AbstractCheckBoxMovieClip и AbstractCheckBox являються базовыми классами для чекбоксов(первый если экстендим мувиклип, второй если обжект)

Код:
import mx.events.EventDispatcher;
import com.onorange.lib.events.IEventDispatcher;
class com.onorange.lab.ui.AbstractCheckBoxMovieClip
extends MovieClip
implements IEventDispatcher{
public function AbstractCheckBoxMovieClip () {
EventDispatcher.initialize(this);
onRelease = dispatchClick;
}
public function addEventListener(type:String,target:Object):Void {
}
public function removeEventListener(type:String,target:Object):Void {
}
public function dispatchEvent(eventObject:Object):Void{
}
private function dispatchClick():Void {
dispatchEvent({type:'click',target:this});
}
}

Код:
import mx.events.EventDispatcher;
import com.onorange.lib.events.IEventDispatcher;
class com.onorange.lab.ui.AbstractCheckBox
implements IEventDispatcher {
private var container:MovieClip;
public function AbstractCheckBox (parent:MovieClip) {
EventDispatcher.initialize(this);
container = parent.createEmptyMovieClip("container_mc",parent.getNextHighestDepth());
container.onRelease = dispatchClick;
}
public function addEventListener(type:String,target:Object):Void {
}
public function removeEventListener(type:String,target:Object):Void {
}
public function dispatchEvent(eventObject:Object):Void {
}
private function dispatchClick():Void {
dispatchEvent({type:'click',target:this});
}
}
Интерфейс ICheckBox все наши тригеры должны реализовывать его

Код:
import com.onorange.lib.events.IEventDispatcher;
interface com.onorange.lab.ui.ICheckBox extends com.onorange.lib.events.IEventDispatcher{
function setOn():Void;
function setOff():Void;
}
делать навороченные примеры влом, вот два простейших примера
checkBox.rar
Я думаю понятно что можно вставить все что угодно
PS я забыл в CheckBoxController вставить EventDispatcher, как нить потом=) щас уже влом