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:
underscorediscovery
2013-07-12 05:43:54 -02:30
parent 09924c9bed
commit 73160ce78b
8 changed files with 13 additions and 334 deletions

View File

@@ -8,11 +8,7 @@
company="underscorediscovery" company="underscorediscovery"
/> />
<app <app main="Main" path="bin" file="lime_example_simple" />
main="Main"
path="bin"
file="lime_example_simple"
/>
<window <window
width="960" width="960"

View File

@@ -74,11 +74,11 @@ class AudioHandler {
sounds = new Map(); 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)) { if(sounds.exists(_name)) {
throw ">>> Named sounds are not allowed to have duplicate names"; 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); var _sound = new Sound(_handle);
sounds.set(_name, _sound); sounds.set(_name, _sound);
} }

View File

@@ -253,6 +253,9 @@ class LiME {
_debug('on_update ' + Timer.stamp(), true, true); _debug('on_update ' + Timer.stamp(), true, true);
//Keep the Timers updated. todo, tidy.
Timer.nmeCheckTimers();
if(!has_shutdown) { if(!has_shutdown) {
if(host.update != null) { if(host.update != null) {

View File

@@ -489,5 +489,5 @@ class Matrix3D
} }
#else #else
typedef Matrix3D = flash.geom.Matrix3D; typedef Matrix3D = Dynamic; //todo ; flash.geom.Matrix3D;
#end #end

View File

@@ -517,6 +517,8 @@ enum LibraryType {
#else #else
#if flash
import haxe.io.Bytes; import haxe.io.Bytes;
import haxe.macro.Context; import haxe.macro.Context;
import haxe.macro.Expr; import haxe.macro.Expr;
@@ -761,5 +763,5 @@ class Assets {
} }
#end //if flash
#end #end

View File

@@ -1,9 +1,7 @@
package lime.utils; package lime.utils;
#if lime_native
typedef ByteArray = lime.utils.native.ByteArray;
#end //lime_native
#if lime_html5 #if lime_html5
typedef ByteArray = lime.utils.html5.ByteArray; typedef ByteArray = lime.utils.html5.ByteArray;
#else
typedef ByteArray = lime.utils.native.ByteArray;
#end //lime_html5 #end //lime_html5

View File

@@ -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

View File

@@ -630,5 +630,5 @@ class ByteArray extends Bytes #if !haxe3 , #end implements ArrayAccess<Int> #if
} }
#else #else
typedef ByteArray = flash.utils.ByteArray; typedef ByteArray = Dynamic;//todo ; flash.utils.ByteArray;
#end #end