Показать сообщение отдельно
Старый 30.10.2004, 04:32
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 9  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Что касается диспатчера - это просто расширенная событийная модель, вот и все ...

Код:
	import mx.events.EventDispatcher;

	// ************************************************
	
	function onEvent():Void
	{
		trace("onEvent");
	}

	var listener:Object = new Object();
	
	listener.event = function():Void
	{
		trace("listener.event");
	}
	
	listener.handleEvent = function(event:Object):Void
	{
		switch(event.type)
		{
			case("event"):
				trace("listener.handleEvent");
				break;
		}
	}

	var dispatcher:Object = new Object();
		
	EventDispatcher.initialize(dispatcher);

	dispatcher.addEventListener("event", onEvent);
	dispatcher.addEventListener("event", listener);
	
	dispatcher.eventHandler = function():Void
	{
		trace("Dispatcher.eventHandler");
	}
	
	// ************************************************
	
	dispatcher.dispatchEvent({type:"event"});
Где-то она полезна, где-то излишни ...

Что касается MovieClip.onDblClick - опять же зачем городить?
Ну ни кто ведь не отменял прототипы, и та же ММ их использует в своих классах ... во всяком случае, в, примерно, таком виде ...

Код:
class mx.Extensions.MovieClipExtensions
{
	static function addDrawingAPI():Void
	{
		MovieClip.prototype.drawCircle = function (x:Number, y:Number, radius:Number):Void
		{
			// ...
		}
	}	
}

// и далее когда необходимо подключаем это ...

import mx.Extensions.MovieClipExtensions;
MovieClipExtensions.addDrawingAPI();

Да есть момент, что MovieClip - это dynamic class, но не важно, кто мешает для того же String, залезть в String.as и добавить либо ключевое слово dynamic, или зарезервировать местечко для своего метода, типа:

function hello():Void;

И далее в подключаемом StringExtension уже его определить ...
Кстати если поставить себе Central SDK - то можно увидеть как обновится тот же String.as (function replace( re:String, repl:String ):String; // Central API)

Вобщем будте проще