2009-06-20 18 views
0

also .... eval() kommt nicht in Frage, irgendeine Idee, dies zu tun? Ich weiß auch nicht, wie man "diesen" Ausdruck oder set() in ActionScript 3 benutzt (ich finde, ich konnte keine vollständige Referenz darauf finden), einfach durch die PHP-Datei eine multiple Variable sagen (test1, test2, test3, ...). ..) gesendet von "echo", wie die Flash-Anwendung es erhalten hat? Ich versuche, nicht xml auf mysql zu verwenden, um zur Anwendung zu grasen. Wie ändert man einen String in eine Variable?Dynamische Variablen in ActionScript 3.0

Beispiel

(in AS3-Aktionen Rahmenplatte)

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

Ich hoffe, dass es sehr klar ist.

+0

Ich habe eine Antwort gepostet, aber deine Frage ist nicht klar formuliert. Überarbeiten Sie es aus Gründen der Klarheit und fügen Sie eine detailliertere Beschreibung dessen hinzu, was Sie zu tun versuchen, und Sie werden bessere Ergebnisse erzielen. –

Antwort

0

Wenn Sie eine Reihe von Strings, die Sie mit Werten verknüpfen mögen, der Standard-AS3-Ansatz ist ein Objekt als Hash-Tabelle zu verwenden:

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

Sie könnten so [varName] if Ich verstehe deine Frage richtig.

Also, wenn varName eine Variable eine Zeichenfolge enthält, die ein Variablen-Name sein sollte, könnten Sie diese Variable wie diese setzen und lesen:

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

Update:

In Ihrem Beispiel könnten Sie versuchen, : evt.target ["Test" + i] statt Test: das. ["evt.target.Test" + i]

Verwandte Themen