2009-06-20 6 views
0

그래서 .... eval()이 문제가 될 수 있습니까? 나는 또한 "this"표현식을 사용하거나 setscript 3 (나는 그것에 대한 완전한 참조를 찾을 수없는 것처럼 보입니다), PHP 파일을 통해 여러 변수 (test1, test2, test3,. ..) "에코"로 전송, 어떻게 플래시 응용 프로그램이 그것을 수신? 나는 플래시에 응용 프로그램을 PHP로 mysql에 XML을 사용하지 않으려 고 노력 중이다. 단순히 문자열을 변수로 변경하는 방법은 무엇입니까?ActionScript 3.0의 동적 변수

예를

(AS3 - 행동 프레임 패널에서)

function datagridfill(event:MouseEvent):void{ 
    var varfill:URLVariables = new URLVariables(); 
    varfill.tell = "do it"; 
    var filler:URLRequest = new URLRequest(); 
    filler.url = "http://127.0.0.1/flashdbas3/sendin.php"; 
    filler.data = varfill; 
    var filling:URLLoader = new URLLoader(); 
    filling.dataFormat = URLLoaderDataFormat.VARIABLES; 
    filling.load(filler); 
    filling.addEventListener(Event.COMPLETE, datain); 

    function datain(evt:Event){ 
     var arraygrid:Array = new Array(); 
     testing.text = evt.target.Name2 // worked 
     // just say i = 1 
     i=1; 
     arraygrid.push({Name:this["evt.target.Name"+i], 
         Test:this.["evt.target.Test"+i]}); // error 
     //or 
     arraygrid.push({Name:this["Name"+i], 
         Test:this.["Test"+i]}); // error too 
     // eval() noexistent, set() didn't worked on actions frame panel 
     //????? 
    } 
}; 

나는 그것이 매우 분명 바랍니다.

var o = {} 
o["test1"] = 7 
o["test2"] = "fish" 
print(o["test1"]) 
+0

질문을 명확하게 표현하지 않았습니다. 명확하게하기 위해 그것을 수정하고, 당신이하려고하는 것에 대한 더 자세한 설명을 추가하면 더 나은 결과를 얻을 수 있습니다. –

답변

0

는 표준 AS3 접근 방식은 해시 테이블과 같은 개체를 사용하는 것입니다 나는 당신의 질문을 이해합니다.

그래서 변수 varName는 변수 이름이어야합니다 문자열을 포함하는 변수 인 경우, 당신은 설정과 같은 그 변수를 읽을 수 있습니다 :

this[varName] = "someValue"; 
trace(this[varName]); 

업데이트 :

당신의 예에서

, 당신이 시도 수를 : evt.target [Test "+ i] 대신 Test : this [[evt.target.Test"+ i]

3

당신이 [변수 varName] 경우 사용할 수 있습니다 당신은 당신이 값을 연관 짓고 싶은 문자열의 집합이있는 경우