【发布时间】:2012-02-11 14:32:12
【问题描述】:
我正在使用 PHP 脚本通过 CodeIgniter 从数据库中加载一些图像,但是当我尝试添加事件处理程序以对这些图像执行一些操作时,Flex 编译器向我显示错误:
1180: 调用可能未定义的方法 cloneCar。
为什么我不能在这个上下文中添加事件处理程序?
<mx:Accordion>
<mx:Form id="menu5" label="Prueba" width="100%" height="100%" backgroundColor="#707070" icon="{roadIcon}">
<mx:DataGrid x="251" y="95" dataProvider="{traffic_signals.lastResult..signal}"
showHeaders="false"
horizontalGridLines="false"
selectionColor="#707070"
themeColor="#707070"
alternatingItemColors="[#707070, #707070]"
borderColor="#707070"
rollOverColor="#707070">
<mx:columns>
<mx:DataGridColumn dataField="source" >
<mx:itemRenderer >
<mx:Component >
<mx:Image width="94" height="94" mouseDown="cloneCar(event)"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Form>
</mx:Accordion>
没有mouseDown 语句,一切正常,但我需要允许对这些图像进行拖放(和其他功能)。
谢谢!
编辑:
cloneCar 方法定义如下:
private function cloneCar(e:MouseEvent):void
{
// do stuff
}
【问题讨论】:
-
您在哪里定义了您的
cloneCar()方法,在您的itemRenderer's组件内部还是外部?如果您在itemRenderer之外定义了它,那么一切正常,它应该会抛出错误。ItemRenderer就像“完全不同的文件”,所以你不能访问其他文件方法,除非你继承或制作对象或有静态方法。
标签: apache-flex events datagrid