首页 新闻 会员 周边

js如何与flash交互,希望有个示例讲解一下

0
悬赏园豆:10 [已解决问题] 解决于 2016-08-11 10:40

最近研究了一下js和flash交互的问题,但是发现交互的话貌似还需要使用actionscript写一段脚本嵌入到flash文件中,然后通过js调用as定义的函数来操控flash的效果,另外网上一些插件有直接用js调用flash的貌似没有看到as的样子,看了下ckplayer这个插件的源码,没有as,希望懂得的人能够有时间指导一下个中缘由,大致讲解一下原理就可以了,,最好可以给我发一个测试用例,在网上找的测试用例不知道怎么用,谢谢!

小kk06的主页 小kk06 | 初学一级 | 园豆:56
提问于:2016-08-11 08:18
< >
分享
最佳答案
0

那是因为人家的flash是swf格式,也就是生成好的flash,代码写到里面了,你怎么看到,相当于编译好的文件,你怎么看到源代码???

收获园豆:10
顾晓北 | 专家六级 |园豆:10844 | 2016-08-11 08:57

但是看的那个ckplayer插件貌似直接是用js代码操控的flash 并没有把as代码写到flash里面的样子

小kk06 | 园豆:56 (初学一级) | 2016-08-11 09:11

@小kk06: 你看到了???player不知道是不是flash提供的默认有播放器,直接调用就行,我比较怀疑flash是有类似播放器控件的,不用写代码,毕竟如果所有用flash作为播放器的如果都写一套自己的播放器,找自己的解码的东西比较扯淡,所有我倾向是这样的:flash有默认的播放器控件,直接用的话,不用写代码,就好比我们写winform程序的时候直接拖一个控件上去就行,有默认的行为,可以用js直接调用相关的方法,平时我们看到很多不同的flash播放器,只是因为自己加了皮肤而已;其他的flash,真写代码的,你也看不到代码,因为是编译以后的swf文件。。。看不到源代码。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-08-11 09:21

@小kk06: 能写as代码的文件,也就是flash的源代码文件貌似是as后缀。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-08-11 09:22

@顾晓北: 这倒是没看到,也就是说使用js引用flash的时候需要事先写好as文件编译成swf文件,然后在根据具体引用的视频或者其他格式文件这样的调用,是这个意思吗?

小kk06 | 园豆:56 (初学一级) | 2016-08-11 09:40

@小kk06: 对,你可以看到,可以往播放器里面传参数的。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-08-11 09:45

@顾晓北: 好的 大致知道了 因为一直想测试一下 但是有点怀疑要把as编译成flash可以调用的脚本才会有所以问一下确认一下 网上没有看到这部分的资料 总的来说就是 as编译过后的swf文件和js一起控制视频怎么样的是吧 然后flash是一个类似播放插件这样的东西是吗

小kk06 | 园豆:56 (初学一级) | 2016-08-11 09:59

@小kk06: 我其实没写过as,猜测是这样的,我的意思是播放的控件只是flash中的一部分(当然,flash还有其他很多功能,当初选修课学过一点flash),写成浏览器插件以后,可以用js来控制,比如我flash提供一个play()方法,暴露在外面,就可以用js来调用这个。。。

顾晓北 | 园豆:10844 (专家六级) | 2016-08-11 10:03

@顾晓北: 看了一下百科 发现flash影片的后缀名是.swf 是原有的格式结合了as之后的编译产品 外部链接也是要将as编译成swf格式然后结合视频还有js一起使用吗

小kk06 | 园豆:56 (初学一级) | 2016-08-11 10:27

@小kk06: 你这么理解as(actionscript),他是脚本,既然是脚本,就要有宿主,就像js的宿主就是HTML环境一样,as运行的环境就是flash的环境,视频播放的控件,我理解就像是HTML代码,有了他,as才能控制他,as提供对外的方法,js才能调用他(flash在HTML表现是Object,需要先在浏览器里安装flash插件,才能解释的出来的东西,有了flash插件,有了Object标签,浏览器才能解释),这样说清楚了么?

顾晓北 | 园豆:10844 (专家六级) | 2016-08-11 10:33

@顾晓北: 大致懂了 只是了解一下这个程度感觉就够了 谢谢你耐心的解答

小kk06 | 园豆:56 (初学一级) | 2016-08-11 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册