Я пишу вспомогательный класс и хочу, чтобы он использовался как в flex , так и в чистых actionscript проектах.Например:
public static function listenToPositionAndSize(control:DisplayObject):void
{
if (mxLibrariesSupported)
{
control.addEventListener(mx.events.ResizeEvent.RESIZE, onControlResize);
control.addEventListener(mx.events.MoveEvent.MOVE, onControlMove);
}
else
{
control.addEventListener(flash.events.Event.RESIZE, onControlResize);
control.addEventListener(flash.events.Event.ENTER_FRAME, onControlMove);
}
}
Если код выше может работать;этот класс может использоваться как в чистых проектах AS3, так и в проектах Flex.И чистые проекты AS3 не будут жаловаться на отсутствующие библиотеки mx ...
Я думаю, что-то вроде приведенного ниже кода будет работать, если он может скомпилироваться, но;
public static function mxLibrariesSupported():Boolean
{
try
{
var e:mx.events.FlexEvent =
new mx.events.FlexEvent(mx.events.FlexEvent.CHANGING);
return true;
}
catch(error:Error){ }
return false;
}
Есть либолее понятный способ?встроенная функция или что-то?
РЕДАКТИРОВАТЬ : Одна из простых причин сделать это: если вы проверите приведенный выше пример, я бы предпочел mx.events.MoveEvent.MOVE
(если доступно) вместо flash.events.Event.ENTER_FRAME
для проблем производительности.
спасибо ..