[color=red]为什么接收不到dispatch出来的自定义Event?[/color]
如果是在父控件里监听,则此Event的bubble属性应该为True。
自定义消息的时候,一定要记得重写clone()函数。在此自定义事件的处理函数里,如果需要再次dispatch此自定义事件,则该clone函数会被调用到。如不重写clone函数,则第二次dispatch出去的事件,你添加的自定义属性将不会有正确的值。
[color=red]event的target和currentTarget有啥区别?[/color]
The currentTarget property is the IEventListener you registered the event handler for. The target is the one that dispatched the event that you are currently handling.
请看下边参考链接中的例子认真体会。
参看链接:
http://flex4fun.com/2010/11/09/flex-event-target-and-currenttarget/
[color=red]Event的stopPropagation和stopImmediatePropagation有什么区别?
[/color]
[color=red]组件A及其子组件B都监听A的某事件,他们的事件处理函数的响应有固定的先后顺序吗?[/color]
[color=red]为什么以getter和setter方式实现的Bindable机制不work?[/color]
示例代码如下:
不work原因:以getter和setter方式实现变量的Bindable时,修改变量必须通过setter来修改,而不能直接给变量赋值。以上边的代码为例,不可以直接修改m_currentPage。
FYI:[Bindble]放在getter或者setter前都可,而且与先后顺序没有关系。
[color=red]Bindable的问题[/color]
我有一个自定义的UIComponent的子类。
里边有两个函数:
那么在类的内部给a赋值,a = 100; 则getter函数会被调用吗?
[color=red]Flex标准库里有没有提供能在指定延迟时间后,调用某一函数的机制?[/color]
有,请使用setTimeout。
[url]http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#setTimeout%28%29[/url]
其实也等效于Tweening libraries的delayedCall函数。
TweenMax.delayedCall(2, myFunction, ["myParam"]);
[color=red]dispatchEvent的本质仅是简单的函数调用吗?[/color]
是的,dispathEvent基于sendMessage。
参考链接:
[url]http://hi.baidu.com/neeleq/blog/item/f91a6e1714842958f3de32ef.html[/url]
如果是在父控件里监听,则此Event的bubble属性应该为True。
自定义消息的时候,一定要记得重写clone()函数。在此自定义事件的处理函数里,如果需要再次dispatch此自定义事件,则该clone函数会被调用到。如不重写clone函数,则第二次dispatch出去的事件,你添加的自定义属性将不会有正确的值。
[color=red]event的target和currentTarget有啥区别?[/color]
The currentTarget property is the IEventListener you registered the event handler for. The target is the one that dispatched the event that you are currently handling.
请看下边参考链接中的例子认真体会。
参看链接:
http://flex4fun.com/2010/11/09/flex-event-target-and-currenttarget/
[color=red]Event的stopPropagation和stopImmediatePropagation有什么区别?
[/color]
[color=red]组件A及其子组件B都监听A的某事件,他们的事件处理函数的响应有固定的先后顺序吗?[/color]
[color=red]为什么以getter和setter方式实现的Bindable机制不work?[/color]
示例代码如下:
[Bindable] public function get currentPage():uint
{
return m_currentPage;
}
public function set currentPage(currentPage:uint):void
{
m_currentPage = currentPage;
}
private var m_currentPage:uint = 1;
不work原因:以getter和setter方式实现变量的Bindable时,修改变量必须通过setter来修改,而不能直接给变量赋值。以上边的代码为例,不可以直接修改m_currentPage。
FYI:[Bindble]放在getter或者setter前都可,而且与先后顺序没有关系。
[color=red]Bindable的问题[/color]
我有一个自定义的UIComponent的子类。
里边有两个函数:
[Bindable(event="AChanged")]
public function get a():Number()
{ }
public function set a(p:Number):void()
{
dispathEvent(new Event("AChanged"));
}
那么在类的内部给a赋值,a = 100; 则getter函数会被调用吗?
[color=red]Flex标准库里有没有提供能在指定延迟时间后,调用某一函数的机制?[/color]
有,请使用setTimeout。
[url]http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#setTimeout%28%29[/url]
其实也等效于Tweening libraries的delayedCall函数。
TweenMax.delayedCall(2, myFunction, ["myParam"]);
[color=red]dispatchEvent的本质仅是简单的函数调用吗?[/color]
是的,dispathEvent基于sendMessage。
参考链接:
[url]http://hi.baidu.com/neeleq/blog/item/f91a6e1714842958f3de32ef.html[/url]