hi guys,
I've read up most solutions for this error and none seem to apply.
I'm running a basic AS3 app in FlashBuilder, on OS-X.
- descriptor is set to extendedDesktop
- have set the profile in FB to 'extendedDesktop'
- am publishing as 'signed native installer'
- I've tried launching the file from both:
- app:/demo.sh
- file:///Users/visualife/Desktop/AE/demo.sh
- the target file is set to 777 (executable)
- the target file runs fine when directly targetted
- i'm running the exe on the same OS and machine it's created on
- changing the 'demo.sh' file to a jpg etc doesn't change anything
No matter what I try I get told native process is support, everything runs fine until start is called then a Error: 3219 is thrown with no further information.
all help greatly appreciated!
I've included my code below:
package { import flash.desktop.NativeProcess; import flash.desktop.NativeProcessStartupInfo; import flash.display.Sprite; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.NativeProcessExitEvent; import flash.events.ProgressEvent; import flash.filesystem.File; import flash.text.TextField; public class VauxhallController extends Sprite { private var debug_txt:TextField; public var process:NativeProcess; private var sh:File; public function VauxhallController() { if (stage) { init(); } else { this.addEventListener(Event.ADDED_TO_STAGE, init); } } private function init($e:Event=null):void { this.removeEventListener(Event.ADDED_TO_STAGE, init); build(); if (NativeProcess.isSupported) { initListeners(); debugMe("Native process supported"); go(); } else { debugMe("Native not supported"); } } private function build():void { // debug debug_txt = new TextField(); debug_txt.width = 300; debug_txt.height= 600; this.addChild(debug_txt); } private function initListeners():void { } private function go():void { runShellFile(); } private function runShellFile():void { var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); var essArgs:Vector.<String> = new Vector.<String>(); var file:File; file = File.desktopDirectory.resolvePath("AE/demo.sh"); nativeProcessStartupInfo.executable = file; nativeProcessStartupInfo.workingDirectory = File.desktopDirectory; nativeProcessStartupInfo.executable = file; process = new NativeProcess(); process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData); process.addEventListener(NativeProcessExitEvent.EXIT, onExit); process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError); process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError); try { process.start(nativeProcessStartupInfo); } catch (error:IllegalOperationError) { debugMe(error.toString()); } catch (error:ArgumentError) { debugMe(error.toString()); } catch (error:Error) { debugMe(error.toString()); } } public function onOutputData(event:ProgressEvent):void { debugMe("Got: "+ process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); } public function onErrorData(event:ProgressEvent):void { debugMe("ERROR: "+ process.standardError.readUTFBytes(process.standardError.bytesAvailable)); } public function onExit(event:NativeProcessExitEvent):void { debugMe("Process exited with: "+ event.exitCode); } public function onIOError(event:IOErrorEvent):void { debugMe("IOError: "+ event.toString()); } private function debugMe(_str:String):void { debug_txt.appendText(_str +"\n"); } } }