Вы определенно можете итерировать по всем объектам на экране и посмотреть, имеют ли они тип SparkSkin. Примерно так:
private function findSkins():void
{
recurseComponent(FlexGlobals.topLevelApplication);
}
private function recurseComponent(parent:UIComponent):void
{
var child:UIComponent;
for(var i:uint = 0, len:uint = parent.numElements; i<len; i++)
{
child = parent.getElementAt(i) as UIComponent;
if(child && child is SparkSkin)
{
trace("Skin Found!"); // trace whatever you need here
}
recurseComponent(child);
}
}
Но имейте в виду, что это решение очень дорого , так как оно должно проходить по всем объектам на экране, которые могут достигать нескольких тысяч. Тем не менее, я действительно не понимаю, какова цель этого, и определенно не рекомендую это, кроме как для целей отладки / тестирования.
Редактировать: Кроме того, это будет работать только для скинов в списке отображения. Скины, упомянутые в CSS, не будут распознаны, и я уверен, что нет никакого способа выяснить это, если пройти через все CSS и посмотреть, есть ли свойство skinClass
. Но тогда он не будет перехватывать скины по умолчанию или скины, заданные в ActionScript или встроенном mxml.