2015-08-20 42 views

回答

1

如果您在Linux上使用Adobe AIR的2.0.x版本,你可以使用的NativeProcess()類(假設你的update.py被標記爲可執行文件(A + X):

var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
var file:File = File.applicationDirectory.resolvePath("update.py"); 
nativeProcessStartupInfo.executable = file; 
var processArgs:Vector.<String> = new Vector.<String>(); 
processArgs.push("AnUpdateArgument"); 
nativeProcessStartupInfo.arguments = processArgs; 
process = new NativeProcess(); 
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); 
process.start(nativeProcessStartupInfo); 
public function onOutputData(event:ProgressEvent):void 
{ 
    var stdOut:ByteArray = process.standardOutput; 
    var data:String = stdOut.readUTFBytes(process.standardOutput.bytesAvailable); 
    trace("Got: ", data); 
} 

Communicating with native processes in AIR

注:無法通過基於瀏覽器的SWF做這個

+0

我不使用空氣。這仍然適用於本地瑞士法郎嗎? – Transisco

+0

不,訪問本機進程,文件系統等僅基於AIR。由於安全沙箱,這些API不適用於基於瀏覽器的Flash/SWF。 – SushiHangover

0

OK

我看我可以代替文件變量的值什麼都我需要前。 ecuted.That很好,如果我想執行該文件。怎麼樣一個簡單的命令,如cd MyDirmkdir ThisAndThat只是簡單的傳球到殼將是偉大的。我也用SFW來使用GNU Gnash。

+0

每次調用「process.start(nativeProcessStartupInfo);」你會得到一個新的shell,那麼你可以「cd MyDir」嗎?當然,但是在cmd完成後shell的狀態已經消失。像「mkdir ThisAndThat」可以用Air的File.createDirectory()完成。如果有一系列的shell cmd,你可以調用一個現有的腳本或者啓動「sh」作爲一個進程,並傳遞一串參數,就像你從bash/zsh/etc中一樣。單線程(即:sh - c「cd〜/ script; ./fixme.sh; cd〜/ foo; ./python-script.py」) – SushiHangover

+0

@RobertN你會推薦一個類似於Flash的平臺,它可以更容易地與操作系統進行交互嗎?我正在製作一個imbeded設備,我將爲我的ui使用閃光燈,因爲它可以全屏使用,並且可以在圖形化的所見即所得環境中進行設計。我卡住了。 – Transisco