複製** **如下:
php
class event extends stdclass
/**
* 得到事件字串程式設計客棧
*/ public function __tostring()
} abstract class eventdispatcherelse
return true;
} /**
* 派發事件
* @param event $event
* @param string $method
* @param string||object $class
* @return void
*/ public function dispatch(event $event)else
}else
} }
} /**
* 刪除事件
* @param event $event
* @param string $method
* @param string $class
* @return boolean true
*/ public function det
} return true;
}else
} return true;
} }
/**
* 檢測事件是否監聽
* @param event $event
* @param string $method
* @param s程式設計客棧tring $class
* @return boolean
*/ public function has($event,$method,$class=null)else
if(is_object($class))else
$temp_v=array(
"class"=>$v_class,
"method"=>$method,
); $temp_s=array(
"class"=>$s_class,
"method"=>$method,
); if($temp_v==$temp_s)
} }
}else
} }
} return false;
} /**
* 檢測指定類是否存在指定方法
* @param string $class
* @param string $method
* @exception exception_event
* @return void
*/ private function _check_method($class,$method)
} /**
* 檢測指定函式是否存在
* @param string $function
* @return void
*/ private function _check_function($function)
} /**
* 檢測指定事件是否存在監聽函式
* @param string $eventstr
* @return boolean
*/ private function _check_callback($eventstr)
return false;
} /**
* 建立監聽函式陣列
* @param string $eventstr
* @param string $function
* @return array
*/ private function _create_listener_fn($eventstr,$function)
/**
* 建立監聽類陣列
* @param string $eventstr
* @param string $class
* @param string $method
* @return array
*/ private function _create_listener_method($eventstr,$class,$method)
} class myevent extends event
class ball extends eventdispatcher
} class mytest
public function kk($e)
} trycatch (exception $e)
本文標題: php 事件機制(2)
本文位址:
Flex事件機制 2
event類方法 1 實用程式方法 clone event formattostring classname string,parameters string tostring string 2 事件流方法 stopimmediatepropagation void stoppropagation ...
PHP實現事件機制例項分析
內建了事件機制的語言不多,php也沒有提供這種功能。事件 event 說簡單了就是乙個observer模式。實現起來非常easy。可是有所不同的是,事件的監聽者誰都能夠加,可是僅僅能由直接包括它的物件觸發。這就有一點點難度了。php有乙個debug backtrace函式,能夠得到當前的呼叫棧,由此...
cocos2dx事件分發機制
事件型別 enum class type 事件 型別 enum class type 關於事件 的優先權通過 addeventlistenerwithscenegraphpriority 新增的 優先權為0。通過 addeventlistenerwithfixedpriority 新增的 可以自定義...