将数据传递给Alert eventListener

时间:2014-11-09 21:32:44

标签: actionscript-3 flex

可能是一个标准/旧问题,但到目前为止我还没有找到任何信息。

我需要添加"确认删除"提醒您下面的现有功能(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){

             } 
        }

1 个答案:

答案 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);
        } 
    }

}