可能是一个标准/旧问题,但到目前为止我还没有找到任何信息。
我需要添加"确认删除"提醒您下面的现有功能(selectNode
)。为了处理Alert回调,我需要存储对node
param的引用,以便我可以在回调中对它进行操作。我知道我可以让var
存储它,但我想知道是否有一种方法可以将它打包在Alert
面板可以使用的自定义事件中,或者是否存在某种类型我可以在警报上分配data
属性。
private function selectNode(node:Node):void{
if(editor.currentTool == "deleteTool"){
Alert.show("Delete selected node?",
"Delete Node:", Alert.OK | Alert.CANCEL, null, nodeDeleteConfirm,
null, Alert.CANCEL);
// moving this to the callback
unmarkNodes();
node.mark();
removeNode(node);
} else {
unmarkNodes();
node.mark();
}
}
private function nodeDeleteConfirm(evt:CloseEvent):void
{
if(evt.detail == Alert.OK){
}
}
答案 0 :(得分:2)
您可以定义内部函数来访问外部函数的参数:
private function selectNode(node:Node):void{
if(editor.currentTool == "deleteTool"){
Alert.show("Delete selected node?",
"Delete Node:", Alert.OK | Alert.CANCEL, null, nodeDeleteConfirm,
null, Alert.CANCEL);
//code moved from here.
} else {
unmarkNodes();
node.mark();
}
function nodeDeleteConfirm(evt:CloseEvent):void
{
if(evt.detail == Alert.OK){
// moving this to the callback
unmarkNodes();
node.mark();
removeNode(node);
}
}
}