【问题标题】:AS3: Alert event firing with no inputAS3:没有输入的警报事件触发
【发布时间】:2012-12-09 05:46:07
【问题描述】:

当用户单击删除按钮时,我会弹出一个警报。但是,当警报创建时,它会触发 Yes 函数,尽管没有用户输入。

显然,使用删除按钮很糟糕。

        protected function handleDelete(event:Event): void {
            showAlert();
        }

        private function showAlert():void{
            Alert.yesLabel = "Delete";
            Alert.noLabel = "Cancel";
            Alert.show("Are you sure you want to delete this?", "Confirm Delete", Alert.YES|Alert.CANCEL, this, delete(), null, Alert.CANCEL);
        }

不知道为什么,但无论用户输入如何,都会在创建警报时触发 delete()。

Alert 是 Fl​​ex 的默认警报,没有覆盖或任何东西。

【问题讨论】:

    标签: actionscript-3 flash apache-flex flash-builder mxml


    【解决方案1】:

    delete() 应该没有(),因为你想传递对它的引用,而不是调用它并传递返回值。

    【讨论】:

    • 我试过了,得到了 ArgumentError:错误 #1063:components.dialogs::DeleteDialog/delete() 上的参数计数不匹配。预期为 0,得到 1。我添加了 e:Event 作为参数,现在无论我按什么按钮,它都会运行 delete()。
    • 那是因为它不需要事件处理程序,只是一个 0-arg 回调函数。只需从方法定义中删除 event:Event
    • 如果我删除它,我会得到一个参数不匹配
    • 它必须接受 CloseEvent,detail 字段将包含被选中按钮的代码。您应将其与 Alert.YES 进行比较,然后才执行删除。
    • 啊,谢谢,我知道我哪里出错了。我从来没有检查过我是否按下了是或取消。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多