added disposable interface
This commit is contained in:
5
haxework/core/IDisposable.hx
Executable file
5
haxework/core/IDisposable.hx
Executable file
@@ -0,0 +1,5 @@
|
||||
package haxework.core;
|
||||
|
||||
interface IDisposable {
|
||||
public function dispose():Void;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -52,4 +52,9 @@ class Callback<T> implements ICallback<T> {
|
||||
this._fail = callback.callFail;
|
||||
return this;
|
||||
}
|
||||
|
||||
public function dispose():Void {
|
||||
_success = null;
|
||||
_fail = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user