文章标签 ‘swf’

flash与javascript的相互通信的例子

2011年8月24日 没有评论

当前的Web应用中少不了flash,有时候当前页面需要跟flash交互,交互的桥梁是通过javasript来实现,javascript能够调用到flash中定义的方法,同样的flash中也可以调用到javacript的方法。

点这里 查看演示例子 ||  点这里 下载完整代码

flash可以用 ExternalInterface.call(“swfCall” [,arg1[,arg2]]) 的方式来调用javacript中定义的swfCall方法,参数为可选;但是javascript中调用flash的方法,需要flash指定那些方法能调用,例如在flash的代码

ExternalInterface。addCallback("setFlashVal", flashFunction);

function flashFunction(msg) {
	//do something
}

function flashFunction_1(msg) {
	//do something
}

javascript中就可以调用到flashFunction,但调用的方法名是setFlashVal,由于flashFunction_1没有导出,所以页面javascript无法访问到。IE跟Firefox、chrome获取flash对象的方式不同,IE是用window对象,Firefox等则是用document对象。具体参看下面代码:

function getSwfObject(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName]
	}else{
		return document[movieName]
	}
}

getSwfObject('swfId').setFlashVal('text');

其中movieName是flash的ID,即<object>标签中定义的ID、或者是embed标签的name属性值,最好这两个值保持一致,否则可能在不同的平台下无法正常工作。

分类: web前端 标签: , , , ,

iframe中的swf无法调用页面中的js函数

2011年8月19日 没有评论

主页面中存在一个iframe,目的是让iframe在后台处理一些事情,所以把iframe的width,height设置为1个像素,同时设置visibility为hidden,iframe指向的页面中嵌套了一个swf,该swf是flash、as3,as3脚本中是读取flash的SharedObjects中存放的值,并把该值传回给页面的js函数。直接访问这个iframe的页面能够正常工作,即flash能调用到页面上的js函数,但是访问主页面时,FF、safari、chrome也是正常工作,IE6、8就歇菜了,没有反应,经过一番的查找问题,发现根源是iframe不能是隐藏的,即把visibility设置为visible或者去掉visibility的设置就可以了。

分类: web前端 标签: , , , , ,

无觅相关文章插件,快速提升流量