62 lines
1.9 KiB
ActionScript
62 lines
1.9 KiB
ActionScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
package org.mangui.hls.stream {
|
|
import flash.utils.flash_proxy;
|
|
import flash.utils.Proxy;
|
|
|
|
/** Proxy that allows dispatching internal events fired by Netstream cues to
|
|
* internal listeners as well as the traditional client object
|
|
*/
|
|
public class HLSNetStreamClient extends Proxy {
|
|
private var _delegate : Object;
|
|
private var _callbacks : Object = new Object();
|
|
|
|
public function HLSNetStreamClient() {
|
|
}
|
|
|
|
public function set delegate(client : Object) : void {
|
|
this._delegate = client;
|
|
}
|
|
|
|
public function get delegate() : Object {
|
|
return this._delegate;
|
|
}
|
|
|
|
public function registerCallback(name : String, callback : Function) : void {
|
|
_callbacks[name] = callback;
|
|
}
|
|
|
|
override flash_proxy function callProperty(methodName : *, ... args) : * {
|
|
var r : * = null;
|
|
|
|
if (_callbacks && _callbacks.hasOwnProperty(methodName)) {
|
|
r = _callbacks[methodName](args);
|
|
}
|
|
|
|
if (_delegate && _delegate.hasOwnProperty(methodName)) {
|
|
r = _delegate[methodName](args);
|
|
}
|
|
|
|
return r;
|
|
}
|
|
|
|
override flash_proxy function getProperty(name : *) : * {
|
|
var r : *;
|
|
if (_callbacks && _callbacks.hasOwnProperty(name)) {
|
|
r = _callbacks[name];
|
|
}
|
|
|
|
if (_delegate && _delegate.hasOwnProperty(name)) {
|
|
r = _delegate[name];
|
|
}
|
|
|
|
return r;
|
|
}
|
|
|
|
override flash_proxy function hasProperty(name : *) : Boolean {
|
|
return (_delegate && _delegate.hasOwnProperty(name)) || _callbacks.hasOwnProperty(name);
|
|
}
|
|
}
|
|
}
|