Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 15.06.2009, 23:37
Shogun4ever вне форума Посмотреть профиль Отправить личное сообщение для Shogun4ever Найти все сообщения от Shogun4ever
  № 1  
Shogun4ever
[+3 16.08.10]

Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
По умолчанию Событие завершение поиска в асинхронными режиме.

Здравствуйте!

Зделал класс для рекурсивного поиска файлов в асинхронными режиме.

Сам класс:
Код AS3:
package flashmaster.classes.application
  {   
    import flash.filesystem.File;
    import flash.events.Event;
    import flash.events.FileListEvent;
    import flash.events.EventDispatcher;
    import flashmaster.classes.application.ApplicationEvent;
 
    public class DirectoryParser extends EventDispatcher
      {
        public  var files:Array;  
	public  var directories:Array;
	public  var total_directories:int;
	public  var total_files:int;
	private var extensions:Array;
	private var tmp_dir:File;
	private var tmp_list:Array;
	private var searching:Boolean;
	private var parse_subdirectories:Boolean;
	private var file:File;
	private var ext_ok:Boolean;
	private var all_ext:Boolean;
 
	public function DirectoryParser(main_dir:File,extens:Array=null,parse_sub:Boolean=true):void
          {
	    extensions = extens;
	    all_ext = extens == null || !extens.length;
	    parse_subdirectories = parse_sub;
 
	    files = new Array();
	    directories = new Array();
 
            tmp_dir = main_dir;
	    tmp_dir.addEventListener(Event.COMPLETE, parsing_complete);
	    parse_directory(tmp_dir);
	  }
 
	public function parse_directory(main_dir:File):void 
          {
            tmp_dir = main_dir;
 
	    tmp_dir.addEventListener(FileListEvent.DIRECTORY_LISTING, get_files);
            tmp_dir.getDirectoryListingAsync();
          } 
 
	private function get_files(e:FileListEvent):void 
          {
            tmp_list = e.files; 
 
	    for each(file in tmp_list) 
	      {
	        ext_ok = (!all_ext && file.extension!=null && extensions.indexOf(file.extension.toLowerCase())!=-1) ? true : all_ext;
 
		if (file.isDirectory)
		  {
		    total_directories++;
                    if (parse_subdirectories) { parse_directory(file); }
		    directories.push(file);
                  } 
	 	else if (ext_ok)
		  {
                    total_files++;
   		    files.push(file);
                  }
		trace(file.name);
	      }		
          }
 
        private function parsing_complete(e:Event):void
          {
	    trace("COMPLETE"); 
	  }
      }
  }
Проблема в том что выполнение в асинхронными режиме и нужно узнать когда скрипт закончил поиск. Знаю что просто должно быть, но чет никак не могу найти решение.

Буду благодарен если ктото поможет.

Спасибо.


Последний раз редактировалось Shogun4ever; 17.06.2009 в 15:35.
Старый 16.06.2009, 08:15
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Отправьте событие по окончанию обработки.

Старый 16.06.2009, 17:09
Shogun4ever вне форума Посмотреть профиль Отправить личное сообщение для Shogun4ever Найти все сообщения от Shogun4ever
  № 3  
Shogun4ever
[+3 16.08.10]

Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
Цитата:
Сообщение от __etc Посмотреть сообщение
Отправьте событие по окончанию обработки.
Я знаю что нужно отправить событие и как это зделать, но вот когда имино это зделать??
Как узнать что обработка закончелась?

Старый 16.06.2009, 17:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
http://help.adobe.com/en_US/AS3LCR/F...ispatcher.html
http://help.adobe.com/en_US/AS3LCR/F...event:complete

Старый 16.06.2009, 22:34
Shogun4ever вне форума Посмотреть профиль Отправить личное сообщение для Shogun4ever Найти все сообщения от Shogun4ever
  № 5  
Shogun4ever
[+3 16.08.10]

Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29

Не знаю к чему эти линки если я написал что знаю как ими пользоватся.

Дело в том что в папке могут быть N подпапок и N файлов... Скрипт проходит по всем из них рекурсивно.

Нужно узнать когда он прошолся по всем папкам, подпапкам и файлам.

Старый 16.06.2009, 23:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Первая ссылка была ответом на ваш первый вопрос, а вторая на второй соответственно. В особенности по второй ссылке прямой ответ на ваш вопрос на ясном английском языке.

Старый 17.06.2009, 02:31
Shogun4ever вне форума Посмотреть профиль Отправить личное сообщение для Shogun4ever Найти все сообщения от Shogun4ever
  № 7  
Shogun4ever
[+3 16.08.10]

Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
Цитата:
Сообщение от __etc Посмотреть сообщение
Первая ссылка была ответом на ваш первый вопрос, а вторая на второй соответственно. В особенности по второй ссылке прямой ответ на ваш вопрос на ясном английском языке.

Жесть!!

Ну и к чему ты предлагаешь прикрепить Event.COMPLETE ?? Функции могут вызывается N раз и соотвествено будут N событий.

В первом посте весь класс.

Старый 17.06.2009, 07:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Я предлагаю вам подписаться на событие Event.COMPLETE tmp_dir и отправлять его от имени DirectoryParser.

Старый 17.06.2009, 15:26
Shogun4ever вне форума Посмотреть профиль Отправить личное сообщение для Shogun4ever Найти все сообщения от Shogun4ever
  № 9  
Shogun4ever
[+3 16.08.10]

Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
Цитата:
Сообщение от __etc Посмотреть сообщение
Я предлагаю вам подписаться на событие Event.COMPLETE tmp_dir и отправлять его от имени DirectoryParser.

Сделал изменения в классе.
tmp_dir не возвращает ни каких Event.COMPLETE


Последний раз редактировалось Shogun4ever; 17.06.2009 в 15:33.
Старый 17.06.2009, 15:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Сделал («рус.»)!

Не возвращает потому что подписываетесь не там и не у того, что нужно.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 15:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.