Показать сообщение отдельно
Старый 05.02.2010, 22:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Нужды не было, не осуществлял, но подсказать могу.
Если надо получить листинг серверного каталога и разобрать ответ скрипта внутри флеша, закиньте такой скрипт в искомый каталог на сервере:

Файл list.php
PHP код:
<?php
$dir 
= ".";
$n = 0;
$dp = opendir($dir);
while (
$file = readdir($dp))
if (
$file != '.' && $file != '..') echo 'file'.$n++.'='.$file.'&';
closedir($dp);
?>
Запрос к скрипту делаете из экземпляра класса LoadVars.
Флеш получит после запроса строку вида
Код:
 file0=1.txt&file1=2.txt&file3=somefile.ext& ....... и т.д.
Останется элементарно ее распарсить внутри метода onLoad.

Таким образом, во флеше код будет:
Код AS1/AS2:
var lv:LoadVars = new LoadVars();
var FILES:Array = new Array();
lv.onLoad = function  (success:Boolean) {
	if (success) {
		for (i in this) {
			if (i.substr(0, 4) == 'file') {
				FILES[i] = this[i];
			}
		}
                startListingShow();
	}
};
 
lv.load ('http://www.xxx.ru/dir/list.php');
На выходе имеем массив FILES, содержащий названия файлов каталога, а индексы массива будут строки вида file0, file1....
Если внутри цикла записать
Код AS1/AS2:
FILES.push(this[i]);
вместо
Код AS1/AS2:
FILES[i] = this[i];
, то получим массив с номерными индексами, что позволит использовать его для получения имени файла так:
Код AS1/AS2:
trace (FILES[0]); //выведет 1.txt
trace (FILES[2]); //выведет somefile.ext
Хотя сам массив будет доступен везде, начинать его использовать (startListingShow) можно только изнутри onLoad, чтобы была гарантия загрузки данных.

Какая будет startListingShow , т. е. как отобразить содержимое массива - тут от ваших целей зависит, от опыта и фантазии..
Хотите - используйте компонент Tree, хотите - аттачтте столбиком красивышные иконки с подписями-названиями файлов.
Либо просто список в динамическом текстовом поле выводите, это ваше усмотрение.

Если там еще есть вложенные каталоги - нужно усложнять код php-скрипта, при этом задействовать PHP-шные функции типа is_dir. Обратитесь к справочнику или учебнику php, в зависимости от вашей подготовки...


Последний раз редактировалось mooncar; 05.02.2010 в 23:27.