【问题标题】:Parsley MessageHandlers not working欧芹消息处理程序不起作用
【发布时间】:2013-01-20 11:40:37
【问题描述】:

我正在使用 Flex 的 Parsley 框架创建一个示例 MVC。我有一个滑块控件 (mx:HSlider),它将事件分派给模型以在滑块更改时执行某些操作。为此,我创建了一个自定义事件,并使用欧芹选择器来处理事件。这是代码

//Event
        class MyEvent extends Event
        {
        public static const MSG="msg";
    //constructor, clone method and two fields
        }

//View
    <fx:Metadata>
    [Event name="msg" type="pack1.MyEvent"]
    [ManagedEvents("msg")]
    </fx:Metadata>

    <fx:Declaration>
    <parsley:Configure/>
    </fx:Declaration>

    public function onSliderChange(event:SliderEvent):void
    {
    dispatchEvent(new MyEvent(MyEvent.MSG,event.thumbIndex,event.value);
    }

//Model
    [MessageHandler(selector="msg")]
    public function doSomething(event:MyEvent)
    {
    //code
    }

现在,事件已成功发送,但未调用消息处理程序。 这里有什么问题?谁能让我知道是什么问题?任何形式的帮助将不胜感激。提前致谢。

注意:我的上下文正在初始化,我的模型也正在注入。但是这些事件向我展示了一些奇怪的行为。它只是没有被分派到处理程序所在的模型。

【问题讨论】:

    标签: actionscript-3 apache-flex event-handling parsley


    【解决方案1】:

    试试这个:

    [MessageHandler(selector="msg")]
    

    你错过了一个右括号。

    【讨论】:

    • 感谢您的回复。这是我的拼写错误,所以我编辑了这个问题。
    【解决方案2】:

    在视图类中,Parsley 不会自动“管理”视图。视图通常不会添加到 Parsley 上下文中(除非您专门将它们添加到上下文中)。因为视图可以来去匆匆,所以您不希望 Parsley 默认管理它们,就像您使用控制器、动态命令、模型等一样。

    要让 Parsley 管理视图并因此识别它需要调用您的消息处理程序,您需要向视图添加 Parsley &lt;Configure /&gt; 标记。这使得视图分派一个类型为“configureView”的事件。在此标签存在之前,您将在视图添加到舞台时手动调度此事件。

    在你的视图中做这样的事情:

    <fx:Declarations>
        <parsley:Configure />
    </fx:Declarations>
    

    (在 Flex 3 应用程序中,您只需将 &lt;Configure /&gt; 标签添加到视图中,也就是说,您不会将其放在声明标签中。您可以在 Parsley docs 中阅读有关它的信息。

    【讨论】:

    • 在我看来已经存在。还是不行。
    【解决方案3】:

    我认为某些配置或带有欧芹事件的正常事件中存在错误,但在我的代码中,我从类中调度了多个事件,并且我将它们编写为

    [ManagedEvents("a","b","c")]
    

    但在阅读了欧芹的文档后,我发现它应该是

    [ManagedEvents("a,b,c")]
    

    它解决了我的问题。感谢您的所有回复。

    【讨论】:

      【解决方案4】:

      您必须将视图添加到上下文中。 这是唯一缺少的部分。

      【讨论】:

        猜你喜欢
        • 2017-12-25
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 2019-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多