Cleaning up some older flash code, for the code completion stuff. Adding nmeCheckTimers from the nme timer class to work and actuate to work
This commit is contained in:
@@ -8,11 +8,7 @@
|
||||
company="underscorediscovery"
|
||||
/>
|
||||
|
||||
<app
|
||||
main="Main"
|
||||
path="bin"
|
||||
file="lime_example_simple"
|
||||
/>
|
||||
<app main="Main" path="bin" file="lime_example_simple" />
|
||||
|
||||
<window
|
||||
width="960"
|
||||
|
||||
@@ -74,11 +74,11 @@ class AudioHandler {
|
||||
sounds = new Map();
|
||||
}
|
||||
|
||||
public function create_sound(_name:String, _file:String ) {
|
||||
public function create_sound(_name:String, _file:String, ?_music:Bool = false ) {
|
||||
if(sounds.exists(_name)) {
|
||||
throw ">>> Named sounds are not allowed to have duplicate names";
|
||||
}
|
||||
var _handle = nme_sound_from_file( nme.AssetData.path.get(_file), false);
|
||||
var _handle = nme_sound_from_file( nme.AssetData.path.get(_file), _music);
|
||||
var _sound = new Sound(_handle);
|
||||
sounds.set(_name, _sound);
|
||||
}
|
||||
|
||||
@@ -253,6 +253,9 @@ class LiME {
|
||||
|
||||
_debug('on_update ' + Timer.stamp(), true, true);
|
||||
|
||||
//Keep the Timers updated. todo, tidy.
|
||||
Timer.nmeCheckTimers();
|
||||
|
||||
if(!has_shutdown) {
|
||||
|
||||
if(host.update != null) {
|
||||
|
||||
@@ -489,5 +489,5 @@ class Matrix3D
|
||||
}
|
||||
|
||||
#else
|
||||
typedef Matrix3D = flash.geom.Matrix3D;
|
||||
typedef Matrix3D = Dynamic; //todo ; flash.geom.Matrix3D;
|
||||
#end
|
||||
|
||||
@@ -517,6 +517,8 @@ enum LibraryType {
|
||||
#else
|
||||
|
||||
|
||||
#if flash
|
||||
|
||||
import haxe.io.Bytes;
|
||||
import haxe.macro.Context;
|
||||
import haxe.macro.Expr;
|
||||
@@ -761,5 +763,5 @@ class Assets {
|
||||
|
||||
}
|
||||
|
||||
|
||||
#end //if flash
|
||||
#end
|
||||
@@ -1,9 +1,7 @@
|
||||
package lime.utils;
|
||||
|
||||
#if lime_native
|
||||
typedef ByteArray = lime.utils.native.ByteArray;
|
||||
#end //lime_native
|
||||
|
||||
#if lime_html5
|
||||
typedef ByteArray = lime.utils.html5.ByteArray;
|
||||
#else
|
||||
typedef ByteArray = lime.utils.native.ByteArray;
|
||||
#end //lime_html5
|
||||
|
||||
@@ -1,320 +0,0 @@
|
||||
package lime.utils;
|
||||
#if js
|
||||
|
||||
|
||||
// import flash.events.Event;
|
||||
// import flash.events.EventDispatcher;
|
||||
import flash.events.HTTPStatusEvent;
|
||||
import flash.events.IOErrorEvent;
|
||||
import flash.events.ProgressEvent;
|
||||
// import flash.errors.IOError;
|
||||
// import flash.events.SecurityErrorEvent;
|
||||
|
||||
import flash.utils.ByteArray;
|
||||
import js.html.EventTarget;
|
||||
import js.html.XMLHttpRequest;
|
||||
import js.Browser;
|
||||
import js.Lib;
|
||||
|
||||
|
||||
class URLLoader extends EventDispatcher {
|
||||
|
||||
public var bytesLoaded:Int;
|
||||
public var bytesTotal:Int;
|
||||
public var data:Dynamic;
|
||||
public var dataFormat(default, set):URLLoaderDataFormat;
|
||||
private function set_dataFormat(inputVal:URLLoaderDataFormat):URLLoaderDataFormat {
|
||||
// prevent inadvertently using typed arrays when they are unsupported
|
||||
// @todo move these sorts of tests somewhere common in the vein of Modernizr
|
||||
if (inputVal == URLLoaderDataFormat.BINARY
|
||||
&& !Reflect.hasField(Browser.window, "ArrayBuffer")) {
|
||||
dataFormat = URLLoaderDataFormat.TEXT;
|
||||
} else {
|
||||
dataFormat = inputVal;
|
||||
}
|
||||
return dataFormat;
|
||||
}
|
||||
|
||||
|
||||
public function new(request:URLRequest = null) {
|
||||
|
||||
super();
|
||||
|
||||
bytesLoaded = 0;
|
||||
bytesTotal = 0;
|
||||
dataFormat = URLLoaderDataFormat.TEXT;
|
||||
|
||||
if (request != null) {
|
||||
|
||||
load(request);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function close():Void {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private dynamic function getData():Dynamic {
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function load(request:URLRequest):Void {
|
||||
|
||||
requestUrl(request.url, request.method, request.data, request.formatRequestHeaders());
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function registerEvents(subject:EventTarget):Void {
|
||||
|
||||
var self = this;
|
||||
if (untyped __js__("typeof XMLHttpRequestProgressEvent") != __js__('"undefined"')) {
|
||||
|
||||
subject.addEventListener("progress", onProgress, false);
|
||||
|
||||
}
|
||||
|
||||
untyped subject.onreadystatechange = function() {
|
||||
|
||||
if (subject.readyState != 4) return;
|
||||
|
||||
var s = try subject.status catch( e : Dynamic ) null;
|
||||
|
||||
if (s == untyped __js__("undefined")) {
|
||||
|
||||
s = null;
|
||||
|
||||
}
|
||||
|
||||
if (s != null) {
|
||||
|
||||
self.onStatus(s);
|
||||
|
||||
}
|
||||
|
||||
//js.Lib.alert (s);
|
||||
|
||||
if (s != null && s >= 200 && s < 400) {
|
||||
|
||||
self.onData(subject.response);
|
||||
|
||||
} else {
|
||||
|
||||
if (s == null) {
|
||||
|
||||
self.onError("Failed to connect or resolve host");
|
||||
|
||||
} else if (s == 12029) {
|
||||
|
||||
self.onError("Failed to connect to host");
|
||||
|
||||
} else if (s == 12007) {
|
||||
|
||||
self.onError("Unknown host");
|
||||
|
||||
} else if (s == 0) {
|
||||
|
||||
self.onError("Unable to make request (may be blocked due to cross-domain permissions)");
|
||||
self.onSecurityError("Unable to make request (may be blocked due to cross-domain permissions)");
|
||||
|
||||
} else {
|
||||
|
||||
self.onError("Http Error #" + subject.status);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function requestUrl(url:String, method:String, data:Dynamic, requestHeaders:Array<URLRequestHeader>):Void {
|
||||
|
||||
var xmlHttpRequest:XMLHttpRequest = untyped __new__("XMLHttpRequest");
|
||||
registerEvents(cast xmlHttpRequest);
|
||||
var uri:Dynamic = "";
|
||||
|
||||
if (Std.is(data, ByteArray)) {
|
||||
|
||||
var data:ByteArray = cast data;
|
||||
|
||||
switch (dataFormat) {
|
||||
|
||||
case BINARY: uri = data.nmeGetBuffer();
|
||||
default: uri = data.readUTFBytes(data.length);
|
||||
|
||||
}
|
||||
|
||||
} else if (Std.is(data, URLVariables)) {
|
||||
|
||||
var data:URLVariables = cast data;
|
||||
|
||||
for (p in Reflect.fields(data)) {
|
||||
|
||||
if (uri.length != 0) uri += "&";
|
||||
uri += StringTools.urlEncode(p) + "=" + StringTools.urlEncode(Reflect.field(data, p));
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (data != null) {
|
||||
|
||||
uri = data.toString();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
if (method == "GET" && uri != null && uri != "") {
|
||||
|
||||
var question = url.split("?").length <= 1;
|
||||
xmlHttpRequest.open(method, url + (if (question) "?" else "&") + uri, true);
|
||||
uri = "";
|
||||
|
||||
} else {
|
||||
|
||||
//js.Lib.alert ("open: " + method + ", " + url + ", true");
|
||||
xmlHttpRequest.open(method, url, true);
|
||||
|
||||
}
|
||||
|
||||
} catch(e:Dynamic) {
|
||||
|
||||
onError(e.toString());
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
//js.Lib.alert ("dataFormat: " + dataFormat);
|
||||
|
||||
switch (dataFormat) {
|
||||
|
||||
case BINARY: untyped xmlHttpRequest.responseType = 'arraybuffer';
|
||||
default:
|
||||
|
||||
}
|
||||
|
||||
for (header in requestHeaders) {
|
||||
|
||||
//js.Lib.alert ("setRequestHeader: " + header.name + ", " + header.value);
|
||||
xmlHttpRequest.setRequestHeader(header.name, header.value);
|
||||
|
||||
}
|
||||
|
||||
//js.Lib.alert ("uri: " + uri);
|
||||
|
||||
xmlHttpRequest.send(uri);
|
||||
onOpen();
|
||||
|
||||
getData = function() {
|
||||
|
||||
if (xmlHttpRequest.response != null) {
|
||||
|
||||
return xmlHttpRequest.response;
|
||||
|
||||
} else {
|
||||
|
||||
return xmlHttpRequest.responseText;
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Event Handlers
|
||||
|
||||
|
||||
|
||||
|
||||
private function onData(_):Void {
|
||||
|
||||
var content:Dynamic = getData();
|
||||
|
||||
switch (dataFormat) {
|
||||
|
||||
case BINARY: this.data = ByteArray.nmeOfBuffer(content);
|
||||
default: this.data = Std.string(content);
|
||||
|
||||
}
|
||||
|
||||
var evt = new Event(Event.COMPLETE);
|
||||
evt.currentTarget = this;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function onError(msg:String):Void {
|
||||
|
||||
var evt = new IOErrorEvent(IOErrorEvent.IO_ERROR);
|
||||
evt.text = msg;
|
||||
evt.currentTarget = this;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function onOpen():Void {
|
||||
|
||||
var evt = new Event(Event.OPEN);
|
||||
evt.currentTarget = this;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function onProgress(event:XMLHttpRequestProgressEvent):Void {
|
||||
|
||||
var evt = new ProgressEvent(ProgressEvent.PROGRESS);
|
||||
evt.currentTarget = this;
|
||||
evt.bytesLoaded = event.loaded;
|
||||
evt.bytesTotal = event.total;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function onSecurityError(msg:String):Void {
|
||||
|
||||
var evt = new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR);
|
||||
evt.text = msg;
|
||||
evt.currentTarget = this;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private function onStatus(status:Int):Void {
|
||||
|
||||
var evt = new HTTPStatusEvent(HTTPStatusEvent.HTTP_STATUS, false, false, status);
|
||||
evt.currentTarget = this;
|
||||
dispatchEvent(evt);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
typedef XMLHttpRequestProgressEvent = Dynamic;
|
||||
|
||||
|
||||
#end
|
||||
@@ -630,5 +630,5 @@ class ByteArray extends Bytes #if !haxe3 , #end implements ArrayAccess<Int> #if
|
||||
}
|
||||
|
||||
#else
|
||||
typedef ByteArray = flash.utils.ByteArray;
|
||||
typedef ByteArray = Dynamic;//todo ; flash.utils.ByteArray;
|
||||
#end
|
||||
|
||||
Reference in New Issue
Block a user