Flex:绑定函数调用
Flex: binding a function call
我离开 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>
我认为您这里的两种方法没有任何区别。当您想要绑定组件的特定 属性 以始终使用函数中的 return 值时,方法绑定很有用。
例如,如果您有一个标签并且想将其文本绑定到一个函数,该函数 return 是一个基于可绑定值的字符串,在这种情况下它会很有用。
在您上面介绍的情况下,它只是一个事件处理程序,并且由于它没有 returning 任何值 (void),我看不到绑定如何真正创造好处,因此它不应使用。
此外,您的事件处理程序是一个静态方法,据我所知绑定不适用于静态方法
希望对您有所帮助。
我离开 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>
我认为您这里的两种方法没有任何区别。当您想要绑定组件的特定 属性 以始终使用函数中的 return 值时,方法绑定很有用。
例如,如果您有一个标签并且想将其文本绑定到一个函数,该函数 return 是一个基于可绑定值的字符串,在这种情况下它会很有用。
在您上面介绍的情况下,它只是一个事件处理程序,并且由于它没有 returning 任何值 (void),我看不到绑定如何真正创造好处,因此它不应使用。
此外,您的事件处理程序是一个静态方法,据我所知绑定不适用于静态方法
希望对您有所帮助。