Por que ExternalInterface quebra quando passo parâmetros com JSON como uma string?
Eu tenho um problema muito estranho com o Flash 10 e o ExternalInterface. Atualmente, estou usando uma ponte caseira para usar o RTMFP com Javascript e sempre que tento transmitir dados que contêm JSON, recebo um estranho erro de Javascript proveniente do Flash:
missing ) after argument list
try { __flash__toXML(Flash.Utilities.A..."")) ; } catch (e) { "<undefined/>"; }
É impossível obter mais informações, pois elas são do Flash e não estão vinculadas a nenhum arquivo Javascript.
Para reproduzir esse problema, você pode usar este script:
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);
}
}
}
O que posso fazer para evitar esse problema e é um problema conhecido?