qmel
08.02.2011, 16:22
Здравствуйте!
Мне нужно после закрытия приложения удалить директорию с временными файлами, которая была создана за время работы приложения. У меня не получается отловить событие которое я диспатчу из главного окна. Исключение создаю свое, хотя может это и не нужно?
import flash.events.Event;
public class MyCloseEvent extends Event
{
public static const MY_CLOSE_EVENT:String = "MY_CLOSE_EVENT";
public function MyCloseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
override public function clone():Event{
var e:MyCloseEvent = new MyCloseEvent(type, bubbles, cancelable);
return e;
}
}
В главном окне пишу:
<mx:WindowedApplication .... closing = "closingHandler(event)">
protected function closingHandler(event:Event):void {
this.dispatchEvent(new Event(MyCloseEvent.MY_CLOSE_EVENT));
if (пользователь не разлогинился) {
event.preventDefault();
//...разлогинились
exit();
}
}
AS класс который слушает это событие:
public class Deleter {
public function Deleter() {
this.addEventListener(MyCloseEvent.MY_CLOSE_EVENT, deleteMyTempDir);
}
public function deleteTempDir():void
{
var TempDir:File = File.userDirectory;
TempDir = TempDir.resolvePath(mypath);
if (TempDir.exists) {
trace("Directory is exist")
try {
trace("Try delete")
TempDir.deleteDirectory(true);
}
catch (e:Error)
{
trace("Catch")
}
}
}
}
Итог: deleteTempDir() кажется не выполняется.
Мне нужно после закрытия приложения удалить директорию с временными файлами, которая была создана за время работы приложения. У меня не получается отловить событие которое я диспатчу из главного окна. Исключение создаю свое, хотя может это и не нужно?
import flash.events.Event;
public class MyCloseEvent extends Event
{
public static const MY_CLOSE_EVENT:String = "MY_CLOSE_EVENT";
public function MyCloseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
override public function clone():Event{
var e:MyCloseEvent = new MyCloseEvent(type, bubbles, cancelable);
return e;
}
}
В главном окне пишу:
<mx:WindowedApplication .... closing = "closingHandler(event)">
protected function closingHandler(event:Event):void {
this.dispatchEvent(new Event(MyCloseEvent.MY_CLOSE_EVENT));
if (пользователь не разлогинился) {
event.preventDefault();
//...разлогинились
exit();
}
}
AS класс который слушает это событие:
public class Deleter {
public function Deleter() {
this.addEventListener(MyCloseEvent.MY_CLOSE_EVENT, deleteMyTempDir);
}
public function deleteTempDir():void
{
var TempDir:File = File.userDirectory;
TempDir = TempDir.resolvePath(mypath);
if (TempDir.exists) {
trace("Directory is exist")
try {
trace("Try delete")
TempDir.deleteDirectory(true);
}
catch (e:Error)
{
trace("Catch")
}
}
}
}
Итог: deleteTempDir() кажется не выполняется.