我想通过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