这个侦听器类非常简单. 它告诉调度程序它侦听什么事件以及触发事件的方法. addSubscriber()方法将用户注册到调度程序中.
1 use Acme\StoreBundle\Event\StoreSubscriber; 2 3 $subscriber = new StoreSubscriber(); 4 $dispatcher->addSubscriber($subscriber);调度程序将订户准确地注册到EventSubscriberInterface :: getSubscriberdEvents()返回的事件中. EventSubscriberInterface :: getSubscriberdEvents()方法返回一个数组,其键对应于订阅服务器侦听器. 事件,该值对应于此订阅服务器调用以处理该事件的一个方法或一组方法. 在上面的示例中,一组侦听器方法与此事件相对应,我们还可以设置优先级来控制该组方法的执行顺序. 触发kernel.response事件时,将依次执行onKernelResponsePre,onKernelResponseMid和onKernelResponsePost这三种方法. 停止事件传递在某些情况下,侦听器可以停止事件传递以防止后续的侦听器被调用. 换句话说,侦听器必须通知调度程序以停止将事件传递给后续侦听器. 在侦听器中实现stopPropagation()方法:
1 use Acme\StoreBundle\Event\FilterOrderEvent; 2 3 public function onStoreOrder(FilterOrderEvent $event) 4 { 5 // ... 6 7 $event->stopPropagation(); 8 }然后将不会执行尚未执行store.order事件的侦听器. 您可以使用isPropagationStopped()方法确定事件是否停止.
1 $dispatcher->dispatch('foo.event', $event); 2 if ($event->isPropagationStopped()) { 3 // ... 4 }
EventDispatcher这是as3中的事件发送者. 这也是对as2的很好补充. 只有从此类继承的对象才能发送事件. dispatchEvent()是发送事件的方法. 例如,如果创建一个新的对象A,并且要在对该对象进行某些更改后通知其他对象,则可以使用dispatchEvent(新事件(“ yourEvent”)),然后可以在另一个位置调用A. 将侦听器添加到A
A.addEventListener(“ yourEvent”,您的函数)可以自定义此事件,常规对象是EventDispatcher的子类;

下面的官方网站有更详细的说明,您可以参考它; help.adobe.com / ... r.html
有两种方法: 1.通过id直接调用在另一个组件中接收值的对象,并为其分配值! ex: // b的值传递给a. 它与官方组件几乎相同. 如果要将值传递给自定义组件的内部组件,则还可以通过id直接调用子对象id a.text = b.text. 该方法更灵活// //在要使用该值的地方添加一个listen回调作为回调函数. 触发事件时,将调用此方法传递的值. LoadDataEvent.dispatcher.addEventListener(“ testEvent”,回调); //回调函数callback(event: LoadDataEvent){// event.data是您想要的数据. 这不一定取决于您的loadDataEvent定义方式} //在传输值的位置分布事件. 该事件可以携带您要传递的值dataLoadDataEvent.dispatcher.addEventListener(新的LoadDataEvent(“ testEvent”,数据)); // LoadDataEvent定义import flash.events.Event;
导入flash.events.EventDispatcher;
/ **
*用于加载组件数据的自定义事件类
* @author袁金龙
* @日期2010-07-08

* /
公共类LoadDataEvent扩展了事件
{
公共静态const调度程序: EventDispatcher = new EventDispatcher();
公共变量数据: Object = null;
公共函数LoadDataEvent(类型: 字符串,数据: 对象=空值,气泡: 布尔值=假,可取消: 布尔值=假)
{

super(类型,气泡,可取消);
this.EVENT_NAME = type;
this.data = data;
this.typeData = typeData;
this.tempData = tempData;
}
覆盖公共功能克隆(): 事件{
返回新的LoadDataEvent(类型,气泡php dispatcher,可取消的数据);
}
trueTechArticleSymfony2 EventDispatcher组件,eventdispatcher在插件系统中,插件在不影响其他插件的情况下添加了新方法,或者在方法运行之前进行了一些校准...
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-149111-2.html
给观众带来更多更好的作品