我想通過actionscript與python腳本通信。它給我就行錯誤:
var stdOut:ByteArray = process.standardOutput;
從下圖所示的功能:
NativeProcess通信給出錯誤
public function onOutputData(event:ProgressEvent):void
{
var stdOut:ByteArray = process.standardOutput; //error
var data:String = stdOut.readUTFBytes(process.standardOutput.bytesAvailable);
trace("Got: ", data);
}
錯誤是:
Implicit coercion of a value with static type IDataInput to a possibly unrelated type ByteArray.
我下面的相同的方法,在Adobe的網頁。下面是一些測試代碼:
package
{
import flash.display.Sprite;
import flash.desktop.NativeProcessStartupInfo;
import flash.filesystem.File;
import flash.desktop.NativeProcess;
import flash.events.ProgressEvent;
import flash.utils.ByteArray;
public class InstaUtility extends Sprite
{
public var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
public var file:File = new File("C:/Python27/python.exe");
public var process:NativeProcess = new NativeProcess();
public function InstaUtility()
{
nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.workingDirectory = File.applicationDirectory.resolvePath(".");
trace("Location " + File.applicationDirectory.resolvePath(".").nativePath);
var processArgs:Vector.<String> = new Vector.<String>();
processArgs[0] = "test.py";
nativeProcessStartupInfo.arguments = processArgs;
var process:NativeProcess = new NativeProcess();
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
process.start(nativeProcessStartupInfo);
}
public function onOutputData(event:ProgressEvent):void
{
var stdOut:ByteArray = process.standardOutput; //error
var data:String = stdOut.readUTFBytes(process.standardOutput.bytesAvailable);
trace("Got: ", data);
}
}
}
也越來越運行時錯誤: 「主線程(暫停:錯誤:錯誤#3219:時,NativeProcess無法啓動, '在當前的配置文件不支持。')\t」 –
如果'(NativeProcess.isSupported) {(0;};}} }'請注意:「NativeProcess類及其功能僅適用於使用本機安裝程序(擴展桌面配置文件應用程序)安裝的AIR應用程序。」 – user2836288