我正在尝试创建一个spark datagrid项呈示器。此项呈示器扩展了一个复选框,并实现了IGridItemRenderer
public class CellCheckBoxItemRenderer extends CheckBox implements IGridItemRenderer
当我实现IGridItemRenderer时,我需要实现接口方法,我遇到以下方法的问题:
public function get hovered():Boolean
{
}
public function set hovered(value:Boolean):void
{
}
因为方法也是从复选框
继承的修改 功能的签名
//spark checkbox signature
protected function get hovered():Boolean
protected function set hovered(value:Boolean):void
并且上面的签名属于IGridItemRenderer接口
答案 0 :(得分:1)
我想IGridItemRenderer
的实现是更重要的部分,因此您可以在数据网格中使用它。 CheckBox
仅提供功能,如果我认为存在冲突,则无需扩展功能。
public class CellCheckBoxItemRenderer implements IGridItemRenderer {
private var checkBox:CheckBox;
public function getCheckBox {
return checkBox;
}
//...
}
如果CheckBox
将实现任何有用的接口,您也可以在渲染器中实现它们并将方法委托给复选框,这可以让您封装整个复选框。但事实并非如此。
答案 1 :(得分:0)
问题在于,按设计,界面仅指定公共功能的签名,而Checkbox
中的功能设置为受保护。
唯一的解决方案:
Checkbox
CellCheckBoxItemRenderer
课程
Checkbox
,因此hovered
是公共财产