我對Flash 10和ExternalInterface有一個非常奇怪的問題。我目前使用自制的橋樑使用RTMFP使用JavaScript,每當我試圖通過一個包含JSON數據,我得到來自閃存一個奇怪的JavaScript錯誤:爲什麼ExternalInterface會在我使用JSON傳遞參數時中斷?
missing) after argument list
try { __flash__toXML(Flash.Utilities.A..."")) ; } catch (e) { "<undefined/>"; }
這是不可能獲得更多的信息,因爲這來了來自Flash並且它不綁定到任何Javascript文件。
要重現這個問題,你可以使用這個腳本:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.external.ExternalInterface;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var test:String;
test = "\"\\\"\"";
ExternalInterface.call("console.log", test);
}
}
}
我能做些什麼來避免這個問題,它是一個已知的問題?
您使用'json_encode'? – kjy112 2011-03-01 00:59:38
@ kjy112不,我假設ExternalInterface.call會照顧正確轉義我傳遞給它的數據。 – HoLyVieR 2011-03-01 01:02:02
@holyvier http://maccherone.com/larry/projects/a-pretty-json-encoder-for-actionscript-3-as3/ – kjy112 2011-03-01 01:04:39