2010-07-13 3 views
1

Javascript Array()FlashVars을 통해 플래시로 전달하지만 플래시에서 오류가 발생합니다. 너희들 여기서 내가 뭘 잘못하고있는 걸 지적 할 수 있니?자바 스크립트가 배열 배열 대신 객체 배열을 전달하고 있습니다.

자바 스크립트 코드

// 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; 

// 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; 
}; 

이 작동하지 않습니다 플래시 코드입니다. 플래시쪽에 정확히 cities 배열을 가지고 있어야합니다. Javascript 측에서 모든 코드가 변경 될 수 있습니다.

도움 주셔서 감사합니다.

+0

그래서 사용자 배열을 배열 배열로 전달 하시겠습니까? – spinon

+1

당신이 어떻게 든 당신의'usercities'을 직렬화해야한다고 생각합니다 –

+0

@spinon, 올바른, 배열 배열로 전달되고 싶습니다 ...하지만 객체 배열로 전달됩니다 ... – Frankie

답변

0

:

자바 스크립트

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

플래시 순수 문자열로 가져옵니다.

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

그런 다음 문자열을 분해하여 배열로 변환했습니다. 조금 더러운 일이지만 결국 작동합니다. 배열에 항상 행당 3 개의 항목이 있고 항목에 쉼표가없는 한.

희망이 있으면 도움이 될 수 있습니다.

0

그럼 수동으로 배열을 만들 수 있습니다. 이와 같은 것 :

var usercities = []; 
usercities[0] = []; 
usercities[0]["nome"] = "London"; 
usercities[0]["lat"] = 51.5002 
usercities[0]["long"] = -0.1262 
usercities[1] = []; 
usercities[1]["nome"] = "NYC"; 
usercities[1]["lat"] = 51.5002 
usercities[1]["long"] = -0.1262 

나는 모두 같지만 플래시가 다르게 보일 수도 있지만.

+0

실제로이 나타납니다 빈 배열 두 개가됩니다. 이상한. 여전히 그것을하려고합니다. – Frankie

+0

너무 나쁘다. 그렇다면 왜 객체 배열을 사용하지 않을까요? – spinon

+0

음 ... 그냥 쉬운 길을갔습니다. position [0], [1], [2]로 항목을 참조하도록 모든 플래시 코드를 변경하고 배열을 쉼표로 구분 된 문자열로 전달했습니다. On Flash는 해당 문자열을 분해하여 Array로 변환했습니다. 귀엽지 만 작동하지 않습니다. 도와 줘서 고마워. – Frankie

1

JavaScript에는 다른 언어와 같은 연관 배열이 없습니다. 명명 된 인덱스를 갖기 위해서는 객체를 사용해야합니다. 명명 된 인덱스가있는 값이 할당 된 배열은 객체로 변환됩니다.

이렇게하려면 플래시 코드를 변경해야 할 수 있습니다. Meder가 말했듯이 배열을 직렬화하는 것이 최선의 방법입니다. JSON을 자바 스크립트에서 인코딩하고 플래시에서 디코딩하는 것이 좋습니다. 이 같은 값을 전달까지 종단

+0

내가 말한대로 연재해야 할 것입니다. 이것은 결과를 전혀 해석하지 않고 지금까지 분석하려고 시도했습니다 ... – Frankie