У меня есть класс " Course ", который содержит коллекцию " CourseItems ".
Каждый CourseItem имеет папку , связанную с ним (для своих файлов).
Мне нужно добавить CourseItem в Zip-файл и после его шифрования архивировать.
Используя FZip и As3crypto, я могу сделать zip и зашифровать zip файл.
Делать шифрование или нет - решать только пользователю.
В настоящее время мой код выглядит как (игнорировать синтаксис):
Редактировать: я постараюсь добавить еще информацию + подробное описание
В основном курс - это папка (по выбору пользователя) с подпапками (элементами курса).
отображение структуры подпапок в объект (ы) courseitem.
//main code
var encryptCourse:Boolean;
encryptCourse=true; // read from user..checkbox
var course:Course = new Course("path_coursefolder");//from user input
course.createCourseItems();
//read course folder and create "courseitem" for each subfolder
//and save in "courseItems" collection
//after creating pack course - zip and encrypt
course.Pack(encryptCourse);//encryptCourse bool encrypt course or not
class Course
{
var courseItems:Array; //set when creating
public function Pack()
{
for each (var item:CourseItem in courseItems)
{
item.addEventListener("ZIP_COMPLETE",onitemzip);
item.zip();
}
}
private function onitemzip(e:Event)
{
//if user selected to encrypt..do encryption
//now i want to call the encrypt method :(
//item.Encrypt() //cant call this,,how to refer to "item"??
}
}
class CourseItem
{
var files:Array; //set when creating
var _courseZipfile;
public function ZIP()
{
var ziputil = new Ziputil()
ziputil.createZip("some_name",files);
ziputil.addEventListener(Event.Complete,onZipComplete);
}
private function onZipComplete(e:Event)
{
dispatchEvent(new ZipEvent("ZIP_COMPLETE"));
//dispatch and update progess
//COULD CALL ENCRYPT HERE..but want to avoid.
}
public function Encrypt()
{
//encrypt zip file here
//event of encrypt finish
}
}
В основном в приведенном выше дизайне я хочу вызвать метод "Зашифровать" CourseItem в Course после Zipping.
Примечание: я ранее изменил класс courseitem.
Я пытался переместить пакет в CourseItem, а затем я могу обработать шифрование после zip.
Но благодаря этому я сильно объединяю методы Zip и encrypt.
После архивирования -> обязательно вызывается шифрование.
я хочу рефакторинг моего кода таким образом, чтобы оба метода
zip и encrypt независимы друг от друга?
Как я могу сделать то же самое ..
Спасибо всем