Actionscript: как определить тип загруженного контента? - PullRequest
0 голосов
/ 06 января 2009

У меня есть ситуация, когда я загружаю некоторый контент, используя URLLoader, но контент может быть видео (flv или swf), изображением (jpg или png или gif) или swf. Хитрость в том, что мне нужно реагировать по-разному в зависимости от типа загружаемого контента, не зная заранее, какой это тип контента.

В настоящее время я придумал тщательно продуманное решение (и под сложным я имею в виду запутанную серию операторов if и try ... catch блоков), включающую попытку загрузить его в элемент управления и перехват ошибок (например: создайте экземпляр Image, добавьте прослушиватель события для события ioError, и он получен, я предполагаю, что это не изображение или swf ...), но это похоже на хак.

Есть ли какой-нибудь чистый способ определить тип загружаемого контента из URLLoader?

Ответы [ 4 ]

1 голос
/ 06 января 2009

Посмотрите: http://code.google.com/p/as3httpclient/wiki/Links, чтобы определить заголовки ответа. Я использовал его для другой цели, и он работал хорошо.

1 голос
/ 06 января 2009

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

например. все SWF-файлы должны начинаться с 0x46, 0x57, 0x53 («FWS») или 0x43, 0x57, 0x53 («CWS»), если они сжаты.

Это будут байты от 0 до 2 в массиве URLLoader.data.

0 голосов
/ 06 января 2009

может быть что-то вроде

switch(your_request.url.split('.')[1]){
  case 'jpg':
  case 'swf':
}
0 голосов
/ 06 января 2009

К сожалению, похоже, что если вы не используете AIR, то вы (по крайней мере, сегодня) не получаете доступ к заголовкам ответа HTTP (т.е. URLLoader.httpResponseStatus). Таким образом, ваш «придуманный» подход (который я на самом деле использовал сам!), Вероятно, является подходящим в настоящее время, как и предыдущий плакат.

Похоже, что в Adobe есть открытый вопрос:

http://bugs.adobe.com/jira/browse/FP-251

... так что, по крайней мере, это так. :)

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