我在 AS 文件中有一些通用功能,例如复制、粘贴等。我想用它们来编辑嵌入在一个应用程序中的不同 mxml 应用程序中的数据。如果我在其中一个事件中将子组件 id 作为函数的参数传递,我会得到 null 或父应用程序名称的值。但我希望孩子组件的 id 能够访问这些值。请帮忙。
更新:
请在下面找到代码片段:
epfGateTask.mxml
..
<mx:AdvancedDataGrid id="task" resizableColumns="true" initialize="populateArray()"
dataProvider="{gateTaskList}" width="100%" height="100%" horizontalScrollPolicy="auto"
verticalScrollPolicy="auto" selectionMode="multipleCells" editable="true" itemEditBeginning="{editStart(event,task)}" paddingTop="0" paddingBottom="0" lockedColumnCount="5" rowCount="27" sortableColumns="false" liveScrolling="false" variableRowHeight="true" headerWordWrap="true" >
<mx:columns>
<mx:AdvancedDataGridColumn id="gateName" dataField="gateName" headerText="" width="137" wordWrap="true" textAlign="center" editable="false"/>
...
MenuBarUtilities.as
...
var dg_ID :Object ;
public function cut(event: Event)
{
if(selectedData != null && selectedData!="")
{
copy(event);
dg_ID.selectedItem[columnName]= "";
dg_ID.invalidateList();
}
}
public function editStart(event:AdvancedDataGridEvent,id:Object):void
{
dg_ID = id;
columnIndex = event.columnIndex;
columnName = id.columns[columnIndex].dataField;
var dataField: String = id.selectedItem[columnName];
selectedData = dataField;
}
...
此功能是将数据字段的值保存在临时变量中,以便在复制和粘贴时可以粘贴该值。在这里,从上面可以看到,'id' 是(dataGrid id)从 AdvancedDataGridEvent 传递的内容。现在在执行主 mxml 并选择一个数据网格单元格来剪切值时,会显示空引用错误。函数中的 id 的值为“epfProgram”,即主 mxml 名称。并且 dg_ID 显示为空。同样,另一个 mxml 也需要相同的功能。这两个 mxml 都使用 SWFLoader 放入主 mxml(epfProgram.mxml) 中。并且复制、粘贴等按钮存在于主 mxml 中。请帮我解决这个问题。