Получение данных от загрузчика в Actionscript - PullRequest
0 голосов
/ 03 апреля 2011

Это то, что я заметил на страницах документации Adobe.

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

function completeHandler(event:Event):void {
    var txt:String = URLLoader(event.currentTarget).data as String;
    tf.text = txt;
    ...
}

Илиэто:

function completeHandler(event:Event):void {
    tf.text = URLLoader(event.target).data;
    ...
}

Сам, я всегда делал это:

function completeHandler(event:Event):void {
    tf.text = event.target.data;
    ...
}

Итак, мой вопрос: есть ли важное отличие, о котором я должен знать?

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Единственная возможная, выгодная разница между тремя - это кастинг.Приводя результат к объекту данных 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).

0 голосов
/ 03 апреля 2011

Если все три метода работают идеально, и они делают то, что вам нужно, то нет существенной разницы, это просто приведение типов - используйте тот, который вам удобнее. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...