Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何从AIR调用AppleScript进程?_Flash_Apache Flex_Air_Applescript - Fatal编程技术网

Flash 如何从AIR调用AppleScript进程?

Flash 如何从AIR调用AppleScript进程?,flash,apache-flex,air,applescript,Flash,Apache Flex,Air,Applescript,如何从AIR本机进程调用AppleScript进程 背景: 我创建了一个script.scpt文件,并将其放在项目的根src目录中 我得到的是一个错误: Error: Error #3219: The NativeProcess could not be started. 'launch path not accessible' var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInf

如何从AIR本机进程调用AppleScript进程

背景: 我创建了一个script.scpt文件,并将其放在项目的根src目录中

我得到的是一个错误:

Error: Error #3219: The NativeProcess could not be started. 'launch path not accessible'
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("MyScript.scpt");
var processArgs:Vector.<String>;

nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.workingDirectory = File.applicationDirectory;

processArgs = new Vector.<String>();
processArgs[0] = "foo";

nativeProcessStartupInfo.arguments = processArgs;

process = new NativeProcess();
process.start(nativeProcessStartupInfo);
我所拥有的:

Error: Error #3219: The NativeProcess could not be started. 'launch path not accessible'
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var file:File = File.applicationDirectory.resolvePath("MyScript.scpt");
var processArgs:Vector.<String>;

nativeProcessStartupInfo.executable = file;
nativeProcessStartupInfo.workingDirectory = File.applicationDirectory;

processArgs = new Vector.<String>();
processArgs[0] = "foo";

nativeProcessStartupInfo.arguments = processArgs;

process = new NativeProcess();
process.start(nativeProcessStartupInfo);
之后,我将脚本文件名作为参数传递。它还需要将工作目录设置为脚本的目录,否则会得到:

  ERROR - osascript: script.scpt: No such file or directory

答案添加到原始帖子中。

我对苹果一无所知,但在我看来,“MyScript.scpt”本身并不是可执行文件(它只是一个脚本文件,没有编译代码)。所以我认为它的路径应该作为运行这些苹果脚本的任何应用程序的参数。这使得这更像是一个“苹果”问题,所以也许你应该给它贴上这样的标签。在网上的一些地方我看到过这样的评论,“将osascript设置为nativeProcess可执行文件”,但没有给出任何代码。似乎osascript将使用scpt脚本作为参数。在所有示例中,都创建了一个指向源代码的文件作为可执行文件,但我找不到该文件,因此本文将其作为参考。该“osascript”似乎位于操作系统的类路径上,因此我怀疑您只需执行
nativeProcessStartupInfo.executable=“osascript”
然后
processArgs[0]=“\path\to\MyScript.scpt”。我猜您的脚本没有位于正确的目录中。File.applicationDirectory很可能指向bin debug,所以您的文件也应该在那里,而不是在项目src中。谢谢大家。问题解决了。可执行文件需要设置为包含命令的有效完整路径的文件,而不管它是否位于操作系统类路径中,这对于苹果开发人员来说可能是显而易见的。:)