我想使用Flash Pro CS6在闪存列表控件中实现复选框。我完全按照Adobe Work with a CellRenderer提供的示例进行操作。我的.fla文件中唯一的代码是:
myList.setStyle("cellRenderer", CustomCellRenderer);
myList.addItem({label:"Burger -- $5.95"});
myList.addItem({label:"Fries -- $1.95"});
并且CustomCellRenderer.as文件中的唯一代码是(从Adobe示例中复制粘贴):
package
{
import fl.controls.CheckBox;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
public class CustomCellRenderer extends CheckBox implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;
public function CustomCellRenderer() {
}
public function set data(d:Object):void {
_data = d;
label = d.label;
}
public function get data():Object {
return _data;
}
public function set listData(ld:ListData):void {
_listData = ld;
}
public function get listData():ListData {
return _listData;
}
}
}
当我测试电影时,我收到以下错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at fl.controls::CheckBox/drawLayout()
at fl.controls::LabelButton/draw()
at fl.core::UIComponent/drawNow()
at fl.controls::List/drawList()
at fl.controls::List/draw()
at fl.core::UIComponent/callLaterDispatcher()
非常感谢任何帮助。 附:类似问题Display checkbox inside Flash List Control ? (Similar to item rendering in Flex)的作者似乎没有这个问题 - 他的问题只在于多种选择功能。
答案(不能发布另外8小时的答案,但急于关闭此问题)想出自己:CheckBox组件必须存在于库中。转到菜单Window-> Components->双击CheckBox。复选框将出现在舞台上和库中。从舞台中删除复选框。测试电影。
答案 0 :(得分:0)
将CheckBox组件的实例拖到舞台上,然后删除舞台。