![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 16.08.10]
Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
|
Здравствуйте!
Зделал класс для рекурсивного поиска файлов в асинхронными режиме. Сам класс: 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. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Отправьте событие по окончанию обработки.
|
|
|||||
|
[+3 16.08.10]
Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
|
Я знаю что нужно отправить событие и как это зделать, но вот когда имино это зделать??
Как узнать что обработка закончелась? ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
http://help.adobe.com/en_US/AS3LCR/F...ispatcher.html
http://help.adobe.com/en_US/AS3LCR/F...event:complete |
|
|||||
|
[+3 16.08.10]
Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
|
Цитата:
Не знаю к чему эти линки если я написал что знаю как ими пользоватся. Дело в том что в папке могут быть N подпапок и N файлов... Скрипт проходит по всем из них рекурсивно. Нужно узнать когда он прошолся по всем папкам, подпапкам и файлам. ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Первая ссылка была ответом на ваш первый вопрос, а вторая на второй соответственно. В особенности по второй ссылке прямой ответ на ваш вопрос на ясном английском языке.
|
|
|||||
|
[+3 16.08.10]
Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
|
Цитата:
Жесть!! Ну и к чему ты предлагаешь прикрепить Event.COMPLETE ?? Функции могут вызывается N раз и соотвествено будут N событий. В первом посте весь класс. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я предлагаю вам подписаться на событие Event.COMPLETE tmp_dir и отправлять его от имени DirectoryParser.
|
|
|||||
|
[+3 16.08.10]
Регистрация: Mar 2009
Адрес: Кишинев
Сообщений: 29
|
Цитата:
Сделал изменения в классе. tmp_dir не возвращает ни каких Event.COMPLETE Последний раз редактировалось Shogun4ever; 17.06.2009 в 15:33. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Сделал («рус.»)!
Не возвращает потому что подписываетесь не там и не у того, что нужно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|