论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

关于fscommand调用EXE的一点心得体会

文章类别:Flash | 发表日期:2008-9-21 15:07:43

  今天一位朋友问我关于fscommand的问题,是关于调用EXE文件的
看到论坛上很多朋友都提到了这个问题,但是每次都无功而返,今天我也尝试做了一次,在实验中,多亏了卢巧音中文网朋友的支持和帮忙,在这儿我同样要感谢他!



很多朋友在贴子里经常问:为什么我的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文件夹下吧:)
下面献上源代码:
点击浏览该文件
再次说明一点,由于此例只能在本地机器上进行测试,可能会因为路经的问题而导致测试不成功,你可以把RAR文件全解压缩到同一文件目录下,假如还不行,可以下载下面这个代码,和上面的代码的区别就是少了1.exe文件,你可以自己去创建,方法上面贴子已经介绍过了:)
点击浏览该文件
最后,希望各位能够多动动手自己常识做一下,究竟自己体会过了才算是真正的学到手了
同时也感谢jimsons朋友,有一部分的内容是从他那儿学到的,希望各位有空也去支持支持他,他的原创贴地址如下:





http://flash8.net/dispbbs.asp?boardID=1&ID=74915

有空大家多交流,最后,谢谢各位的支持!
上一篇:{技巧}李宁网站上的菜单解析 人气:2846
下一篇:{技巧}鼠绘环境背景内幕 人气:1566
视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058