Use Flash native trace, handle Flash logs and pipe to terminal window
This commit is contained in:
@@ -47,6 +47,8 @@
|
|||||||
<dependency path="dependencies/webgl-debug.js" if="html5 debug" />
|
<dependency path="dependencies/webgl-debug.js" if="html5 debug" />
|
||||||
<dependency path="dependencies/stats.min.js" if="html5 stats" />
|
<dependency path="dependencies/stats.min.js" if="html5 stats" />
|
||||||
|
|
||||||
|
<haxedef name="native-trace" if="flash" unless="haxe-trace || haxetrace" />
|
||||||
|
|
||||||
<architecture name="armv7" if="android" />
|
<architecture name="armv7" if="android" />
|
||||||
|
|
||||||
<haxedef name="lime-cairo" unless="flash || html5" />
|
<haxedef name="lime-cairo" unless="flash || html5" />
|
||||||
|
|||||||
@@ -570,6 +570,29 @@ class FlashHelper {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
public static function enableLogging ():Void {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
var path = switch (PlatformHelper.hostPlatform) {
|
||||||
|
|
||||||
|
case WINDOWS: Sys.getEnv ("HOMEDRIVE") + "/" + Sys.getEnv ("HOMEPATH") + "/mm.cfg";
|
||||||
|
case MAC: "/Library/Application Support/Macromedia/mm.cfg";
|
||||||
|
default: Sys.getEnv ("HOME") + "/mm.cfg";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!FileSystem.exists (path)) {
|
||||||
|
|
||||||
|
File.saveContent (path, "ErrorReportingEnable=1\nTraceOutputFileEnable=1\nMaxWarnings=50");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e:Dynamic) {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static function compileSWC (project:HXProject, assets:Array<Asset>, id:Int):Void {
|
private static function compileSWC (project:HXProject, assets:Array<Asset>, id:Int):Void {
|
||||||
|
|
||||||
#if format
|
#if format
|
||||||
@@ -874,6 +897,31 @@ class FlashHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function getLogLength ():Int {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
var path = switch (PlatformHelper.hostPlatform) {
|
||||||
|
|
||||||
|
case WINDOWS: PathHelper.escape (Sys.getEnv ("APPDATA") + "/Macromedia/Flash Player/Logs/flashlog.txt");
|
||||||
|
case MAC: Sys.getEnv ("HOME") + "/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt";
|
||||||
|
default: Sys.getEnv ("HOME") + "/.macromedia/Flash_Player/Logs/flashlog.txt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FileSystem.exists (path)) {
|
||||||
|
|
||||||
|
return FileSystem.stat (path).size;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e:Dynamic) { }
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static function nextAssetID () {
|
private static function nextAssetID () {
|
||||||
|
|
||||||
return swfAssetID++;
|
return swfAssetID++;
|
||||||
@@ -903,5 +951,65 @@ class FlashHelper {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function tailLog (start:Int = 0):Void {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
var path = switch (PlatformHelper.hostPlatform) {
|
||||||
|
|
||||||
|
case WINDOWS: PathHelper.escape (Sys.getEnv ("APPDATA") + "/Macromedia/Flash Player/Logs/flashlog.txt");
|
||||||
|
case MAC: Sys.getEnv ("HOME") + "/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt";
|
||||||
|
default: Sys.getEnv ("HOME") + "/.macromedia/Flash_Player/Logs/flashlog.txt";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var position = start;
|
||||||
|
|
||||||
|
if (FileSystem.exists (path)) {
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
Sys.sleep (1);
|
||||||
|
var input = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
input = File.read (path, false);
|
||||||
|
input.seek (position, FileSeek.SeekBegin);
|
||||||
|
|
||||||
|
if (!input.eof ()) {
|
||||||
|
|
||||||
|
var bytes = input.readAll ();
|
||||||
|
position = input.tell ();
|
||||||
|
|
||||||
|
if (bytes.length > 0) {
|
||||||
|
|
||||||
|
Sys.print (bytes.getString (0, bytes.length));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
input.close ();
|
||||||
|
|
||||||
|
} catch (e:Dynamic) {
|
||||||
|
|
||||||
|
if (input != null) {
|
||||||
|
|
||||||
|
input.close ();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e:Dynamic) {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class FlashPlatform extends PlatformTarget {
|
|||||||
|
|
||||||
|
|
||||||
private var embedded:Bool;
|
private var embedded:Bool;
|
||||||
|
private var logLength:Int;
|
||||||
|
|
||||||
|
|
||||||
public function new (command:String, _project:HXProject, targetFlags:Map <String, String>) {
|
public function new (command:String, _project:HXProject, targetFlags:Map <String, String>) {
|
||||||
@@ -194,6 +195,13 @@ class FlashPlatform extends PlatformTarget {
|
|||||||
|
|
||||||
public override function run ():Void {
|
public override function run ():Void {
|
||||||
|
|
||||||
|
if (traceEnabled) {
|
||||||
|
|
||||||
|
FlashHelper.enableLogging ();
|
||||||
|
//logLength = FlashHelper.getLogLength ();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (project.app.url != null && project.app.url != "") {
|
if (project.app.url != null && project.app.url != "") {
|
||||||
|
|
||||||
ProcessHelper.openURL (project.app.url);
|
ProcessHelper.openURL (project.app.url);
|
||||||
@@ -209,7 +217,22 @@ class FlashPlatform extends PlatformTarget {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FlashHelper.run (project, destination, targetPath);
|
if (traceEnabled) {
|
||||||
|
|
||||||
|
neko.vm.Thread.create (function () {
|
||||||
|
|
||||||
|
FlashHelper.run (project, destination, targetPath);
|
||||||
|
Sys.exit (0);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Sys.sleep (0.1);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
FlashHelper.run (project, destination, targetPath);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,6 +295,13 @@ class FlashPlatform extends PlatformTarget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override function trace ():Void {
|
||||||
|
|
||||||
|
FlashHelper.tailLog (0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*private function getIcon (size:Int, targetPath:String):Void {
|
/*private function getIcon (size:Int, targetPath:String):Void {
|
||||||
|
|
||||||
var icon = icons.findIcon (size, size);
|
var icon = icons.findIcon (size, size);
|
||||||
@@ -291,7 +321,6 @@ class FlashPlatform extends PlatformTarget {
|
|||||||
|
|
||||||
@ignore public override function install ():Void {}
|
@ignore public override function install ():Void {}
|
||||||
@ignore public override function rebuild ():Void {}
|
@ignore public override function rebuild ():Void {}
|
||||||
@ignore public override function trace ():Void {}
|
|
||||||
@ignore public override function uninstall ():Void {}
|
@ignore public override function uninstall ():Void {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user