文章標簽 ‘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前端 標簽: , , , , ,

無覓相關文章插件,快速提升流量

30选5怎么中奖