Spark组的外观和功能是分开的
一、功能
1、功能继承自SkinnableComponent
2、在SkinnableComponent中,不需要创建任何组件
只要声明SkinPart元标签即可
[SkinPart(required="true")]
public var dataGroup:DataGroup;
3、定义组件有那几种状态
[SkinState("normal")]
[SkinState("disabled")]
4、覆盖partAdded,partRemoved
/* 皮肤各个组成部分加入时,调用的方法
* @param partname The name of the part. * * @param instance The instance of the part. */ override protected function partAdded(partName:String, instance:Object):void { super.partAdded( partName, instance ); if ( partName == "dataGroup" ) { dataGroup.addEventListener( DragEvent.DRAG_ENTER, handleDragEnter ); dataGroup.addEventListener( DragEvent.DRAG_DROP, handleDragDrop ); } else if ( partName == "viewCartBtn" ) { viewCartBtn.addEventListener( MouseEvent.CLICK, handleViewCartClick ); } } /* 皮肤各个组成部分移除时,调用的方法 * @param partname The name of the part. * * @param instance The instance of the part. */ override protected function partRemoved(partName:String, instance:Object):void { super.partRemoved( partName, instance ); if ( partName == "dataGroup" ) { dataGroup.removeEventListener( DragEvent.DRAG_ENTER, handleDragEnter ); dataGroup.removeEventListener( DragEvent.DRAG_DROP, handleDragDrop ); } else if ( partName == "viewCartBtn" ) { viewCartBtn.removeEventListener( MouseEvent.CLICK, handleViewCartClick ); } }