分享
 
 
 

Flash中如何通过按钮在本地打开视频

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

这问题很多人曾经问过(当然也有一部分是闪吧的成员),所以,笔者打算写个教程,希望能为大家排忧解难. 大家的问题的意思大概是:在本地,怎样在Flash里通过点一个按钮,用视频播放器打开一段视频(如RM电影)这里涉及三个程序:Flash,视频播放器.然后,由于Flash无法直接把文件名的数据传给播放器,所以还需要一个中间的程序来通信(笔者用VB写了一个).

接下来会把教程写给大家.

工作原理:

在MX或以上版本里,可以通过fscommand调用一个应用程序,但是,由于安全性的问题,fscommand的exec命令中,调用的应用程序不可以带有命令行参数,对于命令行参数,可能有些人不是很了解.下面给大家解释一下命令行参数的问题.

在Flash3~5里,我们可以通过如下办法用GreenMPC.exe程序打开一个文件a.rm

fscommand("exec","GreenMPC.exe a.rm")

其中,a.rm成为GreenMPC.exe的命令行参数,flash通过该语句,先打开GreenMPC.exe,再通过命令行参数告诉GreenMPC,要它打开a.rm这个文件.

所以,在5里头,做这个是非常方便的.

现在普遍都用7或以上版本了.fscommand("exec","GreenMPC.exe a.rm")失效,只能用fscommand("exec","GreenMPC.exe"),而这是达不到目的的,因为它只能打开GreenMPC.exe,而不能用GreenMPC.exe打开a.rm.

所以,目前最大的问题有两个:

1 要把a.rm传递出去

2 要让a.rm这个参数给GreemMPC.exe接收.

Flash把变量存在于内存里,至少对于大部分Flash设计者来说,在别的程序里是没办法获得的.所以,要尝试把a.rm存到硬盘里.

然而,在本地,Flash6和7版本都只能把数据存在于SharedObject里,其保存路径非常复杂(跟系统,用户名等因素相关),一不小心就会出错,所以,本地的硬盘还是不行.

那是否就没办法,"山穷水复疑无路"了?

回过头来想内存,会想到有一块很活泼的区域:剪贴板,Flash可以往剪贴板发送数据,这就"柳暗花明又一村"了!

第一个问题解决了.下面是第二个问题.

如何让GreenMPC获取到剪贴板的信息呢?

Flash是没有能力直接告诉GreenMPC直接获取剪贴板的数据作为命令行参数,因此,我们要通过一个中介.

笔者用VB写了个程序,获取剪贴板数据,并且把数据以命令行参数的形式交给GreenMPC.exe.

这样,问题就完全解决了,下面说说具体做法

下面说说具体做法

1 因为涉及多个文件,所以第一步先把文件放好.

1.1 新建一目录,你以后的文件都在此目录里.

1.2 在该目录下新建一Flash文档.

1.3 由于6或7的版本都只能调用fscommand目录下的程序,所以,新建一个文件夹fscommand,把播放器和视频文件放进去(注意,在放播放器的时候,跟播放器有关的系统文件都要放进去.

1.4 放入中间程序,文件在楼顶的压缩包里面的fscommand文件夹下,名为openMovie.exe.

该程序是笔者用VB写的,里头的代码如下(因为这是讨论Flash的地方,所以不作详细解释,读者有兴趣的话,可以参考跟VB有关的书籍).

Private Sub Form_Load() ’子过程,当程序窗体加载时运行

On Error GoTo OpenErr ’发生错误后,程序结束

Dim FilNam As String ’定义FilNam变量

If App.PrevInstance Then End ’为防止运行时出现混乱,所以只允许运行一个实例

FilNam = Clipboard.GetText ’把剪贴板的数据储存在一个名为FilNam的变量里.

Clipboard.Clear ’清空剪贴板

Shell "GreenMPC.exe " & """" & FilNam & """" ’运行GreenMPC.exe,并往把文件名以命令行参数的形式往播放器传递,让播放器打开FilNam.

OpenErr:

End '程序结束

2 文件放好了,下面编辑Flash文档

2.1 新建一个元件Button,是用来打开视频的,

2.2 在里头添加代码

on(release){

System.setClipboard("a.rm") //这句话用于将文件名的数据传到剪贴板,

fscommand("exec","openMovie.exe") //剪贴板获得数据后,可以打开openMovie.exe了,让该程序来获取剪贴板数据,传输给GreenMPC.exe

}

2.3 现在,测试影片,你现在是看不到任何效果的.

2.4 但是,你现在如果打开记事本,"粘贴"一下,你会发现粘贴出来的是a.rm,可见,剪贴板已经从Flash里获得数据了.

2.5 之后的没有运行,是因为fscommand("exec",args)只能在独立播放器里使用(该观点并不完全正确,如果从更大的范围来讲),调试是没效果的.

2.6 在独立的播放器(请使用7或以上的版本)里打开生成的Flash,还是没有反应,为什么呢?

因为安全性,swf不能调用exe,需要exe才能调用exe.因此,在Flash播放时,选择"文件"-"创建播放器",保存个exe文件到当前路径.然后,运行该exe文件,点击按钮,a.rm就被GreenMPC.exe打开了.

2.7 如果你屏蔽了菜单,那就要在Flash设计模式下生成exe

"文件"-"发布设置",把"Windows放映文件(*.exe)勾上,按"发布",就可以了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有