我有一個SWF收集用戶在網站上的反饋。所提出的問題以XML形式提供,使用通過嵌入在頁面中的flashvars提供的URL。不幸的是,這在我的SWF的最新版本中似乎已經打破。無法提取SWF中的flashvars
這裏是我很嵌入對象:
<script src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("http://localhost/mysite/q.swf", "flashcontent", "900", "360", "9.0.0", "http://localhost/mysite/expressInstall.swf", { loadurl: escape("http://localhost/mysite/q.php?q=13") }, {}, {});
</script>
</head>
<body>
<div id="flashcontent">
</div>
</body>
我試圖拔出使用loadURL Flash變數是這樣的:
this.loaderInfo.addEventListener(Event.COMPLETE, function(e:Event) {
init();
});
function init()
{
*snip*
loadurl = unescape((loaderInfo.parameters.loadurl));
}
使用ExternalInterface.call()
調用console.log
在瀏覽器中輸出空,但在以前的版本(這裏代碼保持不變),它的工作原理和輸出的URL,如我所料。我可以在它們之間切換,看看它在更早的工作,然後更新到新的,它再次輸出空。
這個新版本的資產的唯一變化是我添加了一個符號和一些代碼,以便在XML加載後將其添加到舞臺上 - 但這並沒有以任何方式改變獲取該代碼的代碼網頁HTML中的網址。
我正在使用Flash CS5,它是一個ActionScript 3.0項目。
任何人都可以提出我要去哪裏錯了嗎?我花了很多時間把我的頭髮拉出來,所以任何幫助都將不勝感激。我確實在某處讀過這個可以通過ExternalInterface完成的工作 - 對於這樣的場景會更合適嗎?如果由於某種原因,我無法正常工作,這是否可行?
謝謝!
有一個swfobject版本在某些瀏覽器中打破了flashvars,所以一定要更新到最新的...除此之外,我沒有看到任何奇怪的東西。 – Cay 2011-03-31 23:22:56
@Cay - 我做了仔細檢查,並升級到今晚最新的,感謝您的意見。爲了讓它爲我的客戶端工作,我只用ExternalInterface來調用一個返回URL的JS函數。有點黑客,但它會做。 – mdm 2011-03-31 23:44:12
也許是一個範圍問題?你嘗試使用「this」loadurl = unescape((this.loaderInfo.parameters.loadurl)); – 2011-04-01 00:05:11