你不会是能够做到这一点使用ActionScript 2,你就不会成为能够做到这一点使用ActionScript 3 flash网页播放器。您可以使用某些工具创建使用动作脚本2和3的投影仪来添加这种扩展功能,但不能简单地通过网络来完成,因为这当然会带来极大的安全风险。
但是,您可以使用Adobe AIR 2.0或更高版本执行此操作。您可以使用NativeProcess类并检测操作系统,启动终端或cmd.exe,然后可以针对它运行命令。下面是我在一个项目开发运行使用AIR就像你正在试图做的对OS命令一些代码:
private var os:String;
private var consoleExecutable:File;
private var consoleNativeProcess:NativeProcess;
private function usbMounted(e:StorageVolumeChangeEvent):void
{
//status.appendText('Device: ' + e.storageVolume.name + ' mounted to drive: ' + e.storageVolume.drive + '\n');
os = Capabilities.os.substr(0, 3).toLowerCase();
switch (os)
{
case "win":
//Windows OS
var rootDirs:Array = File.getRootDirectories();
var i:int = 0;
for (i; i < rootDirs.length; ++i) {
consoleExecutable = rootDirs[i] as File;
consoleExecutable = consoleExecutable.resolvePath("Windows");
if (consoleExecutable.exists == true) {
consoleExecutable = consoleExecutable.resolvePath("System32");
consoleExecutable = consoleExecutable.resolvePath("cmd.exe");
i = rootDirs.length;
}
}
break;
case "lin":
//Linux OS
break;
case "mac":
//Mac OS
break;
case "iph":
//Iphone OS
break;
}
var consoleNativeProcessStartupNfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
consoleNativeProcessStartupNfo.executable = consoleExecutable;
var startupArgs:Vector.<String> = new Vector.<String>();
startupArgs.push('/C fsutil fsinfo volumeinfo ' + e.storageVolume.drive + ':');
consoleNativeProcessStartupNfo.arguments = startupArgs;
consoleNativeProcess = new NativeProcess();
consoleNativeProcess.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, consoleOutput);
consoleNativeProcess.start(consoleNativeProcessStartupNfo);
consoleNativeProcess.closeInput();
}
private function consoleOutput(e:ProgressEvent):void
{
var consoleOuput:String = consoleNativeProcess.standardOutput.readUTFBytes(consoleNativeProcess.standardOutput.bytesAvailable);
switch (os)
{
case "win":
//Windows OS
break;
case "lin":
//Linux OS
break;
case "mac":
//Mac OS
break;
case "iph":
//Iphone OS
break;
}
consoleNativeProcess.exit();
}
因此,代码应该是相当直截了当。它可能不会全部存在,因为我刚刚复制了处理本机进程启动,输出和终止的代码部分。然后我删除了部分敏感的代码。基本上你只是获取操作系统信息,导航到可执行文件的路径,检查它是否存在,如果是,启动它,运行一个命令,等待输出。我也在switch语句中检查了操作系统在处理输出时的情况,因为可以安全地假设你接下来做什么,输出也会依赖于操作系统(或者至少在我看来是这样)。如果您需要更多帮助了解所有这些信息,我建议您在Adobe AIR Native Process API上使用Google教程,或者在此处发布更多问题。 :)
button1.onRelease是AS2你为什么要将它标记为AS3? – 2011-05-26 19:11:41
我也想为AS2,AS3做同样的事情。 – YumYumYum 2011-05-26 19:29:27
劳拉请看我的答案。在浏览器中,AS2甚至AS3都不可能。您需要本机扩展,并且Flash播放器专门避免此问题以避免安全问题。您需要一个经过修改的Flash播放器投影机,或者最好是Adobe AIR 2.0或更高版本,这需要使用Actionscript 3. – 2011-05-26 19:32:28