Write the Code. Change the World.

6月 13

flash优势

flash对浏览器从不挑剔,无论ie,还是chrome等。只要你安装了flashplayer。在浏览器中,flash叫flash。在手机和桌面(mac,win,ipad)中叫air。所以,对于跨平台,flash也是一个不错的解决方案。

发布到android,iphone,mac端案例(发布到win下也可以的):https://verylab.com/

标准

既然是flash与js互相通讯。那就是flash可以调用js里边的方法,js也可以调用flash里边的方法。两边都需要写代码,都要有个标准。

对于flash,使用到的api是ExternalInterface。在as2时代,使用的是fscommand。在as3中,仍保留改方法的使用。

如果flash想接受js端的方法调用,需要先对方法,进行侦听。参考如下。

参数1 flash端被调用的方法名,字符串类型
参数2 flash这边对应的调用方法

if(ExternalInterface.available)
{
  ExternalInterface.addCallback("setData", setData);
}

function setData(value:String):void
{

}

如果flash想调用js端的方法,请使用call。参考如下。

参数1 js端被调用的方法名,字符串类型。
参数2 给js端传递过去的参数。

if(ExternalInterface.available)
{
  ExternalInterface.call("sendMsg", "hello, world");
}

js端调用flash端,先要按标准将swf添加到html中。通常,我们都是用swfobject.js自动添加。通过embed、object标签,手动添加也可以。但想js这边能成功调用到flash端,一定要写好id、name属性。因为通过id或name,你可以获取到flash的引用。这样,你才可以调用到flash里边的方法。id和name的值都写成相同的。

js端获取flash的引用。参考如下。

myflash为name、id的值

function getSwf()
{
  return window['myflash'] || document['myflash'];
}

js端想调用flash中的方法。先获得swf的引用,再使用flash端侦听的方法。参考如下。

getswf() 是上边举例的获取swf的引用
saveData 是flash端侦听的方法名
"虚幻之物对应着冥冥之路!" 是参数值,一个字符串类型。

getSwf().saveData("虚幻之物对应着冥冥之路!");

js端想被flash调用,直接在js中定义方法就可以。参考如下。

sendMsg flash端调用js端的方法名。
value 参数

function sendMsg(value)
{ 

}

相关

object、embed方式添加flash到网页中:
http://blog.csdn.net/abeetle/article/details/8617768

各浏览器下,object、embed方式添加flash到网页中的差异:
http://www.cnblogs.com/kiter/p/3857889.html

swfobject.js方式添加flash到网页中:
http://www.cnblogs.com/snowinmay/p/3373892.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注