added disposable interface

This commit is contained in:
2013-11-08 15:23:51 +04:00
parent 6a4c1161cf
commit 7e7b974090
5 changed files with 17 additions and 1 deletions

5
haxework/core/IDisposable.hx Executable file
View File

@@ -0,0 +1,5 @@
package haxework.core;
interface IDisposable {
public function dispose():Void;
}

View File

@@ -56,6 +56,8 @@ class BaseLoader<T> implements ILoader<T> {
throw "Abstract";
}
private function onInit(e:Event):Void {}
private function onComplete(e:Event):Void {
var data:T = extrudeResult(e);
var c:ICallback<T> = callback;

View File

@@ -24,6 +24,7 @@ class BaseMediaLoader<T> extends BaseLoader<T> {
private function buildLoader():Loader {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
@@ -33,6 +34,7 @@ class BaseMediaLoader<T> extends BaseLoader<T> {
override private function dispose():Void {
super.dispose();
if (loader != null) {
loader.contentLoaderInfo.removeEventListener(Event.INIT, onInit);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);

View File

@@ -52,4 +52,9 @@ class Callback<T> implements ICallback<T> {
this._fail = callback.callFail;
return this;
}
public function dispose():Void {
_success = null;
_fail = null;
}
}

View File

@@ -1,6 +1,8 @@
package haxework.net.callback;
interface ICallback<T> {
import haxework.core.IDisposable;
interface ICallback<T> extends IDisposable {
public function success(f:T -> Void):ICallback<T>;
public function fail(f:Dynamic -> Void):ICallback<T>;
public function callSuccess(data:T):Void;