【问题标题】:Flex: binding a function callFlex:绑定函数调用
【发布时间】:2015-11-11 20:17:20
【问题描述】:

我已经有一段时间没有从事 Flex 开发了,我正在尝试理解我遇到的一些代码。我在下面包含了一个示例,但其要点是,为什么他们在事件处理程序中使用 {}?这不是绑定吗?它有什么用?

在下面的例子中,使用anEvent="{doSomething(event)}"和使用anEvent="doSomething(event)"有什么区别?

<mx:Script>
    <![CDATA[
        private static function doSomething(e:CustomEvent):void {
            trace("something happens here");
        }
    ]]>
</mx:Script>

<myComponents:CustomComponent
    anEvent="{doSomething(event)}"
/>


// custom component definition
<?xml version="1.0" encoding="utf-8"?>
<mx:UIComponent 
    xmlns:mx="http://www.adobe.com/2006/mxml"
    width="100%" 
    height="100%">


    <mx:Metadata>
        [Event(name="anEvent", type="com.mydomain.CustomEvent")]
    </mx:Metadata>

    <mx:Script>
        <![CDATA[
            private function test():void
            {
                var e:Customevent = new CustomEvent("custom_event_name");
                dispatchEvent(e);
            }

            /** @inheritDoc **/
            override protected function commitProperties():void
            {
                super.commitProperties();
                test();
            }
        ]]>
    </mx:Script>

</mx:UIComponent>

【问题讨论】:

  • 请在下面查看我的回答,如果它适合您,请接受。谢谢。

标签: actionscript-3 events apache-flex binding actionscript


【解决方案1】:

在您的情况下,我认为这两种方法没有任何区别。当您希望绑定组件的特定属性以始终使用函数的返回值时,方法绑定很有帮助。

例如,如果您有一个标签,并且您想将它的文本绑定到一个函数,该函数根据可绑定值返回一个字符串,那么在这种情况下它会很有用。

看看这里:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf64c3d-7ff3.html#WS2db454920e96a9e51e63e3d11c0bf64c3d-7ff2

在您上面介绍的情况下,它只是一个事件处理程序,并且由于它不返回任何值(void),我看不出绑定如何在这里真正创造好处,因此不应使用它。

此外,您的事件处理程序是一个静态方法,据我所知,绑定不适用于静态方法

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多