Search code examples
javascriptflashactionscript-3arraysflashvars

Javascript is passing an Array of Objects instead of an Array of Arrays


I'm passing a Javascript Array() to Flash via FlashVars but Flash complains. Can you guys point me what am I doing wrong here?

javascript code

// array with the user defined cities
var usercities = new Array( 
    {'nome':"London", 'lat':51.5002, 'long':-0.1262 },
    {'nome':"NYC", 'lat':51.5002, 'long':-0.1262 } 
);

flashvars.newcities = usercities;

flash code

// this array is pre-populated so if the users doesn't enter data this is shown
var cities:Array = new Array(
    { nome:"London", lat:51.5002, long:-0.1262 },
    { nome:"NYC", lat:40.7144, long:-74.0060 }
);

// gets FlashVars
var newcities:Object = LoaderInfo(this.root.loaderInfo).parameters.newcities;
if(newcities != null) {
    cities = newcities;
};

Doesn't work. I need to have the cities array on the Flash Side exactly as it is. On the Javascript side all code can change.

Thank you for your help.


Solution

  • Ended up passing the values as this:

    javascript

    var cities = new Array( 
        Array("London", 51.5002, -0.1262),
        Array("NYC", 40.7144, -74.0060),
    );
    

    That flash gets as a pure string.

    "London",51.5002,-0.1262,"NYC",40.7144,-74.0060
    

    I then exploded the string and converted to Array. It's a bit dirty but in the end works. As long as the Array always has 3 items per row and no item has a comma.

    Hope this may help someone.