| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash经验技巧 > 文章正文 用户登录
iPlus广告联盟:4
Poco免费提供个人
悠博科技50M/FTP/
华云网络30M/FTP/
四亿美金被购 网
ComboBox应用
利用javascri
Flash Com
XML connector的讨
[翻译]javasc

fscommand调用exe文件详解           

fscommand调用exe文件详解

作者:佚名 来源:闪吧 作者: 龙族酷少 更新:2007-1-13 20:59:05 错误报告 我要投稿
很多朋友在贴子里常常问:为什么我的FLASH无法调用本地机器里的EXE文件呢,可是AS写得却没有错误,我是这样写的啊

on(release){
       fscommand("exec",     "***.exe");
}
是的,粗粗看来,确实在AS中没有任何错误,我一开始的时候也是这个模式,可是就是调用不了文件,首先,我们来了解一下fscommand的几个命令的意思

fscommand(cmd_string,     arg_string)     执行主机端指令。cmd_string指定所要执行的指令名,可为FlashPlayer的    
指令或浏览器javascript函数。arg_string声明该指令所用到的参数。    
FlashPlayer的指令有(只能在独立播放器时使用):    
"fullscreen"     是否全屏播放,参数为true或false    
"allowscale"     是否允许通过拉伸窗口缩放影片,参数为true或false    
"showmenu"     是否在播放器显示菜单,参数为true或false    
"trapallkeys"     是否屏蔽播放器的快捷键(如Esc表示停止播放并恢复    
"save"     隐藏属性,作用是存变量到文本文件.
视窗显示),参数为true或false。但Alt+F4系统快捷    
键(关闭窗口)依然可用。    
"exec"     运行arg_string所指定的文件。

以下只介绍exec命令的用法

EXEC是通过FLASH文件调用本地EXE文件的一个命令,下面我们来看图:

首先,新建一文件夹,命名为myflash


按此在新窗口浏览图片


打开flash,在场景中添加一按钮,在AS面板中写下代码:


on     (release)     {
       fscommand("exec",     "popo.exe");
}
至于为什么要取EXE文件的名字为popo,这个在后面会解释


按此在新窗口浏览图片

将刚才的flash文件保存为1.fla,另外创建一个1.swf文件

按此在新窗口浏览图片



在同一文件夹下新建一文件夹,命名为fscommand,这个文件夹是放置以后要调用的EXE文件的

按此在新窗口浏览图片

这时候你可以把EXE文件先放置到fscommand文件夹下了,钢材我用的popo.exe文件其实是网易泡泡的安装程序,其实是不是POPO无所谓,只要是以EXE为后醉的文件都可以

按此在新窗口浏览图片

这个时候有些朋友就开始ENTER+CTRL进行测试了,可是没有反应
没错啊,我钢材写的代码也没问题啊,我的路经也没问题啊,为什么就无法调用文件呢?

其实问题在这里!
Flash     MX中增强了安全性,它虽然也可以调用exe文件,但它是有条件的。    

1.你的flash文件不能是swf,而应该是exe文件,比如1.exe;    
2.要在1.exe同一目录中新建一命名fscommand目录,你要调用的外部可执行文件要在fscommand目录下

这句话不知道大家有没有看懂,说得通俗一点:SWF文件不能直接调用EXE文件!也就是说,只有将你钢材做好的那个带按钮想调用popo.exe的1.swf文件转换成EXE文件才可以调用popo.exe,其实也就是EXE调用EXE拉,只不过是前面的这个EXE必须是SWF转换过来的

转换方法如下:
导出exe格式    
            发布方法如下:
                                 选中     File     ->     Publish     Settings     或按ctrl+shift+F12
                                 它默认的发布类型为HTML(.html)与Flash(.swf),
                                 你将这两项取消,选中Windows     Projectors(.exe)
                                 即可将你的Flash文件直接发布为exe可执行文件
                                 按ctrl+F12即可发布
                                 若你的文件尚未保存则它会发布在你flash的安装目录中
                                 若你的文件已保存则会发布在你的文件同一目录下
            还有一种比较简便的方法是:
                          先用     File     ->     Export     Movie...或按Ctrl+Alt+Shift+S     导出swf文件
                          再打开这个文件,通过     文件     ->     创建播放器     即可产生EXE可执行文件

你要把SWF转成这个样子:


按此在新窗口浏览图片

现在打开你的1.exe,点一下中间的按钮试试看?

按此在新窗口浏览图片

经过以上的步骤,你是不是自己摸索出了一点规律和失败的原因了吗?

下面我替各位总结一下以上的内容:

首先,调用EXE文件最重要的一点,必须把你的SWF文件先转换成EXE,也就是FLASH的播放器,为什么要先转换成EXE文件?我们都知道,随着MACROMEDIA公司的flash软件在全球的兴起,也带来了一股flash热潮,当然了,更多的人是用在了商业用途中,比如说做flash首页,做动画,这都是有利益驱使的,如果没有金钱,谁也不会去做(当然除了象我们这些业余爱好者除外),所以也出现了一些利用flash转空子的人,他们利用flash强大的功能在网络中进行破坏活动,使一些用户遭受了巨大的损失,其中很大的一方面就是因为fscommand命令而造成的,在flashmx推出之前,使用flash5的用户在使用这个命令的时候,都可以直接通过SWF来调用EXE文件(只要你把EXE文件放在fscommand文件夹下就行),破坏分子就是利用这个漏洞对一些网上的FLASH文件进行攻击和破坏活动,现在flashmx的推出的同时,也把AS中的此代码改成了EXE调用EXE来执行命令,从而保护了用户的安全

其次,必须把你要调用的EXE文件放在同一目录的fscommand文件下,不然flash就无法查找该文件的具体路经

另外说一下,如果你不想放在该文件夹下也可以,但是要具体写明它的位置

具体的方法如下:

开启一个外部可执行程序:扩展名.exe可以省略。具体来说,若一个exe文件(假设为another.exe)和该swf文件本身在同一个目录下,则直接键入程序文件名即可。如:    
fscommand("exec","another")    
否则,应写明路径。如打开IE浏览器窗口:    
fscommand("exec","c:\\progra~1\\intern~1\\iexplore")    
//注意DOS下对长文件(夹)名的处理形式。    
下面两种情况也可以不写路径——    
(1)当可执行程序是在c:\windows目录下时,可以不写路径。如调用windows的计算器,下面三种写法均可:    
fscommand("exec","c:\\windows\\calc.exe")    
fscommand("exec","c:\\windows\\calc")    
fscommand("exec","calc")    
(2)调用DOS命令也可省略路径。如下例打开MS-DOS下的Edit编辑器:    
fscommand("exec","edit.com")    
如果熟悉批处理文件写法,通过FSCommand->exec命令执行批处理文件可以一举多得。    

当然,我个人认为,保持一个良好的习惯是必要的,所以还是复制一个EXE文件到fscommand文件夹下吧:)
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。