Option类:
package
{
import flash.display.Shape;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.GlowFilter;
/**
* 列表框子控件--列表选项框(单个选项)
* @author Jave.Lin
*/
public class Option extends Control
{
private var _isDrawBorder:Boolean=false;//是否绘制边框
private var _mask:Shape;
private var _isDowned:Boolean=false;
private var _glowFilter:GlowFilter;
//数据对象
private var _data:Object;
//显示数据对象文本
private var _textbox:TextBox;
public function get isDrawBorder():Boolean
{
return _isDrawBorder;
}
public function set isDrawBorder(value:Boolean):void
{
if(_isDrawBorder!=value)
{
_isDrawBorder=value;
refreshBackground();
}
}
public function get textColor():uint
{
return _textbox.textColor;
}
public function set textColor(value:uint):void
{
_textbox.textColor=value;
}
public override function get width():Number
{
return super.width;
}
public override function set width(value:Number):void
{
if(width!=value)
{
_w=value;
_textbox.width=_w;
refreshBackground();
}
}
public override function get height():Number
{
return super.height;
}
public override function set height(value:Number):void
{
if(height!=value)
{
_h=value;
_textbox.height=_h;
refreshBackground();
}
}
public function get data():Object
{
return _data;
}
public function set data($data:Object):void
{
if(_data!=$data)
{
_data=$data;
if(_data)
{
_textbox.text=_data.toString();
}
else
{
_textbox.text='';
}
refreshBackground();
}
}
public function Option($data:Object)
{
super();
data=$data;
}
public function setWithAndHeight($width:Number,$height:Number):void
{
_textbox.width=_w=$width;
_textbox.height=_w=$height;
refreshBackground();
}
protected override function initialize():void
{
this.mouseChildren=false;
_textbox=new TextBox();
_textbox.isDrawBorder=false;
_textbox.isReadOnly=true;
_textbox.isSelectable=false;
_textbox.fontSize=10;
addChild(_textbox);
_mask=new Shape();
addChild(_mask);
this.mask=_mask;
textColor=0;
_glowFilter=new GlowFilter(0x00ff00,1,3,3,3);
if(stage)
{
onAddedToStageHandler();
}
else
{
addEventListener(Event.ADDED_TO_STAGE,onAddedToStageHandler);
}
}
private function onAddedToStageHandler(e:Event=null):void
{
removeEventListener(Event.ADDED_TO_STAGE,onAddedToStageHandler);
addEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromStageHandler);
addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler);
}
private function onRemovedFromStageHandler(e:Event):void
{
removeEventListener(Event.REMOVED_FROM_STAGE,onRemovedFromStageHandler);
removeEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler);
removeEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler);
}
private function onMouseOutHandler(e:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler);
addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler);
filters=null;
}
private function onMouseOverHandler(e:MouseEvent):void
{
removeEventListener(MouseEvent.MOUSE_OVER,onMouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHandler);
filters=[_glowFilter];
}
protected override function refreshBackground():void
{
this.graphics.clear();
this.graphics.beginFill(0x00ff00,.2);
this.graphics.drawRect(0,0,width,height);
this.graphics.endFill();
if(_isDrawBorder)
{
this.graphics.lineStyle(1);
this.graphics.moveTo(0,0);
this.graphics.lineTo(width-1,0);
this.graphics.lineTo(width-1,height-1);
this.graphics.lineTo(0,height-1);
this.graphics.lineTo(0,0);
}
_mask.graphics.clear();
_mask.graphics.beginFill(0x00ff00,.2);
_mask.graphics.drawRect(0,0,width,height);
_mask.graphics.endFill();
}
public override function toString():String
{
return "Option ["+_data+"]";
}
}
}
OptionsList类:
package
{
import controlsEvents.OptionsListEvent;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.utils.Dictionary;
/**
* 多选项选择框列表类
* @author Jave.Lin
*/
public class OptionsList extends Control
{
private var _itemsContainer:Panel;//子项容器
private var _itemsControlDic:Dictionary;//子顶控制列表
private var _isShow:Boolean=true;//是否显示
private var _selectedItem:Option;
private var _selectedIndex:int;
private var _items:Vector.;//子项所有数据
public function get items():Vector.
{
return _items;
}
//获取当前选中的子项控件,里面包括数据
public function get selectedItem():Option
{
return _selectedItem;
}
//获取当前选中子项的索引
public function get selectedIndex():int
{
return _selectedIndex;
}
//设置当前选中子项的索引
public function set selectedIndex(value:int):void
{
if(_selectedIndex!=value)
{
if(value>_items.length-1)
{
throw new Error("set OptionsList.selectedIndex error,value:"+value);
}
if(value
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?