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";
|
throw "Abstract";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function onInit(e:Event):Void {}
|
||||||
|
|
||||||
private function onComplete(e:Event):Void {
|
private function onComplete(e:Event):Void {
|
||||||
var data:T = extrudeResult(e);
|
var data:T = extrudeResult(e);
|
||||||
var c:ICallback<T> = callback;
|
var c:ICallback<T> = callback;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class BaseMediaLoader<T> extends BaseLoader<T> {
|
|||||||
|
|
||||||
private function buildLoader():Loader {
|
private function buildLoader():Loader {
|
||||||
var loader:Loader = new Loader();
|
var loader:Loader = new Loader();
|
||||||
|
loader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
|
||||||
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
|
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
|
||||||
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
|
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
|
||||||
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
|
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
|
||||||
@@ -33,6 +34,7 @@ class BaseMediaLoader<T> extends BaseLoader<T> {
|
|||||||
override private function dispose():Void {
|
override private function dispose():Void {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
if (loader != null) {
|
if (loader != null) {
|
||||||
|
loader.contentLoaderInfo.removeEventListener(Event.INIT, onInit);
|
||||||
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
|
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
|
||||||
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
|
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
|
||||||
loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
|
loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
|
||||||
|
|||||||
@@ -52,4 +52,9 @@ class Callback<T> implements ICallback<T> {
|
|||||||
this._fail = callback.callFail;
|
this._fail = callback.callFail;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dispose():Void {
|
||||||
|
_success = null;
|
||||||
|
_fail = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package haxework.net.callback;
|
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 success(f:T -> Void):ICallback<T>;
|
||||||
public function fail(f:Dynamic -> Void):ICallback<T>;
|
public function fail(f:Dynamic -> Void):ICallback<T>;
|
||||||
public function callSuccess(data:T):Void;
|
public function callSuccess(data:T):Void;
|
||||||
|
|||||||
Reference in New Issue
Block a user