Свойства событий Flash AS: можно ли отследить их с помощью цикла for?

Мне было интересно, можно ли использовать цикл for (или for each) для отслеживания свойств события в окне вывода. Я знаю, что могу отследить событие за один раз, вот так:

function myFunct (evt:IOErrorEvent):void
{
    trace(evt);
}

К сожалению, в некоторых ситуациях, например, с длинным URL-адресом, читать это становится немного безумно, поэтому я хотел бы немного переформатировать его, чтобы показать каждое свойство в отдельной строке, примерно так:

function URLLoader_IOError (evt:IOErrorEvent):void
{
    for each(var prop in evt)
    {
        trace(prop)
    }
}

Конечно, этот пример ничего не показывает в окне вывода. Я что-то упустил в функции или это просто невозможно?

Спасибо!


person Eric    schedule 03.11.2010    source источник


Ответы (1)


Я предлагаю вам найти именованные свойства, которые вы хотите отслеживать, и отслеживать их конкретно. Полезными будут свойства errorId, text и type. Возможно, eventPhase тоже.

В вашем коде вы будете пытаться преобразовать объекты в строковые представления. Например, что trace должен делать со свойством currentTarget? И тебя действительно волнует bubbles собственность IOErrorEvent? Или "конструктор"?

В качестве альтернативы вы можете провести много тестов в своем цикле, чтобы определить, с каким типом данных вы имеете дело, и преобразовать некоторые из его свойств в строки для отслеживания, но в конце дня вам все равно придется использовать отладчик для более глубокого изучения объектов.

person Robusto    schedule 03.11.2010
comment
Я согласен с вами по поводу необходимости и точек EOD. Мне просто было любопытно, можно ли сделать вывод немного более доступным для новичка в тренировочных ситуациях. Если это не быстрый способ, подобный приведенному выше, то лучше потратить время на то, чтобы показать им, как читать необработанную трассировку событий. Спасибо! - person Eric; 03.11.2010