Единственная возможная, выгодная разница между тремя - это кастинг.Приводя результат к объекту данных loaders, вы в основном делаете две вещи: навязываете типу данные и, таким образом, по существу выполняете проверку типов, а во-вторых, вы явно указываете виртуальной машине, с какими типами данных она имеет дело,вместо того, чтобы заставить это понять это сам.Во-вторых, это может повысить производительность.Что касается первого пункта о приведении и, следовательно, проверке типов, позвольте мне представить сценарий.Допустим, вы загружаете файл XML.Возможно, все, что вы хотите сделать, это показать XML в текстовом поле, как вы сделали здесь, но вы хотите убедиться, что это действительный XML.Вы бы явным образом приводили результат в виде XML внутри оператора try / catch, например:
function completeHandler(event:Event):void {
var res:XML;
try{
res = new XML(e.currentTarget.data);
tf.text = res.toString();
}catch(e:Error){
//Do something or nothing about this error
tf.text = "You have attempted to open an XML file containing mal-formed XML data.";
}
}
Таким образом, как вы можете видеть, это сводится не только к личному выбору.Производительность и простое программирование в хорошей практике вступают в игру.Actionscript 3 является строго типизированным языком по причине: строгая типизация обеспечивает правильную функцию, а также позволяет оптимизировать / улучшить / улучшить выполнение.Одним из фактов, свидетельствующих об этом, является виртуальная машина нестандартного типа actionscript 2, которая работает примерно в 20 раз медленнее, чем AVM2 (actionscript 3 vm).